Jetson TX1 (JetPack 3.2) に Amazon Alexa をインストールしてSmapleAppで遊ぶ

ラズパイほどインパクトないんで、なぜTX1に?という疑問は置いといて、Amazon Alexa (Alexa Voice Service)をインストールした。いろいろハマったし、いまだ解決してない問題もあるのが、メモしておく。なお、AVSはUbuntu 16.04 LTSが条件なので、必然的にJetPackは3.2となる。
  • 私は以下を参照した。
    CQ出版インターフェス 2018/4月号 (AIスピーカー特集、ラズパイを使用)
    Alexa AVS-Device-SDK Wiki
    Ubuntu Linux Quick Start Guide (上記、Wiki内)
  • Audio 入出力
    TX1は、HDMIでAudioを出力できる。私は最初、手持ちの古いUSB DACをつないだが問題なく使えた。入力は安そうなUSBマイク(エレコム HS-MC05USBK)を買って接続、問題なく使えた。いずれも、Soundで、入出力先を指定すればすぐ使えた。インターフェースからの引用だが、以下のコマンドでテストしておく。
#出力テスト $ speaker-test -t wav #入力テスト マイクで5秒録音、それを聞いてみる。 $ arecord --format=S16_LE --duration=5 --rate=16000 --file-type=raw out.r $ aplay --format=S16_LE --rate=16000 out.raw
  • Amazon開発者登録は、以下を参照したがハマった。
    失敗しないAlexa開発者アカウントの作り方
    Amazon.co.jpとAmazon.comのどちらにも登録済みのメールアドレスを使うと問題が起きるらしい。なので、大昔から持っているAmazon.co.jpしか登録してないアドレスを使ったのだが、Amazon 開発者ポータルにログインできない。そんなアドレスは見つからないといわれ、思い余ってアカウントの新規作成をやったら(これはやってはいけない)そのアドレスは既に登録済みだといわれ.... 結局、co.jpで別メールアドレスを使って新しいアカウントを作成してみたら、あっさりと問題解決。
  • 製品情報の登録をインターフェースを見ながらやったら、Amazonのページが変わっている。特にセキュリティプロファイルを有効化するには、
    https://developer.amazon.com/lwa/sp/overview.html
    にアクセスする必要があった。上記Wiki内の以下のページに書いてあった。こちらを参考にやれば簡単かも。
    Create Security Profile
  • 上記のQuick Start Guideでは、curlをソースからコンパイル&インストするのだが、ここでつまずく。出来上がったcurlを”curl -I https://nghttp2.org/”でテストするが、失敗。結局、以下のページをもとに問題解決。
    curlをソースコードからコンパイルしたときの備忘録
    すでにインストールされていた、libcurl.soとコンフリクトを起こし、古いlibcurl.coをリンクしてしまうらしい。私は古い/usr/lib/aarch64-linux-gnu にある、libcurl.so.4.4.0をバックアップコピーを残して、削除。で、新しい/usr/local/lib/libcurl.so.4.4.0へのシンボリックリンクを作る。これで問題解決。
  • …と、思いきや、今度はcmakeで変なメッセージが出始める
$ cmake cmake: /usr/lib/aarch64-linux-gnu/libcurl.so.4: no version information available (required by cmake)
     どうやら、cmakeは、cmakeがコンパイルされたときに使ったlibcurl.so より、現在の
  libcurl.soのバージョンが古いと言って、怒っているらしい。libcurl.soのバージョンから
  言って、それはおかしいのだが…。cmakeをソースからコンパイルしなおせば治ると
  思うが、まあ、とりあえず無視することにした。(大丈夫か??)
  • Quick Start Guideの11、authorization service を走らせるところの説明がよくわからず。結局、まず、
$ cd ~/sdk-folder/sdk-build && python AuthServer/AuthServer.py
     を実行し、次にブラウザを開いて、http://localhost:3000に行けばよい。
  • ユニットテストはすべてパスしたが、インテグレーションテストはボロボロと失敗するし、どっかでスリープしたまま終わらない。これもとりあえず無視。(どうしたものか…)
  • とりあえず、AVSのSampleAppは動く。が、Audioの初期化に問題があるらしく、「SampleAppを走らせるとAudio出力ができなくなる。」とか「喋りだしの頭の1秒ぐらいが音が出ない」等々の不具合がある。いろいろやった挙句、「システム立ち上げ後、まず、speaker-testで音を出してから、SampleAppを起動すると問題がなくなる」という技を編み出す。
  • SampleAppは面白い。「歌って」「好きな曲は何?」「おなかがすいた」とか話しかけると笑える。

コメント

このブログの人気の投稿

Jetson TX1 + JetPack 3.2 + OpenCV 3.4.0 コンパイル with CUDA and OpenGL

NVIDIA Optimusを搭載したノートPCでUbuntu 16.04 +「最新」CUDAをインストール