はじめに
実行環境はRaspberry Pi 3。
Open JTalkのインストール
$ sudo apt-get -y install open-jtalk libhtsengine1 open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
音声ファイルの作成と再生
$ echo "こんにちは" | open_jtalk \
-x /var/lib/mecab/dic/open-jtalk/naist-jdic/ \
-m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice \
-ow sample.wav
$ aplay --quiet sample.wav
-x オプションは形態素解析用の辞書の場所。
-m オプションは音声データの場所。
-ow オプションは出力するファイル名。
aplay コマンドで音声ファイルを再生する。--quiet オプションで、再生時に文字を出力させない。
音声ファイルを作成せずに再生させる
open_jtalkは音声ファイルをファイルへの出力しか行うことができない。-(ハイフン)を指定しても、その名前のファイルが作成される。
そこで、出力ファイル名を/dev/stdout
に指定して、ファイル出力を標準出力とする。
$ echo "こんにちは" | open_jtalk \
-x /var/lib/mecab/dic/open-jtalk/naist-jdic/ \
-m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice \
-ow /dev/stdout \
| aplay --quiet
再生用のシェルスクリプト
myjtalk.sh
#!/bin/sh
# パイプで送られればそれを、でなければ引数の文字列を、open_jtalkに与える。
if [ -p /dev/stdin ]; then
cat -
else
echo $@
fi | 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 /dev/stdout \
| aplay --quiet
$ chmod +x myjtalk.sh
$ echo "こんにちは" | ./myjtalk.sh
$ ./myjtalk.sh "こんにちは"