■ Raspberry PI で音声合成を行う
[1] Open JTalk <= これを使う [2] AquesTalk [3] AquesTalk2 [4] Galatea Talk
■ 設定手順
前準備:音が出るかを確認
# 優先する出力先を1(アナログ)に設定 amixer cset numid=3 1 aplay /usr/share/sounds/alsa/Front_Center.wav
Open JTalkのインストール
sudo apt-get install open-jtalk sudo apt-get install open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
動作確認
再生する文章ファイル(txt)を用意する$ cat helloworld.txt はろーわーるど音声合成を行う(音声ファイルを作成する)
open_jtalk -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic -ow helloworld.wav helloworld.txt音声ファイルを再生する(「はろーわーるど」って言ったらOK)
aplay helloworld.wav
■ Pythonから音声合成を行う
ソースを書く
openJTalk.py#coding: utf-8 import subprocess def openJTalk(speech_content): open_jtalk=['open_jtalk'] mech=['-x','/var/lib/mecab/dic/open-jtalk/naist-jdic'] htsvoice=['-m','/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice'] speed=['-r','1.0'] outwav=['-ow','open_jtalk.wav'] cmd=open_jtalk+mech+htsvoice+speed+outwav c = subprocess.Popen(cmd,stdin=subprocess.PIPE) c.stdin.write(speech_content) c.stdin.close() c.wait() aplay = ['aplay','-q','open_jtalk.wav'] wr = subprocess.Popen(aplay)helloworld.py
#coding: utf-8 import openJTalk openJTalk.openJTalk('はろーわーるど')
実行する
python openJTalk.py # 「はろーわーるど」って言ったらOK python helloworld.py
参考文献
https://qiita.com/lutecia16v/items/8d220885082e40ace252http://jellyware.jp/kurage/raspi/raspi_speech_synthesis.html
http://www.raspberrypirulo.net/entry/2017/08/29/%E9%9F%B3%E5%A3%B0%E5%90%88%E6%88%90%E3%82%92%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%28Open_JTalk%29
https://qiita.com/kkoba84/items/b828229c374a249965a9
他のライブラリを比較しているサイト
http://pochi.usamimi.info/blog/linux/open_jtalk.htm