Windowsでもsayコマンドを
Twitterのタイムラインを監視してキーワードにマッチしたらGrowlするRubyスクリプト(2) - 今日覚えたことをWindowsでも動かそうとして奮闘したんだけど、結局ダメだった。meowはRubyCocoaが無いと動かないので。
ただ、その作業の中でちょっと面白そうなものを作ったので、とりあえずそれだけここに載せとく。
Windowsでもsayコマンドを
このsayコマンドをWindowsでも使えるようにしたい。デフォルトではそんなコマンドは無いらしいけど、音声合成エンジン自体は入ってる。XPだとSamだったかな。VistaにはAnnaってのが入ってる。Windowsのエディションや、Officeの有無などでもエンジンは違ってくるかも。
Windowsの音声合成エンジンは、「ナレータ」っていう機能で利用する。ナレータを使うと、Windowsの画面上のボタンやメニューなどを読み上げてくれるので、目の不自由な方や画面が利用できない環境でもWindowsが使えるようになる(らしい)。
そしてこのエンジンはCOMから利用できる。なので、JavaScriptで書いてみた。
var args = []; for(var i = 0; i < WScript.Arguments.length; i++) args.push(WScript.Arguments.Item(i)); var sapi = new ActiveXObject('SAPI.SpVoice'); sapi.Speak(args.join(' '));
思ったより簡単だった。このコードをsay.jsというファイル名で適当なところに保存しておく。
使い方は簡単。コマンドプロンプトで
C:\Users\nacookan>say hello
のようにして使う。