DreamerDreamのブログ

夢想家の夢です。

RaspberryPiにしゃべらせる

じゃべらせるにはなにはともあれ音が出なければダメなのでスピーカー又はイヤホンを接続してから音量設定。

sudo alsamixer

f:id:DreamerDream:20151215084043p:plain

カーソル上下で設定して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から取れるアンプ付きのスピーカーもあります。