ここにC#で書いたVoiceroidTalker.exeという怪しげな実行ファイルがある。そして、私のSurfaceにはnode.jsが入っている。つまり…分かるね?
nodejsで外部コマンド
nodejs経由でゆかりさん達は喋ってくれるのか?
まあ外部コマンド叩くだけなのでできるんですけど。最近のjavascript(node)の万能っぷりが凄いことになってる。これ、Raspberryでも動いちゃうし(現在ビルド中まだ終わらにゃい。)
こんなコードを書いてゆかりさんとまきまきをしゃべらせてみた。
exec = require('child_process').exec
child = exec('VoiceroidTalker.exe', (err, stdout, stderr) ->
if !err
console.log "Success."
else
console.log "Fail."
console.log err
)
リファレンス: http://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback
もう少し柔軟に書こうと思うとspawn
らしい。
spawn = require('child_process').spawn
talk = spawn('VoiceroidTalker.exe')
talk.stdout.on('data', (data) ->
console.log 'stdout:' + data
)
talk.stderr.on('data', (data) ->
console.log 'stderr:' + data
)
talk.on('exit', (code) ->
console.log 'exit code: ' + code
)
動くんだけど失敗したときのerrの中身がckw x NYAOSだと文字化けするんだよなぁ…。
VoiceroidTalkerがVoiceroid+のWindowハンドラ捕まえてボタン押してるだけなので、当然ながらVoiceroid+が起動していないと動かない(キリッ
一体何やってんだろうと自分でも思うorz
Written with [StackEdit](https://stackedit.io
No comments:
Post a Comment