へもろぐ

へもへも備忘録

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を書き換えてね!(オチはそれか!)