2016-03-26 5 views
1

Я ищу помощь в настройке звука на малине Pi, поскольку все мои усилия в Googling упали до сих пор!Как настроить разные значения по умолчанию для ALSA для захвата через одно устройство и воспроизведения через другое?

Моя установка:

  • Raspberry PI 3 (работает Debian Jessie)
  • USB WebCam (Logitech) который я использую для захвата аудио
  • Внешний динамик 3,5 мм аудио разъем, который используется для воспроизведения

До сих пор мне удалось настроить ALSA, по умолчанию, захватить через веб-камеру USB и воспроизвести через гнездо 3,5 мм. Например, следующие прекрасно работает:

# Capture from Webcam 
arecord test.wav 

# Playback through 3.5mm jack 
aplay test.wav 

По умолчанию эта запись звука в 8-битном, 8KHz, Mono. Тем не менее, я хотел бы, чтобы процесс захвата по умолчанию использовал 16-битные, 16 кГц, настройки Mono, и именно здесь я застрял.

Вот мой рабочий ~/.asoundrc файл:

pcm.!default { 

     type asym 

     playback.pcm { 
       type hw 
       card 1 
       device 0 
     } 

     capture.pcm { 
       type plug 
       slave { 
         pcm { 
           type hw 
           card 0 
           device 0 
         } 
       } 
     } 
} 

И мой /etc/modprobe.d/alsa-base.conf:

options snd_usb_audio index=0 
options snd_bcm2835 index=1 

options snd slots=snd-usb-audio,snd-bcm2835 

И выход cat /etc/asound/cards:

0 [U0x46d0x825 ]: USB-Audio - USB Device 0x46d:0x825 
         USB Device 0x46d:0x825 at usb-3f980000.usb-1.4, high speed 
1 [ALSA   ]: bcm2835 - bcm2835 ALSA 
         bcm2835 ALSA 

Я следовал различные руководства, чтобы установить format, rate и channels атрибуты без каких-либо успехов. Например, это не сработало:

pcm.!default { 

     type asym 

     playback.pcm { 
       type hw 
       card 1 
       device 0 
     } 

     capture.pcm { 
       type plug 
       slave { 
         pcm { 
           type hw 
           card 0 
           device 0 
         } 
         format S16_LE 
         rate 16000 
         channels 1 
       } 
     } 
} 

(! Я также пытался двигаться эти атрибуты внутри pcm блока в одном из многих отчаянных попыток)

На самом деле у меня нет опыта работы с аудио на Linux вообще, и я полностью потерян, и любое руководство будет чрезвычайно оценено!

ответ

0

aplay использует любой формат образца файл на самом деле имеет, но arecord создает новый файл, так что вы должны указать формат сэмпла, если вы не хотите, глупые по умолчанию:

arecord -f S16_LE -r 16000 -c 1 test.wav 
+0

Yeh, я получил записывая работу, задавая аргументы, но я пытаюсь понять, как настраивать вещи, поэтому мне не нужно указывать какие-либо аргументы командной строки при записи. Я думал, что параметры 'format',' rate' и 'channels' в файле' ~/.asoundrc' будут делать это (и, возможно, они это делают, и я только что использовал их неправильно), но пока что я упал ! – jgauld

+1

Эти параметры в файле конфигурации могут ограничивать устройство, но это не работает, если приложение также не использует те же значения. (Некоторые приложения спрашивают устройство, что он на самом деле поддерживает, 'iscord' не делает.) –

+0

Спасибо за разъяснение, что очень помогает. Поэтому я мог бы, возможно, создать простой сценарий оболочки, который анализирует '.asoundrc' для параметров по умолчанию, а затем вызывает' iscord' с этими аргументами. – jgauld