Raspbian JessieでJasperのサウンドを設定するにはどうすればよいですか?


19

私が使用していますRaspbianジェシー(2015年11月21日)を実行するためにジャスパー(masterブランチ)ラズベリーパイ2モデルB.上のドキュメントのインストール手順は、ジェシーWheezyに用はないように見えます。

WheezyでJasperを実行すると正常に動作します。しかし、ジェシーでは、サウンドの構成に問題がありました。マイクは機能しましたが、スピーカーは機能しませんでした。

行う必要があるのは、デフォルトのサウンドカードをUSBに設定する必要があることです。USBマイクはUSBマイクが接続されている場所であり、Jasperではこれが必要です。ALSA経由での設定についての話という答えがたくさんあり~/.asoundrc/etc/asound.confさらには/usr/share/alsa/alsa.confそれらのどれもが私のために働いていないが。

でミキサーを開いてを押すalsamixerF6、常にbcm2835デフォルトのカードとして表示されます。これがPi2のデフォルトカードですが、USBをデフォルトカードにしたいです。

どうすればいいですか?

回答:


25

ALSA Wikiによると、「複数のインストール済みカードの特定の順序を選択する方法」というタイトルの下に、次のように記載されています。

どのカードがカード番号0、1であるかは、デフォルトではモジュールのロード順によって決まります。これは、デフォルトのカードになるカードを選択するのに特に便利です。

したがって、理論的には、インストールされている複数のカードのうち、ドライバモジュールが最初にロードされるようにすることで、デフォルトのカード0になるカードを選択できます。(注:これは、各サウンドカードに異なるドライバが必要であることを前提としています。同じタイプのサウンドカードが2つある場合は、次のセクションに進んでください。)

これを実現するには、カードドライバーモジュールの「古い」index =オプションと、sndモジュールの代替(および新しい)スロット=オプションの2つの方法があります。

これを行う2つの方法を文書化します。

  1. 古い「index =」メソッド
  2. 新しい「slots =」メソッド

前者は、Jasperのインストール手順で推奨されているものです。また、そこにあるソリューションの大部分が言っていることでもあります。ただし、これは古い方法であり、現在のRaspbian Jessieイメージでは機能しない場合があります。

両方の方法の組み合わせは、私のために働いたものです。

まず、カードがどの順序でロードされたかを確認します。

$ cat /proc/asound/modules
 0 snd_bcm2835
 1 snd_usb_audio

カードのカウントは最初から開始される0ため、デフォルトbcm2835が最初にロードされ、私のマイクを持つUSBカードが2番目にロードされます。

カードの順序を変更するには、最初にという名前のファイルを作成します/etc/modprobe.d/alsa-base.conf。で終わる限り、任意の名前を付けることができます.conf。その後、次を追加しました。

# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0
options snd_bcm2835 index=1

# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835

コメントは各行が何をするかを説明する必要があります。それをしたら、それをはたらくためにマシンをリブートする必要があるようです。

再起動すると、デフォルトのカードでいくつかのオーディオを録音できるようになります。これがマイクになります。

$ arecord temp.wav

次に、カードを1に、デバイスを0に指定して再生します。スピーカーの出力先は次のとおりです。

aplay -D plughw:1,0 temp.wav

私は最初に行を追加しただけslotsです。これは、USBカードをデフォルトのカードにするのに役立ちましたが、インデックスが間違っていました。たとえば、一度やったら、これは私の/proc/asound/modules見た目です:

$ cat /proc/asound/modules
 1 snd_usb_audio
 2 snd_bcm2835

理想的には、次のようになります。

 0 snd_usb_audio
 1 snd_bcm2835

そして、それが私もindexこれを達成するためにメソッドを使用する理由です。


助けてくれて嬉しいです:) Githubアカウント(プロフィールのリンク)で、数日のうちにこれらすべてを行うためのbashセットアップスクリプトとChefクックブックがあります。
Housni

snd_usb_audio残念ながら、という2つのデバイスがあります。
-kleinfreund

@Housniこのスクリプトはもう作成しましたか?
-not2qubit

0

このプロジェクトのalsaの問題をデバッグし、両方のusbマイクとbcm2835スピーカーを動作させようとした後、受け取ったALSAのアドバイスがすべて対処できない基本的な問題があると思います。

/ usr / share / alsa / cardsディレクトリにはbcm2835.confファイルがありません。/ usr / share / alsaディレクトリファイルalsa.confには、指定する必要のあるスタブが大量に残されています。bcm2835のカードが提供されていない限り、Jasper.pyを起動すると、致命的でないと思われる多くのエラーメッセージが表示されます。bcm2835.confファイルを作成することにより、刺激的なメッセージを取り除くことができます。

これはジェシーのバグのようです。これらのエラーメッセージを解決するファイルが本当に必要です。ALSAを扱うjessieプログラマーがテスト済みのプログラマーを作成しなかったのは怠laなようです。

すべてのエラーメッセージを確認したわけではありませんが、他のメッセージも同様に発生していると思われます。

成熟したリリースがない別のケースは、ブート中に古いファームウェアを確認できないことです。私のjessieの古いファームウェアは、sshを知らない限り、古いファームウェアでjessieを使用するための最高のキーボードまたはマウスに応答しないデスクトップをもたらしました。単純なユーザーの状況ではありません。


1
WRTは、「ALSAを扱うjessieプログラマーがテスト済みのjessieプログラマーを作成していないように見える」だけで、Debian 8(別名)を誤解しないでください。Raspbianの構築元であるjessieは、主にRaspberry PiおよびBCM2835 SoC向けです。後者はDebianユーザーの1%未満を占めるため、それらを優先事項と見なすことはほとんどできません。主のグループという事実ボランティア皆まで、あらゆることを、キーボード25時間/日で仕事にしたくないが、彼らは怠惰なことはありません....
ゴルディロックス

...これは、作業を行うために必要な技術的専門知識を持つコミュニティの人々が十分な関心を持っていないことを示しています。
goldilocks
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.