遂に夢の翻訳こんにゃく?スマートほんやくイヤフォン
第1回:Google AIYを使って、日本語対応スマートスピーカーをサクッと作る
第2回:部品を自作して、押したらGoogleがしゃべり出すPush to Talkを完成させる
第3回:会話をリアルタイムに記録、自動でテキスト化するスマート議事録デバイス!
こんにちは、ヨシケンです!ここまでラズパイとGoogle APIを使って、さまざまな便利なものを簡単に作れるのが分かってきたと思います。
今回は小型のラズパイ Zeroを使ってウェアラブルなものにします。Google Translate 機能を使って外国語をリアルタイムに訳してくれる、夢の「ほんやくイヤフォン」を作ってみたいと思います!
今回の記事で必要な物一覧
・イヤフォン
(スマホに付いているものや、100円ショップなどで手に入る片耳イヤフォン)
・スイッチ付きブレイクアウト基盤
(Adafruit 2ピンJST-PHコネクタ)
・小型バッテリー
(リチウムイオンポリマー電池、取り扱いに充分気を付けて自己責任でお使いください)
・ケース
(フリスクなどの空き箱を流用しています)
今回の記事の流れ
1.ReSpeaker 2-Mic Pi Hatのセットアップ
2.Google Cloud Speechのカスタマイズ
3.Google Translationの設定
4.スマートほんやくイヤフォンを作り上げる
5.まとめ
1.ReSpeaker 2-Mic Pi Hatのセットアップ
今回使うラズパイは、ウェアラブルにしてもかさばらない、コンパクトなRaspberry Pi Zero Wを使います。このラズパイは非常に小さく、Wi-Fiも内蔵しているのでモバイル機器を作るのに最適なのですが、音声出力ジャックが付いていないので、音声機器を作るには少し工夫が必要です。
そのため、今回はSeeed社が販売している、ラズパイZeroサイズで、マイク、スピーカー端子が付いたReSpeaker 2-Mic Pi HATを使っていきます。
それではラズパイZero、ReSpeakerのセットアップをしていきます。
Zeroでも、これまで使ってきたGoogle AIYのSDイメージカードが使えます。まだセットアップしていない方は、これまでの記事を見て、Zero上でGoogle AIYが動くようにしておいてください。
この後、ReSpeakerをラズパイZeroの端子に差し込みます。ぴったり収まってコンパクトなのでいろいろなモバイル機器が作れそうですね。
まずSeeed社のWikiから、ReSpeakerプログラムをラズパイにインストールします。インストール後に再起動して、音声チェックをします。
$ git clone https://github.com/respeaker/seeed-voicecard.git
$ cd seeed-voicecard
$ sudo ./install.sh
$ reboot
この2-Mic Hatには超小型のマイクが左右二つ付いています。ラジオジャックにイヤフォンを差し、いつもの方法でマイクと音声出力を確認します。
$ aplay -l #スピーカーの確認、card番号を覚えておいて下さい
$ arecord -l #マイクの確認、card番号を覚えておいて下さい
$ arecord -f cd -Dhw:0 | aplay -Dhw:0 #Dhw:0の部分はarecord, aplayで確認したカード番号を入れて下さい
これで自分が話した声がオウム返しに聞こえたら、2-Mic Hatが正常に動作しています。
またSeeed社が提供する2-Mic Hatのサンプル・ライブラリを使うと、中ほどに付いた3つのLEDをいろいろ光らせることができます。プログラムのステータス確認などに使うので、このライブラリもセットアップしておいてください。
$ git clone https://github.com/respeaker/mic_hat.git
$ python mic_hat/pixels.py
pixels.pyを流してみます。Google Home風に3色にピカピカ光って、なかなか存在感が出てきたのではないかと思います。
2.Cloud Speechのカスタマイズ
前回の議事録デバイス同様、音声聞き取りにはCloud Speechを使います。前回記事を参照して、Cloud Speechの設定を完了させてください。
ReSpeakerにはあらかじめプッシュボタンが一つ付いていますので、AIYの仕組みを一部変更し、音声聞き出しなどにこのボタンを活用します。このボタンはラズパイのGPIO17につながり、aiyフォルダの中にあるvoicehat.pyというサブプログラムを変更し、対応させます。
[voicehat.py の変更]
$ sudo cp voicehat.py voicehjat.py.org #バックアップをとっておいて下さい。
$ sudo vi voicehat.py
_GPIO_BUTTON = 17をセットします。
次に、Cloud speechの変更を行います。前回作ったsmartフォルダの中に、cloudspeech_trans.pyという名前で、プログラムをコピーして作ります。今回は翻訳機ですので、話す言語(speech_lang)と翻訳語(trans_lang)を指定するようなパラメータをセットします。
($ sudo cp ~/AIY-projects-python/src/examples/voice/* ~/AIY-projects-python/src/smart/ #もし前回smartフォルダ中にファイルをコピーしていなかったら)
$ cd ~/AIY-projects-python/src/smart/
$ sudo cp cloudspeech_demo.py cloudspeech_trans.py
$ sudo vi cloudspeech_trans.py
[cloudspeech_trans.py 追加分]
3.Google Translateの設定
次に、翻訳機能を追加します。今回の翻訳機は基本的に、英語を聞いて、それを日本語に翻訳、イヤフォンから聞き取れることを目的としています。
Googleの翻訳エンジンGoogle Translateは有料オプションですが、ディープラーニングを使って、精度の高い翻訳が出来るようになっています。
まずGoogle Cloud Consoleから、Translation APIをアクティベートして使えるようにします。
API認証情報ページから、サービスアカウントキーを取得して、パソコンにダウンロードします。
これをscpなどでラズパイに転送しておきます。その後ラズパイ側でGoogle Translateのインストール、アカウントキーのExportを行います。
$ export GOOGLE_APPLICATION_CREDENTIALS=“/home/pi/[FILE_NAME].json”
また日本語発話に関しては、前回のようにAquesTalkを使います。公式ページからラズパイ版AquesTalkを、以下のようにダウンロード、ラズパイ内に設置しておいてください。
(ラズパイにログオンして) $ tar zxvf ~/AIY-projects-python/src/aquestalkpi-20130827.tgz
では、これまでの翻訳、日本語発話をTransプログラムに組み込んでいきます
[cloudspeech_trans.py 追加分]
それではテストしてみましょう。Python3系のライブラリを使っているので、python3 cloudspeech_trans.pyと流してみます。
みごとしゃべった言葉を翻訳してくれたでしょうか?何もパラメータを指定しないと、英語でしゃべって、日本語に訳してくれるのですが、–speech_lang ja-JP –trans_lang fr-FRなどと、日本語で話して、フランス語に変換するなどやってみてください。
4.コンパクトにまとめて、スマートほんやくイヤフォンを作り上げる
それでは最後に、ラズパイZeroとReSpeakerをウェアラブル機器として、「ほんやくイヤフォン」を作り上げます。
小型のリチウムイオン充電池を使うために、ラズパイのマイクロUSB端子裏側に電源接続のはんだ付けをします。そこにスイッチ変換基盤をつなぎ、そのスイッチとリチウムイオンポリマー電池を接続します。はんだ付けの向き、電池のプラス、マイナスなど、バッテリーの取り扱いには十分に気を付けて、自己責任でお使いください。
ZeroもReSpeakerもフリスクの箱にピッタリ収まるサイズですので、それを利用してコンパクトにまとめていきます。
ケースのバッテリー、マイク、LED部分を適宜加工して、上手くはまるようにします。イヤフォンケーブルを適当な長さに調節し、耳に引っ掛けられるようにすると、落ちなくていいかもしれません。
少し(?)大きいですが、ウェアラブルデバイスの「ほんやくイヤフォン」のできあがりです。右下の丸いドット部分がReSpeakerのボタンに当たり、これを押すと聞き始め、随時翻訳してくれる仕組みです。
それでは、実行してみましょう。最初にプログラムが立ち上がると、LEDが3回点滅し、動いているのが分かります。会話を聞き出すと、LEDが3色に順番に光るようにしています。また自分でGoodbyeなどのストップワードを発音すると、聞き取りをやめます。
$ python3 cloudspeech_trans.py –speech_lang en-US –trans_lang ja-JP
ほんやくイヤフォンを使っている動画はこちらです。
まず中学生で英語を習い始めた子どもに、英語を話しかけて、それがリアルタイムで翻訳されています。またスティーブジョブスの有名な演説を流して、それをかなり的確に訳してくれています。
5.まとめ
今回はGoogleのCloud speechとTranslateを使って、「ほんやくイヤフォン」を作りました。英語を聞いて、日本語に訳すという機能に特化したものですが、もちろん他の言語などから日本語にすることも可能です。前回の議事録デバイスにこの翻訳機能を付けて、日本語で会話したミーティングを自動的に英語の議事録にもできるかもしれません。いろいろ試してみてくださいね。
全体のプログラム[cloudspeech_trans.py]はこちらからダウンロードできますので、参考にしてください。
次回は、カメラ機能も使って、画像+音声の面白いスマートデバイスも作って行きたいと思います。お楽しみに!
今回の連載の流れ
第1回:Google AIYを使って、日本語対応スマートスピーカーをサクッと作る
第2回:部品を自作して、押したらGoogleがしゃべり出すPush to Talkを完成させる
第3回:会話をリアルタイムに記録、自動でテキスト化するスマート議事録デバイス!
第4回:遂に夢の翻訳こんにゃく?スマートほんやくイヤフォン(今回)
第5回:旅先で便利に使える!? 外国語読み取り自動翻訳メガネ!