2018年1月8日月曜日

ESP32でAlexa日本語対応



Facebookで、ESP32からAlexaと日本語でやり取りできた、という記事を見かけたので試してみました。

■資材■



なお、ESP-IDFが必要です。


■作業■

https://github.com/MrBuddyCasino/ESP32_Alexaに書いてある通りですが:
  1. Githubに書いてあるとおり配線
  2. その他、GNDと3.3vも配線。しっかり確認。
  3. プログラムをGithubからcloneします。適当なディレクトリに移動し
    git clone https://github.com/MrBuddyCasino/ESP32_Alexa.git
  4. cd ESP32_Alexa
  5. github上に不足しているコンポーネントを取得します
    git submodule init && git submodule update
  6. ESP32のMACアドレスを取得。例えばこの辺のサンプルを使います。
    https://ht-deko.com/arduino/esp-wroom-32.html
  7. Alexa Authenticationを取得。Githubに書いてある通りです。
  8. make menuconfig -> Alexa ConigでSSID, Password, API Endpoint(US), Language(en-US), Anthentication Token(上記7で取得したtokenをそのままコピペします)を設定。Serial flasher conigなども設定。
  9. ESP32をUSBと接続
  10. make flash

wifiにつながって正常に起動するとスピーカーから「けけけけけ」みたいな声が聞こえます。「alexa, good morming」と呼びかけてみましょう。何かごちゃごちゃ言われます。

すっげー!

以上確認できたら日本語化します。この辺の記事を見ると、サーバ側だけでなくローカルにもLocale設定があるようで、
とりあえずGithub上で"en-US"でテキスト検索してみると、main/Kconfig.projbuildで設定している様子。なので、ja-JPが選択できるようにKconfigを変更してから、menuconigでlocaleを変更します。
  1. 設定ファイルをいじります。main/Kconfig.projbuildを開きます。
    • 以下の2箇所にja-JP / ALEXA_LOCALE_JA_JPを追加します。
      • choice prompt "Language"
      • config ALEXA_LOCALE
    • 以下の2箇所にALEXA_ENDPOINT_FE / "https://avs-alexa-fe.amazon.com"を追加します。
      • prompt "API Endpoint"
      • config ALEXA_ENDPOINT
  2. make menuconfig -> Alexa ConigでLanguage(ja-JP)を選びます。
  3. https://alexa.amazon.comで住所などを設定
  4. make flash

「けけけけけけ」が聞こえたら、「アレクサ、おはよう」と呼びかけてみてください。1月8日は、ホーキング博士についての紹介があります。



…って書くと簡単なんですが、alexa.amazon.comに住所設定してもうまくいかないし、ja-JPを選択するととたんに返事しなくなったり…大変でした。alexa.amazon.co.jpに設定しないとダメとか両方に設定があると動作がおかしくなる、等の情報もあって右往左往しまくりでした…。

■追記■

END_POINTはUSのままでも動作しますが、facebookに紹介されていたので加筆しました。情報を提供してくださってありがとうございます。お陰さまで連休中の作業が無駄になりませんでした。

あと、しばらく放置していると突然「けけけけけけ」と哭きます。大変不気味です。ログをみたらExceptionを吐いていました。Exception->再起動->起動して「けけけ」ってことですね。あんまり気持ちのいい声ではないのでビックリしました。

0 件のコメント:

コメントを投稿