ラズパイでスマートスピーカーを自作しよう!第4回:遂に夢の翻訳こんにゃく?スマートほんやくイヤフォン

こんにちは、ヨシケンです!ここまでラズパイとGoogle APIを使って、さまざまな便利なものを簡単に作れるのが分かってきたと思います。
今回は小型のラズパイ Zeroを使ってウェアラブルなものにします。Google Translate 機能を使って外国語をリアルタイムに訳してくれる、夢の「ほんやくイヤフォン」を作ってみたいと思います!

ほんやくイヤフォン

ほんやくイヤフォンをつけてみる
 

今回の記事で必要な物一覧

・Raspberry Pi Zero W
Raspberry Pi Zero W

・Seeed ReSpeaker 2-Mic Pi HAT
Seeed ReSpeaker 2-Mic Pi HAT

・イヤフォン
(スマホに付いているものや、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を使っていきます。

ReSpeaker 2-Mic Pi Hat

それではラズパイZero、ReSpeakerのセットアップをしていきます。
Zeroでも、これまで使ってきたGoogle AIYのSDイメージカードが使えます。まだセットアップしていない方は、これまでの記事を見て、Zero上でGoogle AIYが動くようにしておいてください。
この後、ReSpeakerをラズパイZeroの端子に差し込みます。ぴったり収まってコンパクトなのでいろいろなモバイル機器が作れそうですね。

ラズパイZero、ReSpeakerのセットアップ  
まずSeeed社のWikiから、ReSpeakerプログラムをラズパイにインストールします。インストール後に再起動して、音声チェックをします。

$ sudo apt-get update & upgrade
$ git clone https://github.com/respeaker/seeed-voicecard.git
$ cd seeed-voicecard
$ sudo ./install.sh
$ reboot

この2-Mic Hatには超小型のマイクが左右二つ付いています。ラジオジャックにイヤフォンを差し、いつもの方法でマイクと音声出力を確認します。

$ alsamixer #音量の調整、Escで元の画面に戻ります
$ 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をいろいろ光らせることができます。プログラムのステータス確認などに使うので、このライブラリもセットアップしておいてください。

$ sudo pip install spidev
$ 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 の変更]

$ cd ~/AIY-projects-python/src/aiy/
$ sudo cp voicehat.py voicehjat.py.org #バックアップをとっておいて下さい。
$ sudo vi voicehat.py

_GPIO_BUTTON = 17をセットします。
Cloud Speechのカスタマイズ
次に、Cloud speechの変更を行います。前回作ったsmartフォルダの中に、cloudspeech_trans.pyという名前で、プログラムをコピーして作ります。今回は翻訳機ですので、話す言語(speech_lang)と翻訳語(trans_lang)を指定するようなパラメータをセットします。

($ sudo mkdir ~/AIY-projects-python/src/smart #もし前回smartフォルダを作っていなかったら)
($ 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をアクティベートして使えるようにします。

Translation APIをアクティベートして使えるようにする

API認証情報ページから、サービスアカウントキーを取得して、パソコンにダウンロードします。
AY04_1415
これをscpなどでラズパイに転送しておきます。その後ラズパイ側でGoogle Translateのインストール、アカウントキーのExportを行います。

$ pip install –upgrade google-cloud-translate
$ export GOOGLE_APPLICATION_CREDENTIALS=“/home/pi/[FILE_NAME].json”

また日本語発話に関しては、前回のようにAquesTalkを使います。公式ページからラズパイ版AquesTalkを、以下のようにダウンロード、ラズパイ内に設置しておいてください。

(ダウンロードしたPCから) scp aquestalkpi-20130827.tgz pi@raspi.local:AIY-projects-python/src/
(ラズパイにログオンして) $ tar zxvf ~/AIY-projects-python/src/aquestalkpi-20130827.tgz

では、これまでの翻訳、日本語発話をTransプログラムに組み込んでいきます

[cloudspeech_trans.py 追加分]

それではテストしてみましょう。Python3系のライブラリを使っているので、python3 cloudspeech_trans.pyと流してみます。

AY04_16

みごとしゃべった言葉を翻訳してくれたでしょうか?何もパラメータを指定しないと、英語でしゃべって、日本語に訳してくれるのですが、–speech_lang ja-JP –trans_lang fr-FRなどと、日本語で話して、フランス語に変換するなどやってみてください。

 

4.コンパクトにまとめて、スマートほんやくイヤフォンを作り上げる

それでは最後に、ラズパイZeroとReSpeakerをウェアラブル機器として、「ほんやくイヤフォン」を作り上げます。

小型のリチウムイオン充電池を使うために、ラズパイのマイクロUSB端子裏側に電源接続のはんだ付けをします。そこにスイッチ変換基盤をつなぎ、そのスイッチとリチウムイオンポリマー電池を接続します。はんだ付けの向き、電池のプラス、マイナスなど、バッテリーの取り扱いには十分に気を付けて、自己責任でお使いください。

AY04_1718
ZeroもReSpeakerもフリスクの箱にピッタリ収まるサイズですので、それを利用してコンパクトにまとめていきます。

AY04_1920
ケースのバッテリー、マイク、LED部分を適宜加工して、上手くはまるようにします。イヤフォンケーブルを適当な長さに調節し、耳に引っ掛けられるようにすると、落ちなくていいかもしれません。

AY04_2122
少し(?)大きいですが、ウェアラブルデバイスの「ほんやくイヤフォン」のできあがりです。右下の丸いドット部分がReSpeakerのボタンに当たり、これを押すと聞き始め、随時翻訳してくれる仕組みです。

AY04_2324
それでは、実行してみましょう。最初にプログラムが立ち上がると、LEDが3回点滅し、動いているのが分かります。会話を聞き出すと、LEDが3色に順番に光るようにしています。また自分でGoodbyeなどのストップワードを発音すると、聞き取りをやめます。

$ cd ~/AIY-projects-python/src/smart
$ python3 cloudspeech_trans.py –speech_lang en-US –trans_lang ja-JP

AY04_2526
ほんやくイヤフォンを使っている動画はこちらです。

まず中学生で英語を習い始めた子どもに、英語を話しかけて、それがリアルタイムで翻訳されています。またスティーブジョブスの有名な演説を流して、それをかなり的確に訳してくれています。

AY04_27

 

5.まとめ

今回はGoogleのCloud speechとTranslateを使って、「ほんやくイヤフォン」を作りました。英語を聞いて、日本語に訳すという機能に特化したものですが、もちろん他の言語などから日本語にすることも可能です。前回の議事録デバイスにこの翻訳機能を付けて、日本語で会話したミーティングを自動的に英語の議事録にもできるかもしれません。いろいろ試してみてくださいね。

全体のプログラム[cloudspeech_trans.py]はこちらからダウンロードできますので、参考にしてください。

次回は、カメラ機能も使って、画像+音声の面白いスマートデバイスも作って行きたいと思います。お楽しみに!

電子工作マニュアル Vol.3
ヨシケン(吉田 顕一)

普通の会社に勤めるサラリーマンですが、モノ作りが好きな週末メイカーで、電子書籍MESHBOOKを出したり、ブログを書いたりしています!

http://blog.ktrips.net