へもろぐ

へもへも備忘録

avs-device-sdkをRaspberryPiで動かすときUSBのスピーカーを使えるようにする設定

3月はじめのRaspberry Jam Big Birthday Weekend 2018 in TOKYOでAlexa Voice SDKのインストールハンズオンをしたとき、質問でいちばん多かったのは…

『USB接続のスピーカー、使えませんか?』でした。

ちょうど向かいがラズパイオーディオの会とDigiFiの物販ブースで、DigiFi付録のUSB接続できる性能のよいスピーカーを売ってたからでしょうか?

digifi.theshop.jpそのときは、まだ動作確認取れてなかったので答えられなかったのですが、確認できたので、USBスピーカーを接続するように設定する方法を書いておきます。セットアップするときに指定する方法を書きました。すでに構築済みの方は、この記事の最後だけ読んでいただければ十分です。

 

現在最新版の2018-03-13-raspbian-stretch.imgだとAlexa Voice SDKは正しく音声が再生できません。ここに書いてある方法も、有効になりません。

試したい場合には、2017-11-29-raspbian-stretch.imgを利用してください。

https://www.raspbian.org/ミラーサイトが掲載されています。ミラーサイトには旧Raspbianも置いてありますので、そこからダウンロードしてください。

 

今回は、以下のヘッドセットで、マイク&スピーカーとしてみました。

他のUSB機器も同じ設定方法でOKだと思います。

 

最初に、使いたいUSBスピーカーをraspberryPiにつないで、機器のカード番号とデバイス番号を調べます。コマンドはaplay -lです。

f:id:sh1k1ya:20180324083545p:plain

[USB Audio]と書いてあるデバイスが出るはずです。これが今回利用したいスピーカーとなります。ここの先頭に「card 1」真ん中あたりに「device 0」あるので、それを次の設定に使います。(それぞれの環境で出た値を使ってください。)

 

次は設定です。

avs-device-sdkをRaspberryPiにインストールする方法は、概ね公開されている通りですが、1か所だけ、用意されているpy.shを書き換えます。

https://github.com/alexa/avs-device-sdk/wiki/Raspberry-Pi-Quick-Start-Guide-with-Script

「1. Download the install script and configuration file.........」でダウンロードされてくるファイルに「py.sh」があるはずです。

f:id:sh1k1ya:20180324084310p:plain

(2018.3.23現在は、そうなってます。3月始めの頃は、setup.shだけでした。そのときはsetup.shに設定がありました。)

py.shの中にあるpcm.!defaultのplayback.pcmにあるslave.pcmの値を、調べたカード番号とデバイス番号に書き換えます。(掲載の画像は、変更前です。)

f:id:sh1k1ya:20180324085157p:plain

私の場合には、カード番号1でデバイス番号が0だったので「"hw:1,0"」に変更します。

あとはQuick Start Guideの通りにインストールを進めれば大丈夫です。

 

すでに構築済みのavsがある方へ。

最初、単純にローカルの.asoundrcファイルを書き換えればOKでしょ!って思ったのですが、ダメでした。なので、py.shを書き変えてavsが使う設定ファイルに確実に反映されるように…と、上に書いた方法を使ったのですが、よく考えれば、setup.shが書き込んでいるのは、/rootの.asoundrcなので、そっちを直接書き換えればOKだったのでした…w

なので、もうavs構築しちゃってるなら、/rootの.asoundrcにあるpcm.!defaultのplayback.pcmを書き換えてね!(オチはそれか!)

AVSインストールハンズオン、ご参加ありがとうございました。Raspberry Jam Big Birthday Weekend 2018 in TOKYO

3月3日・4日のRaspberry Jam Big Birthday Weekend 2018 in TOKYO、たくさんのご参加ありがとうございました。

www.raspi.jp

 

今回も開催メンバーとしてお手伝いしましたが、多くのみなさんにご参加いただけて大変ありがたく思っております。また、ご協力いただいた「PCN」「Coder Dojo Japan」の皆さま、ご出展企業の皆さま、そして関係したスタッフ全員にも大きな感謝を送ります。

 

今回はハンズオンを担当しました。

ラズパイでAlexaがしゃべりだす? - AVSハンズオン - connpass

