生成AI、何から始める?はじめての方へ

Raspberry Pi(ラズパイ)を音声合成で日本語をしゃべらせてみた!(OpenJTalk)

当ページのリンクには広告が含まれています。
並べたGoogle AIY Voice KitとEcho Dot

この記事は2020年に書いた記録です。商品やサービスの情報は当時のものなので、今の状況は公式のページで確かめてください。

「ラズパイを音声合成でしゃべらせてみたい!」 ラズパイは最近IoTデバイスとして注目されています。 ラズパイはいわば小さいパソコンで、色々なことが出来ます。 前回、そんなラズパイをセットアップしてみました。
ねじま
さて、次は何をしてみようかな?
そうだ!
ねじま
ラズパイをしゃべらせてみよう!
ってことで、こんな感じでテキストをラズパイが読み上げてくれます。 ラズパイからアレクサに喋りかけると、ちゃんとアレクサも反応してくれました♪ これで、いちいち自分で声をださなくてもラズパイがアレクサに声で頼んでくれますね!
ねじま
OpenJTalkを使うことで簡単にできます^^
今回はそんなラズパイを音声合成でしゃべらせる方法をご紹介します。
目次

ラズパイを音声合成でしゃべらせるのに必要なもの

まずラズパイを用意します。 今回はラズパイゼロで動いている Google AIY Voice Kit V2 を使いました。 Google AIY Voice Kit V2の組み立てについては、こちらの記事をご参照あれ^^ https://rikei-life.com/google-aiy-voice-kit-v2-setup/ 他にも、ラズパイとスピーカーを用意すれば可能です。 Raspberry Pi 3 Model b+のセットアップについてはこちらの記事をお読み下さいね♪ https://rikei-life.com/raspberry-pi-setup/ リモート接続設定についてはこちらの記事をご参考にしてください。 ラズパイにディスプレイを接続する必要がなく、外部PCからいじれるので便利です♪ https://rikei-life.com/raspberry-pi-ssh-vnc/

ラズパイを音声合成でしゃべらせるまでの流れ

では、さっそくラズパイの準備が出来たところで進めていきましょう! 簡単な流れは以下です。
ラズパイをしゃべらせるまでの流れ
  1. Open JTalkをインストール
  2. スクリプトファイル作成
  3. オーディオ設定
  4. MMDagentをダウンロード
  5. 女性の声に変更
  6. しゃべらせてみる
ラズパイをしゃべらせよう!
  1. Open JTalkをインストール まずは、Open JTalkをインストールします。
    sudo apt-get install -y open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
  2. スクリプトファイルを作成 次に、スクリプトファイルを作成します。 音声スクリプト作成 テキストエディターを使って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を表しています。その所有者は読み出せて、書き込めて、実行できる。そのグループは、読み出せて、実行できる。その他のユーザは、読み出せて、実行できる。という権限を付与しています。
  3. オーディオ設定 お次はオーディオ設定。
    amixer cset numid=3 1
    上記のコマンドによりオーディオ出力端子で音声を出力するよう設定します。 HDMIケーブルをつないでいる場合、下記コマンドにより出力先を変更できます。
    amixer cset numid=3 2
    あとは、音量の調整をします。
    alsamixer
    キーボードの↑矢印キーや↓矢印キーで音量を調整できます。 オーディオ設定
    ねじま
    はじめ、この設定で音量がゼロになっていて全然音が出ませんでした。。
    お忘れなく、音量設定を確認しましょう♪ これで、下記コマンド実行すると男性の声でしゃべってくれます。
    ./jtalk.sh "こんにちは!"
  4. MMDagentをダウンロード 次は、MMDagentをダウンロード。 男性の声を女性の声に変更することが出来ます。
    wget https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.7/MMDAgent_Example-1.7.zip --no-check-certificate
  5. 女性の声に変更 女性の声にするために先程ダウンロードしたファイルを参照してあげます。 下記の通りスクリプトファイルを編集します。 先程の男性の声をメイちゃんの声に変更します。 変更箇所は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
  6. しゃべらせてみる では、さっそくラズパイをしゃべらせてみましょう!
    ./jtalk.sh "アレクサ!こんにちは!"
以上の流れで、こんな感じでラズパイがしゃべってくれました♪ その他、女性の音声データがあるので、スクリプトファイルを書き換えてみると面白いです。
  1. mei_normal
  2. mei_angry
  3. mei_happy
  4. mei_bashful
  5. mei_sad

ラズパイで音声合成:まとめ

今回はラズパイを音声合成でしゃべらせてみました!
ラズパイをしゃべらせるまでの流れ
  1. Open JTalkをインストール
  2. スクリプトファイル作成
  3. オーディオ設定
  4. MMDagentをダウンロード
  5. 女性の声に変更
  6. しゃべらせてみる
OpenJTalkをインストールしてスクリプトファイルを読み込んでスピーカーで鳴らす。 簡単に設定することが出来ました。 ちょっと喋り方が不自然ですがこれも愛嬌ってことで。 ちゃんとアレクサも反応してくれました♪
ねじま
自分の声で喋りたくない時とかに活用できるかも・・・。
ぜひ、色々と遊んでみて下さいね。 ラズパイの取り組みは下記記事にまとめてます。
ねじま
ぜひ、こちらもお読み下さい♪
https://rikei-life.com/raspberry-pi/

しゃべらせる応用として、Google Homeをしゃべらせてみたもあります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次