ラズパイでAmazon Echo 自作
三寒四温。最近は不安定な天気が続いて服装も悩みがち。。。長女ちゃんに毎朝「今日寒い?」などと聞かれるのでAmazon Echoほしいなぁなんて思っています。娘がAIスピーカに天候や知りたいことを聞くってなんか未来でかっこいいよね。
買っても持て余すかもと二の足踏み中。。。。
じゃあラズパイで自作してしばらく使ってみようということに!
インターフェース4月号にラズパイAlexa化について記載あったのですが、SDKが更新されていたようでうまくいかなかったので備忘録として手順記載します。
目次
Amazon Alexaとは
Amazonが提供する音声認識や言語処理を実行するAlexa Voice Service (AVS)と音声認識ベースのアプリ (Skill)を開発するフレームワークAlexa Skills Kit (ASK) で構成されるサービスです。
ここではラズパイでAVSを使用できるようにしてAIスピーカを自作します。
AVS Device SDKというライブラリをインストールしました。日本語にも対応しています。
ラズパイへのAVS Device SDKの導入方法は以下のとおり、ちょくちょく更新されてるようなので要注意。
Raspberry Pi 設定
公開されているSDKがラズパイ3(推奨) or ラズパイ2のOS Raspbian Stretch with Desktopに対応していました。
ここではラズパイ3を使用。
いつのまにがRaspbianバージョンアップしてたのね。。。若干面倒だけど一からOS入れ直しました。手法は以前バージョンのRaspbian Jessie with Pixelと同様で問題ありませんでした。以下、ラズパイにディスプレイやキーボードなど一切繋げないでセットアップする方法です。良ければご参照ください。
Raspbian Stretchになって大きな変化は今の所感じませんが、モニタの解像度設定がGUIで変更可能になったので楽になりました。
スピーカをラズパイの3.5mmジャックに接続して、マイクはウェブカメラに内蔵してるものを使用しました。家にあるものを利用。
|
Alexa Voice Serviceへの登録
SDK利用のために開発者アカウント登録と製品情報登録、セキュリティープロファイル設定を実施します。
開発者アカウントにログイン
Amazonアプリ開発者ポータルにアクセスしてログインします。
developer.amazon.com
国内のAmazonアカウントで普通にログインできます。
製品情報登録
- 開発者ポータル ALEXA VOICE SERVICE タブをクリック
- “製品を作成する”をクリック
- 製品情報入力
製品名、製品ID:任意で何かしら名前入力
製品はアプリやデバイスを使用しますか?:端末をチェック
ご使用の端末は、コンパニオンアプリを使用しますか ?:いいえをチェック
商品カテゴリー:その他 (指定してください)を選択、”Rapsberry Pi Project on GitHub”記載(任意)
製品概要 :”Rapsberry Pi Project on GitHub”記載(任意)
エンドユーザーは、商品とどのようにやり取りするのでしょうか ?:タッチで開始される、ハンズフリーをチェック
この製品を商品として配信する予定ですか ?:いいえをチェック -
“次へ”をクリック
セキュリティープロファイルの作成
セキュリティプロファイル入力ページが表示
- セキュリティプロファイル名:Alexa Voice Service Sample App Security Profile(任意)入力
- セキュリティプロファイル記述:Alexa Voice Service Sample App Security Profile Description(任意)入力
- “次へ”をクリック
- “他のデバイスやプラットフォーム”タブを選択
- クライアントID名に製品IDを入力
- “一般ID”をクリック
- クライアントIDが生成される。あとで使用するのでこのIDをコピー
- “これらの書面に合意します”をチェック
- “完了する”をクリック
セキュリティープロファイル有効化
- https://developer.amazon.com/lwa/sp/overview.html にアクセス
- “Select a Security Profile”で作成したプロファイル名を選択
- “Confirm”をクリック
- プライバシーポリシーのURL指定画面表示されるのでフェイクURL入力
http://example.comとか - “Save”クリック
以上で登録完了です。
Raspberry PiにAVS SDKインストール
いよいよラズパイにSDKをインストールしてAmazon Echo化します!
- ラズパイのターミナルで以下入力してインストール用スクリプトをダウンロード
1 |
wget https://raw.githubusercontent.com/alexa/avs-device-sdk/master/tools/Install/setup.sh && wget https://raw.githubusercontent.com/alexa/avs-device-sdk/master/tools/Install/config.txt && wget https://raw.githubusercontent.com/alexa/avs-device-sdk/master/tools/Install/pi.sh |
- ダウンロード先にconfig.txtが作成されているので、製品IDと先ほど生成したクライアントIDを追記する。
- 以下でインストールスクリプト実行
1 |
sudo bash setup.sh config.txt |
“AGREE”と入力してインストール開始
- しばらく待つと同意確認が必要となりEnterで同意書確認
- “Yes”入力で同意
- さらに待つとインストール終了
AVSアクセス権認証
- 以下でアプリ実行
1sudo bash startsample.sh初回は認証作業が必要となります。
- 以下のメッセージが表示される
# To authorize, browse to: 'https://amazon.com/us/code' and enter the code: {XXXX} #指示通り https://amazon.com/us/code にアクセスしてコード{XXXX}を入力して”Continue”をクリック
- “Allow”をクリックして少し待つとターミナルで以下が表示され認証終了
# Alexa is currently idle! #
アプリ実行&日本語化
認証後は
1 |
sudo bash startsample.sh |
でアプリが起動します。
日本語に対応させるにはターミナルで
c -> 1 -> 6
と入力。
これでウェイクワード「アレクサ」のあとに質問するといろいろ答えてくれます。
タイムゾーンと所在地の設定
以下でデバイスの所在とタイムゾーンをしてすることができます。
- 設定でデバイスを選択
- デバイスの所在地を編集
- タイムゾーン選択:アジア、日本標準時(東京)
以上で「天気は?」や「今何時?」で正確な情報が得られます。
動作
できたー!
ウェブカメラのマイクのためかたまに無視されるけど。。。
しばらくこれで使ってみていい感じだったらEcho買ってみようかと 🙄 。
追記:結局 Amazon Echo買いました
スキル作ってみたり、テレビや電球をコントロールしたりして堪能しています。音声インターフェースってこんなに便利なんだと喜んでいます。