ハンドメイド Alexa Festival! Serverless、IoT + Voice への誘い。ラズパイ + Alexa Voice Servce(Python)

  • 8
    いいね
  • 0
    コメント

はじめに

この資料は、Serverless Advent Callender 2016 の 19日目の投稿です。

CheapなEchoでAlexa祭りをします。

IMAGE ALT TEXT HERE

用語

Alexa
Amazon が提供する音声認識プラットフォームです。

AVS(Alexa Voice Service)
Alexa の音声認識エンジンです。Amazon Echoに入っています。

Alexa の構成要素はふたつ。

  • AVS(Alexa Voice Service)
    Alexaの音声認識エンジンです。デバイス上で録音した音声をHTTPベースでやりとりします。

  • ASK(Alexa Skills Kit)
    独自の会話パターンを開発できるキットです。AWS Lambda が推奨されており、Serverless に開発ができます。
    昨日の記事はASKの記事でしたので参考に。
    Advent Callender 18日目

背景

この記事を書く背景には、未だに Amazon Echo の技適が通っておらず、日本では購入できない、という悲しい現実があります。Echosim.io のようにWebベースのテストツールなんてのもありますが、Echoが来ていないなら自作して、Serveless な スキル開発を楽しもうじゃないですか?

概要

  • デバイスはラズパイ3を使います。
  • AVSのインプリメントに使う言語はPython(ライズパイにプリイン)です。
  • Alexa のWake word("Alexa")に反応させます。

材料(ハードウェア)

材料(ライブラリ)

下準備

Amazon の公式リポジトリにRaspberryPI用のサンプルがあります。Let's get startedのSTEP3まで完了させます。

デバイスとAVSを接続するプロファイル(ProductID、ClientID、ClientSecret)が得られます。

ハードウェアのセットアップ

Raspberry PI 3 をセットアップします。
Installing operating system image

ソフトウェアのセットアップ

hyper

$ pip install hyper

snowboy

$ sudo apt-get install swig3.0 python-pyaudio python3-pyaudio sox pip install pyaudio
$ sudo apt-get install libatlas-base-dev
$ cd/swig
$ make

上のように自分でインストールしてもよいですが、プリコンパイルしたモジュールがあるので、そちらをラズパイにコピーするのが楽です。
Precompiled module

AVSの導入

セットアップが完了すると、Developper.amazon.com で取得したセキュリティプロファイルの記載されたcreds.pyが生成されます。

スクリーンショット 2016-12-18 11.07.53.png

起動

$ python wakeword_detector.py

デーモンとして登録すれば、起動時にwakeword待ち状態にすることも可能です。

デモ

https://www.youtube.com/watch?v=Ghn1NpbUPJQ

さいごに

発音の悪さと中のマイクの位置で認識率悪すぎるのは、本当にすみませんm(_ _)m

この投稿は Serverless Advent Calendar 201619日目の記事です。