この記事に書いてること

  • GoogleHomeのお話
  • 作った動機とか
  • 構成

Google Home

Google Home

https://store.google.com/jp/magazine/compare_nest_speakers_displays

おかしい、Nestとか呼ばれるようになってる…
というわけで発売から3年程度が経って名前が変わってますがGoogleアシスタント付きスピーカーのこと。

「OK,Google」でおなじみのあれだね。
Androidユーザー的にはスマホから使えるのでより身近かもしれない。

けどぶっちゃけ使ってる人いるんか?とも思うところ。
我が家にはHomeとminiの2台があるんだが、使われているかというと置物になっている。

作成動機

じゃあいらなくない?

そんなこともない。
確かにGoogleに何かを頼むことはほぼない。
しかし、スピーカーだけあって音楽を流すことができる。
しかもスマホからキャストできる。

…Chromecastでよくない?
そんなこと言わないで。
声でPlayMusicから音楽流してって言えるから。

けどPlayMusicってもう終わるんじゃ…
いやほんとなんで終わるの。
終わる前に実装例紹介したい。

機能面としてはNest(?)買った方がいい面が多いので買いましょう。
けど自作スマートスピーカーって言い知れぬロマンがあるよね。
ほぼそれだけの動機で、あと足りない機能追加しつついらん機能付与していくのが楽しくて作っていきました。

約3年前、スマートスピーカー元年といわれたあの頃の気持ちを思い出して書いていきましょう。
まあその頃にラズパイベースで作ったもののUbuntu移植版なんで忘れてる部分も多そうだけど…

今回の環境も、

Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-42-generic x86_64)

です。

構成

https://github.com/googlesamples/assistant-sdk-python/tree/master/google-assistant-sdk/googlesamples/assistant/grpc

ここにあるpushtotalk.pyをベースに作っていきます。
基本pythonとbashで構成されております。

あとはplaymusic流すための非公式APIとか

https://github.com/simon-weber/gmusicapi
https://github.com/sigma67/ytmusicapi

独自の返答を音声化してもらう為の合成音声とか、

http://open-jtalk.sp.nitech.ac.jp/

認識した音声をうまい具合に捌くためのmecabとか、

https://taku910.github.io/mecab/

wake wordのためのライブラリとか、

https://github.com/Picovoice/wake-word-benchmark

後はメディア面でVLCとかRygelが絡んだり。

VLCはおなじみのメディアプレイヤー。
Linuxでも安定して動く偉い子。
pythonとかdbusとかからも操作できるとっても偉い子。

RygelはDLNA周りなんでもできる子。
DMS(サーバー)、DMC(コントローラー)、DMR(レンダラー)と使えるけど、今回はキャスト先として使いたいのでレンダラーのみで使う。
これは入れて設定して終わりなので、プログラム的な部分はあんまりなし。

その他にも機能ごとにいろいろ組み合わさってGoogleHomeっぽいものが出来上がります。

現在のリポジトリはこちら。
https://github.com/Tim0401/assistant-nuc

動かし方をよく忘れるのでこれも来年の私がセットアップできる程度には詳しく書いていきたい。

ちなみに元々ラズパイで使ってたのは、

https://aiyprojects.withgoogle.com/voice/
https://github.com/google/aiyprojects-raspbian

こっちのGoogle AIY Voice Kitってやつ。
最初はそのまま流用したかったんだけどラズパイ依存のライブラリ(Arm依存かも?)があったんで断念。
こっちでも同じようなことは出来るのでラズパイある人は試すといいかも。

次回

とりあえずpushtotalk.pyを動かして、明日の天気は?と聞いたらそれっぽい返答が帰ってくるNUCを作っていきましょう。

マイクは必須。
スピーカーも必須。
テストならヘッドセットでもいいと思うけど、実際使うなら欲しい。

マイクはこれ使ってる。
https://www.amazon.co.jp/gp/product/B007WSKGIE/
紹介したかったのにもう売ってないっぽいね。
こういう系統の無指向性マイクでいいかと。
1000円以下ですが十分仕事します。

サウンドカードはこれ。
https://www.amazon.co.jp/gp/product/B06Y3ZL2V4/
ラズパイとか小型PCだとマイク入力が無いことも多いので使う。
刺すだけで認識してくれる優れもの。
音質も悪いとは思わないのでいい品物です。

スピーカーはこれだけどなんでもいいです。
https://www.amazon.co.jp/gp/product/B077XF3XJK/
丸っこいのが気に入ったんだけど、微妙にスペース取るんで平べったいのにすればよかったかな。

スピーカーが足りんかったのでこれで2入力を1スピーカーにまとめてる。
https://www.amazon.co.jp/gp/product/B0719LFLKG/
本来スプリッターなんで色々自己責任だけど、ミキサーがあんまりいいのないんで必要十分な働きはしてくれる。

以上、3年ほど前の買い物集でした。

次回:Intel NUCでGoogleHomeもどきを動かす(2) PushToTalk