【3/3追加開催】ラズパイでAlexaがしゃべりだす? - AVSハンズオン - connpass

オトナ向けのハンズオンだったのですが、なんと!少年も参加して!!彼もちゃんとインストールできました!!!

 

裏話です。


JRPUGとしてのハンズオン開催は、過去もほとんど例がないので、準備は綿密に時間をかけ…と言いたいところですが、このハンズオンをやることを決定したのは2/22なのですよ!そっから資料作って、会場にはネットワークが敷設されてないのでどうするか?とか、そういうの全部がクリアになって募集開始が2/27。追加募集の決断が3/1と…怒涛のスケジュールでした。
その間、会場設備との兼ね合いでの内容調整や、出来上がった内容の検証など、多くの方にご協力いただいて、ようやく実施できたときには、魂半分抜けてる状態でした。そんな中で3回のハンズオンを回すことができたのは、サポートで入ってくれたメンバーのおかげです。(メンバーに恵まれたJRPUGでヨカッタ♡)

 

今回のハンズオン、表のテーマは「Amazonさんの『Alexa Voice Service』をインストールする」だったのですが、実は…裏テーマが2つありました。

 

1つは「RaspberryPiをPCに有線LANで直結する方法を普及すること」
HDMIモニタが調達しにくいときに、よく使う方法なのですが、意外に知らない人が多いらしく。ここ半年ほどのイベントでUGから積極的に情報を出し始めたものです。

 

2つめは「ハンズオンの企画運営のほとんどを女性メンバーが実施すること」

こちらは、わりと「無理を承知」で有無を言わせず実行しました。


ダイバーシティの観点で女性の参加を促すイベントは多いのですが、女性メンバー100%企画運営はほとんどありません。私自身は、女性メンバー100%企画運営にする必要も無いと思っています、男女協力で問題無いと思います。ただ、女性のみのグループがなにかするときに「部活の顧問の先生」のように男性があれこれするのは、あまり好ましくないと感じます。そのあたり、微妙なバランスなのですが…試してみたいと常々考えていて。それを今回やらせていただきました。
当日までのコンテンツ作成は、最終検証で部外者のチェックが必要なところを除き、女性メンバーで行いました。

また、ハンズオン内のチューターも、女子2名男子1名(男子1名は、急遽、当日協力してくれました!)。
100%女性で…といかなかったところはあります。当日ヘルプに男性1名を投入こと、コンテンツ前検証は私の友人であるCoderDojo Hanareの新妻氏にお願いしたこと、当日の会場ネットワーク敷設はJAM自体の運営担当部門にお任せしたこと、このあたりです。

ですから100%女性で…というわけではなかったのですが、私が思っている「主要なところを決める権限を、女性メンバーに一任していただきたい」という思いは通せたと思います。

裏話は以上。

 

大きなイベントが終わって、ちょっと気持ちが緩んでいるところですが、今後の予定としては…

 

会場の調達ができれば、AVSのインストールイベントは、継続して開催したいと思っています。ネットワークの状況によっては10人程度での実施も可能だと思いますので、どうか会場提供のご協力をお願いいたします。東京以外でも開催したいです!よろしくお願いします。ちょっとヤンチャな機材を使ったインストールハンズオンも(心の中では)計画してます。これは実現できないかも…

 

他に、まだ計画段階ですが…今回のイベントで解説できなかった中のほうの話も、もっとしたいと思っています。これはいつ頃になるかな…。こちらも会場の調達次第になると思います。

 

今回開催したハンズオンの作業内容は、参加者のかたがQiitaにまとめて下さったので、そちらを御覧ください。私のほうからのハンズオン総括は、あとで別記事にします。

qiita.com 

ハンズオン参加者さんで、今回のハンズオン資料を元に試した質問については、ユーザーグループのメーリングリストGoogleグループにあるので、そこにALexaハンズオンの質問だと判りやすいタイトルで投げてもらえたら、私が答えます。

Google グループ

 

あと、噂では、近々にPyLadysの皆さんもAlexaをインストールするパートもあるハンズオンをするようです…connpassに情報があったので、リンクしておきます。

Alexa Dayに行って、kokexaの話を聞いてきました。

