Open JTalkで初音ミクボイスで喋らせる
- 2018.01.27
- Python

最近、ディープラーニングばかり試していましたが、少し飽きてきたので、
気分を変えて、Open JTalkを試してみました。
インストール
下記コマンドでインストールします。
1 |
sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001 |
音響モデル準備
上記のインストールが終われば、デフォルトの音声で喋らせることはできますが、
ネット上で公開されている音響モデルを使用すると、様々な声に変更することができます。
音響ファイルについては、下記のサイトで紹介されています。
今回は、下記リンク先で公開されているモデルを使用します。
自作音響モデル – MMDAgent & Project-NAIP wiki
上記のファイルはそのままでは使えない為、下記リンク先のプログラムでhtsvoiceファイルに変換します。
htsvoiceへ変換するプログラム: takayanの雑記帳
Windowsであればそのまま使えるようですが、今回はLinuxで使う為、ソースコードをコンパイルします。
1 |
sudo apt-get install mono-devel |
上記でMonoをインストールし、ソースコードをコンパイルします。
1 |
mcs htsvconv.cs |
作成されたexeファイルを音響モデルのあるフォルダと同じ場所にコピーし、exeを実行します。
./Voiceの部分はモデルのあるフォルダ名です。
1 |
mono htsvconv.exe ./Voice |
実行するとVoice.htsvoiceが作成される為、これを音響モデルのある場所に保存します。
私の場合は、フォルダを作成して以下の場所にコピーしました。
1 |
/usr/share/hts-voice/miku |
これで音響モデルの準備完了です。
実行プログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#-*- coding:utf-8 -*- import subprocess def jtalk(text) : args = [ "open_jtalk", "-x", "/var/lib/mecab/dic/open-jtalk/naist-jdic/", "-m", "/usr/share/hts-voice/miku/Voice.htsvoice", "-ow", "/tmp/output.wav"] p = subprocess.Popen(args, stdin=subprocess.PIPE) p.communicate(text) p.wait() args = [ "aplay", "/tmp/output.wav"] p = subprocess.Popen(args) p.wait() if __name__ == '__main__' : jtalk("本日の天気は晴れです。") |
上記プログラムを実行すると、音声が再生されます。
当然、任意の文章を読み上げられるので、ニュースやツイッターのつぶやきを読み上げる等、
色んな使い方ができると思います。
-
前の記事
プログラミング不要のNeural Network Consoleを試す 2017.10.29
-
次の記事
RaspberryPiでLCDに文字表示 2019.02.11