Top/Devel/電子工作/RaspberryPi/日本語音声出力

日本語音声出力はてなブックマーク

Raspberry PiHMMテキスト音声合成システムOpen JTalkをインストールして、任意の文を喋らせます。

OSのインストールやWiFiドングルのセットアップなどの初期設定はこちらをご覧ください。

必要なもの

  • ヘッドフォンなどのヘッドフォン端子につなぐ音響機器 または USBスピーカー

USBスピーカーの方がノイズが少なくてよいようです。

USBスピーカーを使う場合

接続後にこんな感じでUSBオーディオの優先度を上げる必要があるようです。

cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio
sudo nano /etc/modprobe.d/alsa-base.conf

index=-2をindex=0にします。

options snd-usb-audio index=0
sudo reboot
cat /proc/asound/modules
0 snd_usb_audio
1 snd_bcm2835

手順

  1. Open JTalkと関係パッケージをインストールする。
    sudo aptitude install open-jtalk open-jtalk-mecab-naist-jdic htsengine libhtsengine-dev hts-voice-nitech-jp-atr503-m001
  2. 話す際に使うスクリプトを書く。(橋本商会様のスクリプトを少し改変しました)
    nano jsay.sh
    #!/bin/sh
    TMP=`mktemp`
    cd /usr/share/hts-voice/nitech-jp-atr503-m001
    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 16000 \
    -a 0.05 \
    -u 0.0 \
    -jm 1.0 \
    -jf 1.0 \
    -jl 1.0 \
    -x /var/lib/mecab/dic/open-jtalk/naist-jdic \
    -ow $TMP && \
    aplay --quiet $TMP
    rm -f $TMP
  3. 実行権限を与える。
    chmod a+x jsay.sh

次のようにすると音声が出力される。

./jsay.sh ほげほげ

ヘッドホン端子に音響機器を接続していて音が出ない場合

HDMI側から出力されていることがあるようです。

確認してみましょう。

amixer cget numid=3
numid=3,iface=MIXER,name='PCM Playback Route'
  ; type=INTEGER,access=rw------,values=1,min=0,max=2,step=0
  : values=0
数値出力先
0auto
1ヘッドホン端子
2HDMI

今はautoになっているようですね。

もし問題がある場合は下記のようにすると、ヘッドホン端子から出力されるようです。

amixer cset numid=3 1

声を変えてみる

ここまでで、/usr/share/hts-voice/ 配下にはnitech-jp-atr503-m001というディレクトリができているはずです。

これは男声ですが、これをMMDAgentの付属物として配布されている女声(MEI)のボイスに差し替えてみましょう。

unzip MMDAgent_Example-1.3.zip
sudo cp -R MMDAgent_Example-1.3/Voice/* /usr/share/hts-voice/

ここまでで、/usr/share/hts-voice/ 配下には下記のディレクトリができているはずです。

ディレクトリ声質
mei_angry女声。怒。
mei_bashful女声。不明。
mei_happy女声。喜。
mei_normal女声。普通。
mei_sad女声。哀。
nitech-jp-atr503-m001Open JTalkと一緒に配布されている男声。

上記シェルスクリプトの上部で、当該ボイスディレクトリにcdしているので、その箇所を変えれば、声を変えられます。

参考

Amazon

差分 一覧