Alexa Voice ServiceをRaspberryPiにインストールしただけに飽き足らず、AlexaDayにも参加してきました。

Alexa Day 2018 - 2018.2.11(sun)神戸市・スペースアルファ三宮で開催!『AIアシスタントAlexaと、Alexaを支える最新技術を学ぶ1日』 | JAWS - UG

https://alexaday2018.jaws-ug.jp/wp-content/themes/alexaday2018/assets/images/badges/badges-personal-attending-250%C3%97250.jpg

 

お目当ては、kokexaですね。


kokeshi + Alexa = kokexa *Debut version

さかもとともこさんが作ったもの。

ラズパイで作ったのをこけしにくっつけたらしいw面白いw

自分の作りたいものを作る!それがDIY

さかもとさんとも直接お話できてよかった♡こけし愛に溢れてた♡

ラズパイいっぱい持ってるので、集まってkokexaやりたいです!機材貸します!とお伝えできて満足です。

次は、Google Assistantも試して欲しいな(Google AssistantだとラズパイZEROにも入れられるし)って言えばよかったかも…

 

他にも、AVSなものを中心にセッション聞いてきました。

興味あったことはほとんどTweetしてしまったので、ここに何も書くことがない…

 

VUIについては、思った通り、ユーザーシナリオが大事ということがよく分かりました。このへん、もっと専門的な勉強が必要だと思っているので、3月にワークショップ行ってみようかなと思ったりしました。

2018.uxdaystokyo.com

とりあえず以上。

Alexa Voice Service (AVS) のAVS Device SDKをRaspberry Piにインストールしてみた

更新:2018/3/15 ---

3/14にRaspberryPi 3 B+が新製品として発売されました。それに伴い、Raspbianもバージョンアップ(2018-03-13-raspbian-stretch.img)されました。

このバージョンアップされたRaspbianでは、AVS Device SDKを利用した場合に、不具合が発生するようです。

私が試した範囲で、あからさまにおかしなところは「再生音声が遅い」という現象のみでした。

---

 

alexa-avs-sample-appはメンテナンスモードに入ったので、AVS Device SDKをインストールしてみた話です。

 

Amazon Echoの中身であるAlexa Voice ServiceをRaspberryPiにインストールするネタは以前よりたくさんの記事がありますが、日本語の記事では「alexa-avs-sample-app」のほうを使ったものが多いようです。

事情として、

  • 日本語で公開されているAlexa Voice Serviceの一次情報からリンクされているのがalexa-avs-sample-appだから
  • alexa-avs-sample-app以外の公開情報は、SDKにバグがあってインストール完了できる人がすくなかったから

の2点だと思います。

 

ですが、2018/1/25の段階で、alexa-avs-sample-appはメンテナンスモードに入ってしまって、AVS Device SDKを使ってね♡と、展開が変わりました。ちゃんとコンパイル通るようになったようです。

(↓これはメンテナンスモード)

github.com

で、さっそくAVS Device SDKのほうを試してみました

 

これからインストールする人は、これを使ってね↓

GitHub - alexa/avs-device-sdk: An SDK for commercial device makers to integrate Alexa directly into connected products.

 

