3行でWindowsにしゃべらせるプログラムを作ります。
メモ帳で手軽にできるのでぜひ試してみてください。
プログラミング言語は、マイクロソフトのJScriptを使います。
Windows7, 10、11で動作確認しました。
speech.js
// 文字コードはシフトJISで保存
var tts = WScript.CreateObject("SAPI.SpVoice");
tts.Rate = 0;
tts.Speak("おっす!おらゴクウ!");
メモ帳やエディタなどで、拡張子を「js」、文字コード(エンコード)を「シフトJIS」または「ANSI」で保存するとこんなアイコンになります。
ダブルクリックで実行です。
しゃべりましたか??ちなみに「!」の部分はしゃべりません。悪しからず。
Windows10には標準でMicrosoft Speech API 5.3(2017年10月時点)が提供されています。
その昔TTS(Text To Speech)エンジンというものがありまして、文字列を与えるとWindowsがしゃべってくれました。もちろん現在でもこのTTSはWindowsに搭載されています。プログラム言語からTTSへの橋渡しをする役割がMicrosoft Speech API(通称:SAPI)です。
SAPIのドキュメントは、MSDNのサイトにあります。
このドキュメントを見ると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のつぶやきデータをスクレイピング(ウェブサイトから必要な情報を抽出すること)して本当につぶやかせることも可能です。面白いですね。
コメント