2021年12月23日 更新
どうも、クラゲです。
今回は音声合成を使ってRaspberry Piに日本語をしゃべらせる方法を紹介します。任意のテキストを即時実行して喋らせることが可能です。それでは動画で聞いてみましょう!
この動画では自然に聞こえるように、言葉を選んでテキストにしています。例えばニュースや天気などをそのまましゃべらせると、ちょっとぎこちなかったりもしますが、それも愛嬌です。
では作り方です。
[TOC]
今回はオーディオ出力端子のステレオミニジャックに繋がるスピーカーを使います。スピーカーのない人は、HDMIでディスプレーのスピーカーから喋らせることもできます。
音声合成のエンジン、辞書、音声データを一気にインストールします。
コマンド一発でサクッとできます。
sudo apt install -y open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
2021年12月時点ではver1.11が入りました。
テキストエディッタnanoを使ってjtalk.sh
というスクリプト名にして作成します。
sudo nano jtalk.sh
中身は以下の内容をコピペして保存します。
#!/bin/bash
tempfile=$(mktemp)
option="-m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice \
-x /var/lib/mecab/dic/open-jtalk/naist-jdic \
-ow $tempfile"
echo "$1" | open_jtalk $option
aplay -q $tempfile
rm $tempfile
nanoの保存操作:Ctrl+O、Enter、Ctrl+X
中身の解説です。
open_jtalk
コマンドで、tempfile
として一時的にwavファイルを作り、aplay
コマンドでtempfile
を再生し、最後にtempfile
を削除しています。optionの-m
は使う音声データ、-x
は使う辞書、-ow
は保存するファイル名を表しています。
スクリプトファイルができたら、実行可能になるように権限を変更します
sudo chmod 755 jtalk.sh
早速実行!といきたいところですが、先にオーディオの設定をしましょう。
まず、オーディオ出力端子にスピーカーを接続してください。スピーカーのない人はHDMIケーブルでディスプレイと繋げてください。
Raspberry Piデスクトップ画面の右上の方にスピーカーアイコンがあります。
音量調整やミュートは左クリックを行うこと出来ます。
また、右クリックを行うことで出力先としてAnalog
またはHDMI
を選択することが出来ますのでスピーカーを接続した場合はAnalog
を選択するようにしましょう。
なお、以下のコマンドで音量調整だけは可能です。
上下キーで音量のアップダウンができ、数値キーを押すとその10倍の値に直接指定できます。
alsamixer
以下のコマンドで簡単に喋らせることができます。文字列をいろいろ変えてみてください。
./jtalk.sh "こんにちは。ラズベリーパイが喋っていますよ"
先ほどの音量設定にもよりますが、結構ボリュームが小さいので注意しましょう。
このままだとおじさんの低い声なので、メイちゃんの声に変えます!
こちらのページの一番下にSourceforgeのリンクがあり、そこからダウンロード可能ですが、ラズパイ上のコマンドを使ってダウンロードします。
wget https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.7/MMDAgent_Example-1.7.zip --no-check-certificate
展開します。
unzip MMDAgent_Example-1.7.zip
展開してできたVoice
フォルダの中身を /usr/share/hts-voice
の下にコピーします。
sudo cp -R ./MMDAgent_Example-1.7/Voice/mei /usr/share/hts-voice/
これでメイちゃんの音声データが配置されました。
テキストエディッタnanoを使ってjtalk.sh
を編集します。
sudo nano jtalk.sh
先程コピペした内容を一旦消して、新たにコピペし直します。
ちなみに、変更箇所は3行目をメイちゃんの音声データにしている点です
#!/bin/bash
tempfile=$(mktemp)
option="-m /usr/share/hts-voice/mei/mei_normal.htsvoice \
-x /var/lib/mecab/dic/open-jtalk/naist-jdic \
-ow $tempfile"
echo "$1" | open_jtalk $option
aplay -q $tempfile
rm $tempfile
nanoの保存操作:Ctrl+O、Enter、Ctrl+X
先ほどと同じです。色々文字列を変えてみよう!
./jtalk.sh "こんにちは。ラズベリーパイが喋っていますよ"
メイちゃんの音声データは、mei_normal
の他にmei_angry
やmei_happy
などもありますので、色々試してみると面白いと思います。
他にもゆっくりボイスで有名なAquesTalkもあるので、そちらも試してみると面白いと思います。
以上、「RaspberryPiを音声合成でしゃべらせよう」でした!