「ラズパイを音声合成でしゃべらせてみたい!」
ラズパイは最近IoTデバイスとして注目されています。
ラズパイはいわば小さいパソコンで、色々なことが出来ます。
前回、そんなラズパイをセットアップしてみました。
さて、次は何をしてみようかな?
そうだ!
ラズパイをしゃべらせてみよう!
ってことで、こんな感じでテキストをラズパイが読み上げてくれます。
【ラズパイを音声合成でしゃべらせてみた!】
ラズパイにOpen JTalkをインストールして、スクリプトファイルを作成。
こんなに簡単に音声合成で喋らせることが出来るなんて便利な世の中です😳
アレクサと楽しくお喋り出来るかな😉#ラズパイいじり pic.twitter.com/W6XZPfxHrZ
— ヨシタカ🍤趣味ブログ初級者Lv.2 (@ystk_rl) January 14, 2020
ラズパイからアレクサに喋りかけると、ちゃんとアレクサも反応してくれました♪
これで、いちいち自分で声をださなくてもラズパイがアレクサに声で頼んでくれますね!
OpenJTalkを使うことで簡単にできます^^
今回はそんなラズパイを音声合成でしゃべらせる方法をご紹介します。
ラズパイを音声合成でしゃべらせるのに必要なもの
まずラズパイを用意します。
今回はラズパイゼロで動いているこちらのキットを使いました。
Google AIY Voice Kit V2の組み立てについては、こちらの記事をご参照あれ^^
他にも、ラズパイとスピーカーを用意すれば可能です。
Raspberry Pi 3 Model b+のセットアップについてはこちらの記事をお読み下さいね♪
リモート接続設定についてはこちらの記事をご参考にしてください。
ラズパイにディスプレイを接続する必要がなく、外部PCからいじれるので便利です♪
ラズパイを音声合成でしゃべらせるまでの流れ
では、さっそくラズパイの準備が出来たところで進めていきましょう!
簡単な流れは以下です。
- Open JTalkをインストール
- スクリプトファイル作成
- オーディオ設定
- MMDagentをダウンロード
- 女性の声に変更
- しゃべらせてみる
[timeline title=”ラズパイをしゃべらせよう!”]
[ti label=”STEP01″ title=”Open JTalkをインストール”]
まずは、Open JTalkをインストールします。
sudo apt-get install -y open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
[/ti]
[ti label=”STEP02″ title=”スクリプトファイルを作成”]
次に、スクリプトファイルを作成します。
テキストエディターを使ってjtalk.shというスクリプト名のファイルを作ります。
sudo nano jtalk.sh
テキストエディターを開いたら、下記ファイルをコピペします。
#!/bin/bash
tempfile=`tempfile`
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
コピペしたら、『Ctrlキー』と『Oキー』で書き込みすることが出来ます。
動作は下記です。
open_jtalkコマンドで、tempfileにwavファイルを作り、aplayコマンドでtempfileを再生し、最後にtempfileを削除します。
optionの-mは使う音声データ、-xは使う辞書、-owは保存するファイル名を表しています。
echo "<日本語>" | open_jtalk -m <音響モデル> -x <辞書ディレクトリ> -ow <出力WAVファイル>
スクリプトファイルができたら、実行可能になるように権限を変更します。
sudo chmod 755 jtalk.sh
chmod:ファイルのパーミッション(許可属性)を変更するためのコマンドです。755の意味は、rwx(7)r-x(5)r-x(5)= 755を表しています。その所有者は読み出せて、書き込めて、実行できる。そのグループは、読み出せて、実行できる。その他のユーザは、読み出せて、実行できる。という権限を付与しています。
[/ti]
[ti label=”STEP03″ title=”オーディオ設定”]
お次はオーディオ設定。
amixer cset numid=3 1
上記のコマンドによりオーディオ出力端子で音声を出力するよう設定します。
HDMIケーブルをつないでいる場合、下記コマンドにより出力先を変更できます。
amixer cset numid=3 2
あとは、音量の調整をします。
alsamixer
キーボードの↑矢印キーや↓矢印キーで音量を調整できます。
はじめ、この設定で音量がゼロになっていて全然音が出ませんでした。。
お忘れなく、音量設定を確認しましょう♪
これで、下記コマンド実行すると男性の声でしゃべってくれます。
./jtalk.sh "こんにちは!"
[/ti]
[ti label=”STEP04″ title=”MMDagentをダウンロード”]
次は、MMDagentをダウンロード。
男性の声を女性の声に変更することが出来ます。
wget https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.7/MMDAgent_Example-1.7.zip --no-check-certificate
[/ti]
解凍して、Voiceフォルダの中身を /usr/share/hts-voiceの下にコピーします
unzip MMDAgent_Example-1.7.zip
sudo cp -R ./MMDAgent_Example-1.7/Voice/mei /usr/share/hts-voice/
[/ti]
[ti label=”STEP05″ title=”女性の声に変更”]
女性の声にするために先程ダウンロードしたファイルを参照してあげます。
下記の通りスクリプトファイルを編集します。
先程の男性の声をメイちゃんの声に変更します。
変更箇所は3行目です。
sudo nano jtalk.sh
#!/bin/bash
tempfile=`tempfile`
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
[/ti]
[ti label=”STEP06″ title=”しゃべらせてみる”]
では、さっそくラズパイをしゃべらせてみましょう!
./jtalk.sh "アレクサ!こんにちは!"
[/ti]
[/timeline]
以上の流れで、こんな感じでラズパイがしゃべってくれました♪
【ラズパイを音声合成でしゃべらせてみた!】
ラズパイにOpen JTalkをインストールして、スクリプトファイルを作成。
こんなに簡単に音声合成で喋らせることが出来るなんて便利な世の中です😳
アレクサと楽しくお喋り出来るかな😉#ラズパイいじり pic.twitter.com/W6XZPfxHrZ
— ヨシタカ🍤趣味ブログ初級者Lv.2 (@ystk_rl) January 14, 2020
その他、女性の音声データがあるので、スクリプトファイルを書き換えてみると面白いです。
- mei_normal
- mei_angry
- mei_happy
- mei_bashful
- mei_sad
ラズパイで音声合成:まとめ
今回はラズパイを音声合成でしゃべらせてみました!
- Open JTalkをインストール
- スクリプトファイル作成
- オーディオ設定
- MMDagentをダウンロード
- 女性の声に変更
- しゃべらせてみる
OpenJTalkをインストールしてスクリプトファイルを読み込んでスピーカーで鳴らす。
簡単に設定することが出来ました。
ちょっと喋り方が不自然ですがこれも愛嬌ってことで。
ちゃんとアレクサも反応してくれました♪
自分の声で喋りたくない時とかに活用できるかも・・・。
ぜひ、色々と遊んでみて下さいね。
今回使ったラズパイキットはこちらです。
ラズパイの取り組みは下記記事にまとめてます。
ぜひ、こちらもお読み下さい♪
コメント