ラズパイにしゃべらせるには、なにはともあれ音が出なければダメなのでスピーカー又はイヤホンを接続してから音量設定。
sudo alsamixer
カーソル上下で設定してexitキーで終了。
HDMIを使用している場合、音声の出力先もHDMIが選択され、音が鳴らない場合があるのでイヤホンジャックから鳴るように設定する。
sudo amixer cset numid=3 1
2にするとHDMIから、0は自動判別らしい。
mp3音を鳴らしてみる。適当なmp3ファイルを用意しておく。
mpg321をインストール
sudo apt-get install mpg321
再生はsudo権限で再生させる。pororin.mp3というファイルを鳴らす例。
sudo mpg321 pororin.mp3
無事に再生出来たらひとまずハード&ソフト的にオーディオ再生はOK!
決まった文言であればmp3で再生させてしまえば良い。しかしせっかくのコンピュータなので合成音声出力をさせたい。
参考というかそのままだけど→橋本商会 » Raspberry Piに喋らせる
OpenJTalkをインストール
sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic htsengine libhtsengine-dev hts-voice-nitech-jp-atr503-m001
デフォルトの声が怖いのでMMD agentの声をダウンロード
wget http://downloads.sourceforge.net/project/mmdagent/MMDAgent_Example/MMDAgent_Example-1.3/MMDAgent_Example-1.3.zip
解凍
unzip MMDAgent_Example-1.3.zip
コピー
sudo cp -R MMDAgent_Example-1.3/Voice/* /usr/share/hts-voice/
パラメーター設定が長過ぎるので jsayコマンドを作る
sudo nano /usr/bin/jsay
ファイル/usr/bin/jsay 内容
#!/bin/sh
TMP=/tmp/jsay.wav
#cd /usr/share/hts-voice/nitech-jp-atr503-m001
cd /usr/share/hts-voice/mei_normal
#cd /usr/share/hts-voice/mei_happy
echo "$1" | open_jtalk \
-td tree-dur.inf \
-tf tree-lf0.inf \
-tm tree-mgc.inf \
-md dur.pdf \
-mf lf0.pdf \
-mm mgc.pdf \
-dm mgc.win1 \
-dm mgc.win2 \
-dm mgc.win3 \
-df lf0.win1 \
-df lf0.win2 \
-df lf0.win3 \
-dl lpf.win1 \
-ef tree-gv-lf0.inf \
-em tree-gv-mgc.inf \
-cf gv-lf0.pdf \
-cm gv-mgc.pdf \
-k gv-switch.inf \
-s 48000 \
-p 260 \
-a 0.53 \
-u 0.1 \
-jm 1.0 \
-jf 1.0 \
-jl 1.0 \
-z 48000 \
-x /var/lib/mecab/dic/open-jtalk/naist-jdic \
-ow $TMP && \
aplay -D plughw:0,0 -q $TMP
rm -f $TMP# ends here
しばらく弄ってないので うろおぼえだけど↓の部分の数値を少しずつ変えると声のトーンやスピードが変わる。接続しているスピーカーや好みによって適宜調整が必要。
s 48000 \
-p 260 \
-a 0.53 \
-u 0.1 \
-jm 1.0 \
-jf 1.0 \
-jl 1.0 \
-z 48000 \
コマンドが通るよう実行権限を与える。
sudo chmod +x /usr/bin/jsay
うまくいけばjsayコマンドで合成音声出力される。
sudo jsay こんちわ。テストです。
ですます調が綺麗に聞こえるようです。
ちなみにスピーカーに接続するにはイヤホンジャックからスピーカーへ電流を多く届ける「アンプ」が必用。
↓のようにスピーカー電源をUSBから取れるアンプ付きのスピーカーもあります。