HOME
eSpeak/Open JTalk

Linuxで使えるフリーの音声合成・テキスト読み上げソフトウェアのインストール方法と使い方

●eSpeak(英語のみ)

英語を喋らせるだけなら簡単。
$ sudo apt install espeak $ espeak -v +f3 -s 140 "Hello World!"
-v +f3 -s 140 の部分を変更することで声質や話す速度が変わる。

●Open JTalk(日本語対応)

Open JTalkはひと手間掛かる。まずは本体と依存パッケージのインストール
$ sudo apt install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
次に音声モデル。
名古屋工業大学が開発したメイちゃんとタクミくんの音声モデルが入っている「MMDAgent」をダウンロード&展開。
$ wget https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.8/MMDAgent_Example-1.8.zip $ unzip MMDAgent_Example-1.8.zip
で、必要なファイルを適切な箇所にコピー
$ sudo cp -r MMDAgent_Example-1.8/Voice/* /usr/share/hts-voice/
残りのファイルはもういらないので削除してOK。そして、実行する
$ echo 'こんにちは世界' | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -r 1.0 -ow test.wav $ aplay test.wav
メイちゃんの話し方を変えたいときやタクミ君に話してほしいときは /usr/share/hts-voice/mei/mei_normal.htsvoice の部分を適当なファイルに変更する。
aplayはwavファイルを再生するためのプレイヤーなので、ない場合はインストールする。
wavファイルを生成せず、直接発話させる場合は
$ echo 'こんにちは世界' | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -r 1.0 -ow /dev/stdout | aplay
のように、標準出力 /dev/stdout に出力し、パイプでaplayに渡す。
コマンドが長ったらしくなったので、シェルスクリプト(meispeak.sh)を作る
#!/bin/bash DISPLAY=:0.0 # おまじない echo $1 | open_jtalk \ -x /var/lib/mecab/dic/open-jtalk/naist-jdic \ -m /usr/share/hts-voice/mei/mei_normal.htsvoice \ -r 1.0 -ow /dev/stdout \ | aplay 2> /dev/null # aplayの実行時の情報を出さないための処理
ここで、$1はコマンドライン引数から喋らせるテキストを取得している。これで
$ sh meispeak.sh "こんにちは世界"
とすると喋ってくれる。

音が出ないときは...

多分aplayの設定が原因だと思います。

http://nort-wmli.blogspot.com/2020/02/alsa-linux.html
https://qiita.com/tukiyo3/items/963bc45073d88a36711f

この辺を参考にして試してみてください。


最終更新 2022/4/9