9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OpenJtalkを使って日本語をRaspberry Piに喋らせる

Last updated at Posted at 2020-03-05

#この記事でできること
・OpenJtalkのRaspberry Piにインストール
・実際に"こんにちは"を音声出力
#動作環境
・Raspberry P i3 model B
・OS: Raspbian
#前提
・ラズパイのssh接続で操作できる or ディスプレイで操作可能
・日本語入力が可能
#OpenJtalkのインストール
自分は、この記事を参考にしてインストールしました。

まずは、以下を実行します

sudo apt-get update #アップデートする
sudo apt-get install open-jtalk #インストール

次に推奨されているパッケージもインストールします。

sudo apt-get install open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m00

##テスト
これでもう音声出力はできます!
OpenJtalkは日本語の音声ファイルを作ってからそれを再生するという順序になっています。
まず、以下で音声ファイルを作ります。

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 ~/ojtalk.wav

これで同じディレクトリにojtalk.wavという音声ファイルができたと思います。
それでは次に再生します。

aplay ~/ojtalk.wav

"こんにちは"
と出力されましたか?
####オプションの意味
-x 使う辞書
-m どの声を使うか(男声or女声など)
-ow 出力ファイルを指定

####ノイズが多い時
ちなみにですが、3.5mmのアナログ出力だとノイズが乗ってしまって綺麗に聞こえないことがあります。(自分はそうでした、、、)
その時は、HDMIでディスプレイに接続してディスプレイから出力してみてください。
おそらく回路が原因のノイズは消えます。

####音声ファイル保存せずに出力
今回は、音声ファイルを作ってから出力しましたが、発話させる度に音声ファイルが保存されていくのは少し気持ち悪いという方は、以下で音声ファイルを作らずにできます。

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

#女性の音声をダウンロード
MMDAgentのパッケージを使用します。

まずは以下を実行してダウンロード

wget https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.7/MMDAgent_Example-1.7.zip

次にそのzipを解凍します

unzip ./MMDAgent_Example-1.7.zip

そしてフォルダーの中にあるmeiちゃんの音声フォルダーを
/usr/share/hts-voice/のディレクトリー下にコピーします。

sudo cp -r ./MMDAgent_Example-1.7/Voice/mei/ /usr/share/hts-voice/

これで音響モデルをこれに変えれば女性音声になります。
オプションの -m 音響モデル
に相当する部分ですね。

echo "こんにちは”|open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/mei/mei_normal.htsvoice -ow ~/ojtalk.wav
aplay ~/ojtalk.wav

これで女性の音声になったと思います。

#まとめ
今回はOpenJtalkのインストールとそのテストをお届けしました。
次は、APIで取得した情報やweb scrapingしたものを話すプログラムを作っていきたいと思います!
では!

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?