というわけで、簡単に動かす方法を紹介します。
※Windows only
女の子の声に好きなことをしゃべらせられるVOICEROID。
PythonでVOICEROIDを自由自在に動かせたら、プログラミングが楽しくなるんじゃないかなぁ。プログラミングを勉強したいってプログラミング初心者もVOICEROIDを動かせるとなれば勉強しがいがありそうですしおすし。
調べてみると、んー。。。
Windowsに表示されているウィンドウの情報を手に入れて、その中で、ボタンの情報を手に入れて....難しそうだなぁ。
ソースコードを読んでいけばできなくはないでしょうが、初心者向きじゃないってことで簡単な方法を探してみる。
というわけで、今回注目したのは、努力したWiki様制作のSeikaCenterおよび、Seikasay.exe。コマンドラインからVOICEROIDを使えるそうです。
すげー。
努力したWiki様HP
ところでPython、コマンドラインに入力するモジュールがあるんっすよねー。
あれ、いけそうじゃん。
ではでは琴葉茜ちゃんに「茜ちゃんかわいいって言って」って言わせてみましょう。
さくっとプログラミング。
import subprocess as sps #モジュールsubprocessをインポート
text = "茜ちゃんかわいいって言って"
cmd = 'seikasay.exe -cid ' + "2000" + ' \"' + text + '\"' #seikasayに送るコマンド
sps.call(cmd,shell=True) #subprocessを使って、コマンドプロンプトにコマンドを送る
<使い方>
・Seikasay関連を作業ディレクトリーにコピー
・Seikacenterを起動してしゃべらせたいVOICEROIDのIDを手に入れる(茜ちゃんは多分2000)
・プログラムを起動する
・アカネチャンカワイイヤッター
いいねいいね。かなり簡単にできますね。
今回利用したのはsubprocessというモジュールですね。
subprocess.callは入力したコマンドを実行するモジュールですね。今回は文字列を入力しましたが、配列でもおっけーらしいです。
それじゃあ、ちょっと使いやすく手直ししていきましょう。
import subprocess as sps
def talk_voiceroid(ID,p,text){
cmd = 'seikasay.exe -cid ' + ID + ' -speed ' + p[0] + ' -pitch ' + p[1] + ' -intonation ' + p[2] + ' -happiness ' + p[3] + ' -hatred ' + p[4] + ' -sadness ' + p[5] + ' \"' + text + '\"'
sps.call(cmd,shell=True)
id = "2000"
parameter = ["0.80","0.80","1.00","0.30","0.00","0.00"]#話速、高さ、抑揚、喜び、怒り、悲しみ
text = "あおいー、なんかあるでー、あおいー"
talk_voiceroid(id,parameter,text)
こんな感じで関数にしちゃえば、プログラムの中で使いやすいですね。調整もパラメータをいじるだけなので簡単です。id、parameter、textはすべてstr型になるように気を付けてください。これで、Pythonで自由自在にVOICEROIDを使えます。やったね。
いやはや、Seikasay.exe素晴らしいですね。おかげで日々楽しくPythonの勉強ができています。VOICEROIDを使ったソースコードがいろいろたまっているので、順々にアウトプットしていきたいなぁ。(そのためにもコードの乗せ方は考えないと...)
SeikaSayのオプションから感情パラメータ用の引数3つは非推奨となります。
返信削除-emotion オプションへ変更される事を推奨いたします。