Windowsにしゃべらせるプログラム

10行プログラムカテゴリのアイキャッチ画像 10行以内のプログラム

3行でWindowsにしゃべらせるプログラムを作ります。
メモ帳で手軽にできるのでぜひ試してみてください。
プログラミング言語は、マイクロソフトのJScriptを使います。

Windows7, 10、11で動作確認しました。

speech.js

// 文字コードはシフトJISで保存
var tts = WScript.CreateObject("SAPI.SpVoice");
tts.Rate = 0;
tts.Speak("おっす!おらゴクウ!");

メモ帳やエディタなどで、拡張子を「js」、文字コード(エンコード)を「シフトJIS」または「ANSI」で保存するとこんなアイコンになります。

JScriptアイコン

ダブルクリックで実行です。
しゃべりましたか??ちなみに「!」の部分はしゃべりません。悪しからず。

Windows10には標準でMicrosoft Speech API 5.3(2017年10月時点)が提供されています。

その昔TTS(Text To Speech)エンジンというものがありまして、文字列を与えるとWindowsがしゃべってくれました。もちろん現在でもこのTTSはWindowsに搭載されています。プログラム言語からTTSへの橋渡しをする役割がMicrosoft Speech API(通称:SAPI)です。

SAPIのドキュメントは、MSDNのサイトにあります。

SpVoice Interface (SAPI 5.3)

このドキュメントを見るとRateプロパティなどがあり、話す速度を調整できます。

Rateプロパティ値の範囲 -10~10音声出力の速度を調整できる
使い方)***.Rate = 3;

さきほどの2行目の部分を tts.Rate = 10;tts.Rate = -5; などのように数値をかえてみてください。話す速度が変化して面白いです。

実際にプログラムを作ってしゃべらせた様子

for文を使って同じ文面をだんだん早くしゃべらせてみました。

speech2.js

// 文字コードはシフトJISで保存
var tts = WScript.CreateObject("SAPI.SpVoice");

// 速度をだんだん早くさせてしゃべらせる
for(var i=-5; i<10; i+=2){
	tts.Rate = i;
	tts.Speak("おなかすいた?");
}

SAPIは、色々なプログラミング言語から呼び出せます。もちろんPythonでもwin32comというモジュールをインポートすればSAPIを呼び出し可能です。
誰かさんのTwitterのつぶやきデータをスクレイピング(ウェブサイトから必要な情報を抽出すること)して本当につぶやかせることも可能です。面白いですね。

コメント

タイトルとURLをコピーしました