書いてある手順通りで問題なく動きます。(一部、個人的な事情でハマりましたがw

日本語化も可能でした。

 

ちなみに。利用した機材へのマイクとスピーカーは、↓これです。

ヤザワ アンプリファイドプラグインスピーカー VRS203W

ヤザワ アンプリファイドプラグインスピーカー VRS203W

 

 

私のハマったところは、

  1. VNCクライアントを利用していたせいで、3.5mmピンのスピーカーから音が出なかった
  2. 最初は、スピーカーにアンプ機能がないものを使ってしまって、音が小さかった
  3. 日本語にする方法に気付くのに時間がかかった

でした。

 

まず、1つめの「VNCクライアントを利用していたせいでスピーカーから音がでなかった」問題は、私のところでは以下のような構成だったことが原因でした。

  • WindowsのPCにVNCクライアントを入れて、RaspberryPiをつなぐ(HDMIモニターやキーボード&マウスをラズパイのために用意するのが面倒)
  • その都合上、RaspberryPiのconfig.txtの中の「#hdmi_force_hotplug=1」をコメント外してONな状態にしていた(ここのコメントを外すと、その下にある「#hdmi_group=1と#hdmi_mode=16も変更できるので、VNCクライアントの画面サイズを任意に変更できる)

でした。

この件については、issue479が解決のヒントになりました。

No audio feedback (sound) from Alexa Sample App · Issue #479 · alexa/avs-device-sdk · GitHub

すべての設定が終わって、もう画面サイズはどうでもいいや!というときに、「hdmi_force_hotplug=1」を再びコメントにしてOFFにすることで、スピーカーから音が出るようになりました。

 

2つめは、単純なことで、最初に使ったスピーカーがパッシブ型だったということです。ラズパイから出る音が小さいので…。アクティブ型のものを選んでください。(上にリンク貼ったものは、音がザラザラしてますが、いちおう聞こえる大きさで鳴ります。)

 

3つめの日本語化ですが、これは、今のAVS Device SDKはDEBUG9でログがガンガンでているので、日本語化するためのオプション設定説明画面が流れちゃうのが問題(っていうか、自分が見落としてるのが悪いw)でした。

やり方としては、startsample.sh実行後に、c(enter)してから1(enter)して6(enter)すれば、日本語になります。

この件についてはissue359が解決策の参考になります。

Will the sdk support the en-CA locale at some point? · Issue #359 · alexa/avs-device-sdk · GitHub

 

たぶん、普通はもっとすんなり完了するんだと思いますが…

簡単なので、みなさんも試すといいと思います(トラブルが無ければ、作業時間は1時間未満)。

 

追加

もう1つハマったところありました。refreshTokenの発行です。

4番めの手順に「startauth.sh」の実行があると思うんですが、ここでURLが表示されるんですよ。確かhttp://172.0.0.1:3000/だったと思います。このURLをラズパイのブラウザで開いて、Amazon DeveloperのID/passwordを入力しないと、refreshTokenが発行されないので、あとで困ります。ここを忘れないで欲しいです。(これがあるから、PCからラズパイにつなぐときにSSHではなくてVNCを使ったのでした。)

 

AIY Kitの組み立てで、ちょっと困って工夫したところ

5月に出ていたAIY Kit、MagPIを購読してないので、ずっと単品販売を待っていて、日本発売よりも少し早くpimoroniから購入できたので、組み立ててみました。

Google AIY Voice Kitshop.pimoroni.com(2017/11/18時点で在庫あるみたいだから、急いでるヒトはpimoroniから購入お勧め)

 

このKitは、RPiにVoice HATをガッツリ取り付けるようになっているので、あとからHATが外れなくなることもあるかと想定(前にskywriterのHATが外れなくて、無理やり引っ張って壊したことがトラウマ。)して、RPi3は新規購入でAIY Kit専用にしました。

 

Voice HATの取り付けが嫌なら、AIY Kitを購入しないで、USBマイク&スピーカーでAIY Kitと同じ環境の構築もできるみたいです。(後日チャレンジ予定。)

自作はこちらを参考に。

 

Kitに同梱されているテキストブックにも組み立て方法が掲載されていますが、Webに掲載されているもののほうが読みやすかったです。

aiyprojects.withgoogle.com英語苦手なら、Google翻訳すれば大丈夫です。

 

2か所、ちょっと困ったところがありました。

 

1つめは、スペーサーを刺すところ。

組み立て手順の②Assemble the hardwareで「Insert the standoffs into the two yellow holes」と書いてあるんだけど、RPiのほうの穴にプラスティックのスペーサー(スタンドオフ)を刺すのがすっごく固くて。特にEthernetポート横の黄色い穴に刺すのが難しくて、ポートの角で指を切ってしまった!危険!!矢印のところ!!

f:id:sh1k1ya:20171118102737p:plain

Accessory board(HATのこと)のほうに刺してから、それをRPiにのっけて刺す…のほうが安全だと思う。(2台目の組み立ては、先にHATに刺した。こっちのが楽だった。)

 

2つめは、マイクボードを箱に貼るところ。

⑧Put it all togetherの8番目に「attaching the microphone board to the cardboard.」って書いてあるけれど、microphone boardの裏面(箱に接するほう)にハンダ付けしたピンが少し出てるので、ギューギュー押し付けないと両面テープで貼るのが難しい…。

f:id:sh1k1ya:20171118103556p:plain

ちゃんと貼り付けておかないと、あとでマイクがズレるので、どうしよう…と。

それで、コマンドタブを切って使いました。コマンドタブなら厚みがあるから。ひっつき虫でもいいかも。ひっつき虫のほうが貼り直しも簡単かな…。

3M 両面テープ コマンド タブ(はがせる両面粘着) お買い得 Mサイズ 60枚 CM3PM-60コクヨ 粘着剤 ひっつき虫 タ-380N

 

以上で、組み立ての工夫点おわり。

器用なヒトは、こんなところで苦労しないんだろうな…。

DojoCon Japan 2017でRaspberry Piのハンズオンをしました

Coder DojoRaspberry Pi財団の提携が2017/05末にあり、そのご縁で、Coder Dojo Japanが開催する本年のDojo Con Japanで、Japanese Raspberry Pi User Groupのメンバーとして、ハンズオンを実施してきました。

Raspberry Pi and CoderDojo join forces - Raspberry Pi

raspberry Pi - CoderDojo

 

Dojo Conは、Coder Dojoのメンバーが集まって交流するイベントで、初参加だったのですが大変盛況でした!

dojocon2017.coderdojo.jp

午後から、Japanese Raspberry Pi User Groupのトラックを用意していただいて、関係者でそれぞれの企画を1枠づつ。

 

私の担当は、ScratchとPythonの両方で、同じプログラムを作ってみる電子工作的なものです。

DojoConのテーマが「つながる」だったので、プログラムの世界とモノの世界がつながるように。また、ScratchからPythonという「違うプログラム言語」へつながるように。そして、教えてもらったことから、自分なりのアレンジへつながるように。

そのようなテーマで、Dojoでも使ってもらえそうな簡単なものをいくつか用意しました。

 

当日配布したハンドアウトは、以下URLにあります。

201711_DojoConJapan_HandsOnLabo

 ボタンを押したことを検出するプログラムと、3つのLEDを信号に見立てて点灯させるプログラムを作りました。参加者のみなさんは初めてチャレンジされるかたばかりのようでしたが、信号を2つ作って「押しボタン式交差点信号」を作っていらっしゃる猛者もいました!

 

今回、CoderDojoのみなさんと協力する機会があって、とても楽しく、また勉強になりました。これからも、両財団のみなさんのように、日本のグループ同士も協力しあったイベント開催などができればよいなぁ…と思っています。

 

参加者のみなさん、CoderDojo関係者のみなさん、そしてDojoCon実行委員のみなさん

どうもありがとうございました♡

文京区総合体育館のトレーニングルームに置いてあるトレーニングマシン

文京区総合体育館のトレーニングルームに、どんなトレーニングマシンがあるか調べてきた。

www.shisetsu.jpマシンになにがあるかくらいサイトに掲載されてると思ったら、載ってなかったので現地調査。

マシンよく知らないので、マシン名違ってたらご指摘くださいー。

  • チェストプレス
  • シーテッドロウ
  • グルート
  • レッグプレス
  • アダクション/アブダクション
  • トーソローテーション
  • バックエクステンション
  • アブアイソレーター
  • 腹筋台
  • 背筋台

それぞれ1台づつ。

マシンメーカーは、↓ここに載ってるのと同じだと思います。(うろ覚え)

http://www.senoh.jp/material/pdf/material02.pdf

 

カーディオ系は、

…だったはず(うろ覚え)。背もたれ付きバイクのシートが、破れてて、ガムテ修理してあるところが好感度高い!修理大事!

 

ベンチプレスとかのところは、置いてあるものを見ても、何がなんだか分からないので割愛です。なんか面白そうですよね、バーベルとかダンベルとか。持ち上がる気がしないですけど。

 

今、大塚のセンター(文京スポーツセンター)が工事中らしく、その兼ね合いで、文京総合体育館のトレーニングルームは、朝7:30から使えるらしい。

文京住民以外にも、在学在勤者も使えるので有効に使いたいと思った。

 

あと、卓球室が思ったより広かったので、卓球しに行きたいと思いました。