- Googleアシスタントの作成を行う.
- 材料はラズベリーパイとマイクのみ!
- びっくりするほど超簡単に作れちゃう!
こんにちは.けんゆー(@kenyu0501_)です.
ラズベリーパイでスマートスピーカー(テキスト版のHotword機能)を自作してみました.
必要な材料はこちらです.
- ラズベリーパイ(最新版のスターターセットはこちら)
- USB小型マイク(こちら)
youtubeに動画の様子をあげたのでご覧ください.
やっぱり何か作ることは楽しいねー!
GoogleアシスタントAPIをインターネットに落として,ラズベリーパイにマイクを差し込んだらすぐに実装できます.
参考にした技術書はこちらの本です.
『Raspberry Pi + AI電子工作超入門』という本です.
分かりやすくてオススメです.
本書に無くて迷った点
指定ファイルの追加
Hotword機能を実装する直前!
1 | (env) pi@raspberrypi:~ $ google-assistant-demo --project-id (自分のプロジェクトID) --device-model-id (自分のデバイスモデルID) |
仮想環境で,上のコードをターミナル(コマンドプロンプト)に打ち込むと思いますが,
[FATAL:audio_input_stream.cc(47)] Input device could not be opened: default
中止
というエラーメッセージが帰ってくるのですよね.
これはおそらく,全ての方に出るエラーメッセージだと思います.
(おいらも1時間くらい格闘しました)
解決策はこちらです.これをすることで恐らく解決です.
「/home/pi/.asoundrc」ファイルを作成する!そして適切な中身をかく!
それだけです.順を追って説明していきます.
「/home/pi/.asoundrc」ファイルを作成.は簡単ですね.仮想環境下のターミナルで以下を行ってください.
1 2 | $ nano ~/.asoundrc |
そうすると,何も記載されていないファイルが開かれるので,以下のコードを記載してください.9行目の「hw:1,0」はマイクの「カード番号,デバイス番号」,15行目の「hw:0,0」はスピーカーの「カード番号,デバイス番号」です.おいらの場合でカード番号とデバイス番号を書いていますが,デフォルトだとこれで良いと思います.また,今回,マイクは使用しませんが,後々使うと思うので,記載していてください.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | pcm.!default { type asym capture.pcm "mic" playback.pcm "speaker" } pcm.mic { type plug slave { pcm "hw:1,0" } } pcm.speaker { type plug slave { pcm "hw:0,0" } } |
こちらの上のコードを記載したら,[Ctrl]+[X]キーを同時に押しすると,保存確認に移るので,Yesの[Y]を押し,[Enter]で終了します.
こちらを記載すると,完璧にできると思います.
打ち間違えに気をつけよう
p.155のコピーする長いコードは気をつけてくださいね!打ち間違える可能性が大です!
おいらはずっとこのエラーコード400に躓いてました.
変なところを行ったりきたりです.
400. That’s an error. Error: invalid_scope Some requested scopes were invalid. {valid=[https://www.googleapis.com/auth/gcm], invalid=[https://www.googleapis.com/auth/assistant-sdk-protptype]}
厳密には,おいらのタイプミスで「prototype」を「protptype」にしていただけなんですけどね!笑
仮想環境から出るとき
ちなみに,ターミナルの仮想環境から抜けるときは「deactivate」とタイプすると抜けれます.
p.152で,仮想環境に入ったは良いものの,抜けるときにどうしたら良いのだろうと思っている方へ!
ちなみに,仮想環境に入るときは,
1 | pi@raspberrypi:~ $ source ~/env/bin/activate |
こちらですね!
録音時のエラー
p.97の録音時,「$arecord voice.wav」でエラーが出る場合は,こちらを試してみて下さい.
1 | $ arecord -D plight:1,0 voice.wav |
これで恐らく,集音できると思います.
しかし,アナログスピーカーから出力される音は,おいらの環境ではノイズだらけでした.
そのため,録音した音が上手く聞こえない,ということが多々ありました.
スピーカーによく耳を傾けてようやく聞こえる,という感じでしたので,皆さんも,「聞こえない」ではなく,「聞こえるかも!」というスタンスを取って下さい!
オーディオ接続で認識しない問題
ちなみに,完全なる余談ですが,外部スピーカー(オーディオ)をラズパイに取り付けて,そのオーディオを認識しないトラブルありませんか.
(今回のスマートスピーカーには関係ないのですが,,,)
あのときは,恐らくこれで解決です.
1 | sudo nano /boot/config.txt |
config.txtの一番最後に以下を書き込んで,再起動(reboot)してください.
1 | dtparam = audio = on |
nanoは,[Ctrl]+[X]キーを同時に押しすると,保存確認に移るので,Yesの[Y]を押し,[Enter]で終了します.
最後に再起動して下さいね!
ターミナルで『sudo reboot』です.!
オススメはリモートデスクトップ
リモートデスクトップはまじでオススメです.
特に初心者は,絶対にやった方が良いです.
コピーアンドペーストも捗りますし,エラーを潰す際に,検索画面を横に出しながら作業ができるので良いです.
基本は全てリモートデスクトップのPCでやってしまいますが,たまーにラズベリーパイに接続されたキーボード・マウス・モニターが役に立ちます.
リモートデスクトップのやり方がイマイチ分からない方はこちらです.
この記事はこんな人にオススメです. ラズベリーパイを他のパソコンからリモート(遠隔)操作してみたい人 ラズベリ…
こちらの記事もオススメです
AIに関連した記事だと,こちらの記事もすごくおすすめだよ!!!
この記事はこんな人にオススメです. ラズベリーパイで何かしたい人 機械学習に興味ある人 機械的に数字認識をして…
失礼致します、アマゾンのセラーの久林と申します。BLOGにてお客様のレビューをご拝見させて頂きました、つきましてはお客様に弊社のラズベリーパイ4ケースレビューを投稿して頂きたく存じます。レビュー用機材に関しましては無償にて提供させて頂きます。御返事お待ちしております。