2020/09/23(水) [n年前の日記]
#1 [raspberrypi] Raspberry Pi Zero WでOpenJTalkを使って音声合成
Raspberry Pi Zero W + Raspbian Buster で、OpenJTalk を使って音声合成をしてみたり。
以下、参考ページ。
_Speaker pHAT 単体で音楽再生+Bluetoothボタン制御
_Raspberry Pi | ラズパイに喋ってもらう作戦(Open JTalk1.08のインストールと音声出力設定) - たぷん日記
必要なパッケージをインストール。OpenJTalk、男性の声のデータ、辞書をインストールする。
音声合成を指示するためのスクリプトを新規作成。OpenJTalkに音声データや辞書を指定してwavファイルを作成して、ソレを鳴らしてから、wavファイルを削除、という処理をしているらしい。
スクリプトに実行権限を追加。
再生確認。
女性の声も鳴らしてみる。
以下、参考ページ。
_Speaker pHAT 単体で音楽再生+Bluetoothボタン制御
_Raspberry Pi | ラズパイに喋ってもらう作戦(Open JTalk1.08のインストールと音声出力設定) - たぷん日記
必要なパッケージをインストール。OpenJTalk、男性の声のデータ、辞書をインストールする。
sudo apt install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
音声合成を指示するためのスクリプトを新規作成。OpenJTalkに音声データや辞書を指定してwavファイルを作成して、ソレを鳴らしてから、wavファイルを削除、という処理をしているらしい。
vi jsaym.sh
#!/bin/sh TMP=/tmp/jsay.wav echo "$1" | 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 $TMP && \ aplay --quiet $TMP rm -f $TMP
スクリプトに実行権限を追加。
chmod +x jsaym.sh
再生確認。
./jsaym.sh "hello world talk test"男性の声で音声が鳴った。
女性の声も鳴らしてみる。
mkdir ~/temp cd ~/temp wget --content-disposition https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.8/MMDAgent_Example-1.8.zip/download unzip MMDAgent_Example-1.8.zip sudo cp -R ./MMDAgent_Example-1.8/Voice/mei /usr/share/hts-voice/ cd ..
vi jsayf.sh
#!/bin/sh
CMDNAME=`basename $0`
if [ $# -lt 1 ]; then
echo "Usage: ${CMDNAME} [ text ]" 1>&2
exit 1
fi
TMPFILE=`mktemp /tmp/tmp.XXXXXXXX.wav`
DIC=/var/lib/mecab/dic/open-jtalk/naist-jdic
VOICE=/usr/share/hts-voice/mei/mei_normal.htsvoice
echo "$1" | open_jtalk \
-m ${VOICE} \
-x ${DIC} \
-ow ${TMPFILE} && \
aplay --quiet ${TMPFILE}
rm -f ${TMPFILE}
exit 0
chmod +x jsayf.sh
./jsayf.sh "新しい朝が来た 希望の朝だ"女性の声で音声が鳴った。
[ ツッコむ ]
以上です。