Raspbian Jessie'deki sesimi Jasper için nasıl yapılandırabilirim?


19

Raspberry Pi 2 Model B'de Jasper'ı (ana dal) çalıştırmak için Raspbian Jessie (2015-11-21) kullanıyorum. Belgelerdeki kurulum talimatları Jessie için değil, Wheezy için görünüyor.

Jasper'ı Wheezy'de çalıştırmak iyi çalışıyor. Ancak Jessie'de sesi yapılandırmada sorunlar yaşadım. Mikrofonum çalıştı, ancak hoparlör ya da tam tersi değildi.

Yapılması gereken şey, varsayılan ses kartının USB'ye ayarlanması gerektiğidir, çünkü USB mikrofonum bağlı ve Jasper bunu gerektirir. Konuşma ALSA Via yapılandırma hakkında o yanıtlar bir yeri vardır ~/.asoundrc, /etc/asound.confhatta ve /usr/share/alsa/alsa.confancak bunların hiçbiri benim için çalıştı.

Karıştırıcımı üzerinden açıp alsamixervurduğumda F6, her zaman bcm2835varsayılan kart olarak görüyorum . Bu Pi2'nin varsayılan kartı ama USB'mi varsayılan kart yapmak istiyorum.

Bunu nasıl yaparım?

Yanıtlar:


25

Göre ALSA Wiki , okur başlığı altında " Birden çok yüklü kartlar için belirli bir düzen seçmek için ", aşağıdaki durumları:

Hangi kart 0, 1 numaralı karttır ve varsayılan olarak modül yükleme sırasına göre belirlenir. Bu, özellikle hangi kartın varsayılan kart olacağını seçmek için kullanışlıdır.

Bu nedenle teoride, kurulu modüllerden hangisinin varsayılan kart olan kart 0 olacağını, önce sürücü modülünün yüklenmesini sağlayarak seçmek mümkündür. (Not: bu, her ses kartının farklı bir sürücü gerektirdiğini varsayar. Aynı türde iki ses kartınız varsa, lütfen bir sonraki bölüme geçin.)

Bunu başarmanın iki yolu vardır: "eski" dizin = kart sürücüsü modülünün seçeneği ve alternatif (ve yeni) yuvalar = snd modülünün seçeneği.

Bunu yapmanın iki yöntemini belgelemektedir:

  1. Eski "index =" yöntemi
  2. Daha yeni "slots =" yöntemi

Birincisi, Jasper kurulum talimatlarının önerdiği şeydir. Buradaki çözümlerin çoğunluğu hakkında da konuşuluyor. Bununla birlikte, bu daha eski bir yöntemdir ve daha güncel Raspbian Jessie görüntüleri üzerinde çalışmayabilir.

Her iki yöntemin kombinasyonu benim için işe yaradı.

Her şeyden önce, kartlarınızın hangi sırayla yüklendiğini kontrol edin:

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

Sayma kartları 0, varsayılan bcm2835olarak önce yüklenir ve mikrofonumu içeren USB kartım ikinci olarak yüklenir.

Kartlarımı yeniden sıralamak için önce adlı bir dosya oluşturuyorum /etc/modprobe.d/alsa-base.conf. Bittiği sürece istediğiniz herhangi bir şey olarak adlandırılabilir .conf. Daha sonra aşağıdakileri ekledim:

# 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

Yorumlar, her satırın ne yaptığını açıklamalıdır. Bunu yaptıktan sonra, çalışması için makinenizi yeniden başlatmanız gerekiyor gibi görünüyor.

Yeniden başlattıktan sonra, şimdi mikrofonunuz olması gereken varsayılan kartla bazı sesler kaydedebilmeniz gerekir:

$ arecord temp.wav

ve ardından kartı 1 olarak ve cihazı 0 olarak belirterek hoparlör çıkışınızın olması gereken yerde oynatın:

aplay -D plughw:1,0 temp.wav

Başlangıçta sadece içindeki satırı ekledim slots. Bu, USB kartımı varsayılan kart haline getirmede çalıştı, ancak yanlış dizine eklendi. Örneğin, bir kez yaptım, bu benim /proc/asound/modulesgibi görünüyordu:

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

İdeal olarak, şöyle görünmelidir:

 0 snd_usb_audio
 1 snd_bcm2835

Bu yüzden de indexbunu başarmak için yöntemi kullanıyorum .


Memnun oldum :) Github hesabımda (profilimdeki bağlantı) birkaç gün içinde tüm bunları yapmak için bir bash betiğinin yanı sıra bir Şef yemek kitabım olacak.
Housni

snd_usb_audioMaalesef iki cihazım var.
kleinfreund

@Housni Bu senaryoyu henüz yazmadınız mı?
not2qubit

0

Bu proje için alsa sorunları hata ayıklama ve HEM usb mikrofon ve bcm2835 hoparlörler çalışmaya başladıktan sonra aldığım ALSA tavsiyelerinin TÜM anlaşma değil temel bir sorun olduğunu düşünüyorum.

/ Usr / share / alsa / cards dizininde bcm2835.conf dosyası yoktur. / Usr / share / alsa dizin dosyası alsa.conf, belirtilmesi gereken çok sayıda saplama bırakır. Bcm2835 için bir kart sağlanmadıkça, Jasper.py'yi çalıştırmak, sözde ölümcül olmayan birçok hata mesajı görüntüler. Bir bcm2835.conf dosyasını çalıştırarak rahatsız edici mesajlardan kurtulabilirsiniz.

Bana öyle geliyor ki bu bir Jessie böceği; gerçekten bu hata mesajlarını çözen bir dosya olmalıdır. ALSA ile ilgilenen jessie programcısı için test edilen bir tane yaratmamış olmak için sadece tembel gibi görünüyorum.

Tüm hata mesajları ile çalışmadım, ancak diğer mesajların da bundan kaynaklandığından şüpheleniyorum.

Olgun bir sürümün olmamasının bir başka örneği, önyükleme sırasında eski bellenimi kontrol edememesidir. Benim jessie eski firmware ssh bilmiyorsanız, eski firmware ile jessie kullanmak için bir showtopper olan klavye veya fare yanıt vermeyen bir masaüstü ile sonuçlandı. Saf bir kullanıcı durumu değil.


1
WRT it "ALSA ile ilgilenen test edilmemiş bir yaratmış değil jessie programcı için sadece tembel görünüyor", Debian 8, aka inanarak karıştırılmamalıdır . Raspbian'ın inşa edildiği jessie, öncelikle Raspberry Pi ve BCM2835 SoC için tasarlanmıştır. İkincisi Debian kullanıcılarının <% 1'inden sorumludur, bu yüzden onlar için bir öncelik olarak düşünülemez. Öncelikli bir grup gönüllü herkes için her şey olmak için 25 saat / gün bir klavyede çalışmak istemiyor onları tembel yapmaz ....
goldilocks

... Sadece işi yapmak için gerekli teknik uzmanlığa sahip topluluktaki insanların yeterli ilgisinin olmadığını
goldilocks
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.