O som de reprodução está sendo capturado

1

Tenho tido problemas com o meu áudio. Quando capto áudio, estou capturando áudio de reprodução, a menos que eu especifique o dispositivo correto (veja abaixo). Então, em vez de meu microfone USB ser capturado, o som sendo reproduzido através dos fones de ouvido está sendo capturado.

Não sei ao certo o que está acontecendo e como corrigi-lo. Eu estou usando ALSA e Pulseaudio, e meu asound.conf é o padrão gerado pelo Pulseaudio. Saída de cat /proc/asound/cards :

0 [PCH            ]: HDA-Intel - HDA Intel PCH
                     HDA Intel PCH at 0xf7910000 irq 29
1 [NVidia         ]: HDA-Intel - HDA NVidia
                     HDA NVidia at 0xf7080000 irq 17
2 [C01U           ]: USB-Audio - Samson C01U
                     Samson Technologies Samson C01U at usb-0000:00:14.0-9, full speed

Saída de amixer -c0 contents : link

Para gravar som ao testar meu microfone, usei audácia com o dispositivo de gravação definido como Samson C01U:USB Audio (hw:2,0): Front Mic:0 e usei um registro com arecord -d 2 -D hw:2,0 -f cd test.wav . Ambos gravam o som do meu microfone, no entanto, quando reproduzindo o som de arecord , ele toca apenas pela esquerda dos meus fones de ouvido.

Eu também notei outro problema. Horas extras (especialmente quando estou brincando com meus níveis de áudio) Eu começo a ouvir alguma estática quando ouço áudio. Às vezes é muito fraco e outras vezes é muito alto. Isso nunca aconteceu comigo. Eu posso resolver isso reiniciando pulseaudio, mas é irritante fazer isso.

Meu /etc/asound.conf : link . Eu não tenho um ~/.asoundrc .

    
por wdhg 21.08.2017 / 01:25

2 respostas

0

Resolvi minha gravação de áudio sendo gravada removendo pulseaudio

    
por 16.09.2017 / 16:51
1

Ok, visão geral rápida de como as coisas funcionam.

Sua placa de som Intel HDA possui uma conexão digital com um chip "codec", que contém os conversores D / A e A / D, os mixers analógicos, os amplificadores analógicos e os switches analógicos. O ALSA possui drivers de kernel para as placas de som e atribui os elementos do mixer que você pode ver em amixer para controlar algumas (mas não todas) as coisas no codec.

Você pode configurar o ALSA com "plugins" por meio de todo o sistema /etc/asound.conf ou por usuário ~/.asoundrc .

O Pulseaudio é executado sobre o ALSA e apresenta um mecanismo de transporte de áudio unificado para aplicativos. Ele cuida da conversão da taxa de amostragem, etc., o que torna o Pulseaudio muito mais agradável de usar (em princípio) do que o ALSA. A configuração padrão é que o Pulseaudio apresenta uma camada de compatibilidade para aplicativos legados do ALSA com entradas como

pcm.!default pulse
ctl.!default pulse

Eles definem a entrada e a saída padrão do ALSA de forma que os aplicativos ALSA sejam tratados como aplicativos Pulseaudio. Então, quando você usa arecord ou audacity (buth aplicativos ALSA) com a entrada ALSA padrão, você está realmente usando o Pulseaudio (você também pode usar parecord para acessar diretamente o Pulseaudio). Mas quando você seleciona hw:XXX , você está gravando diretamente dos drivers da ALSA.

O Pulseaudio tem seu próprio conceito (muito flexível) de fontes e pias de áudio. Você pode ver (e modificar) quais aplicativos estão conectados a quais fontes e coletores usando pavucontrol (e em muitos ambientes de área de trabalho e painel de área de trabalho semelhante).

Portanto, se você executar arecord e assistir com pavucontrol , ele deverá aparecer e gravar da origem que pertence à placa de som Intel HDA (geralmente "Estéreo analógico de áudio incorporado").

Por que ele grava o som que é reproduzido ao mesmo tempo? Seria necessário examinar o codec em mais detalhes (você pode fazer isso com cat /proc/asound/card*/codec\#* ), mas há um controle de mixer chamado "Loopback mixing" na sua saída amixer , e está habilitado. Então, eu acho que o seu codec contém um recurso que permite gravar o som que é atualmente emitido. Desativar em alsamixer e ver se alguma coisa muda.

Como configuro para gravar automaticamente a partir do Samson USB Mic? Você pode configurar os padrões no ALSA, mas se quiser manter o Pulseaudio, você deve configurar o Pulseaudio. Você pode selecionar fontes de áudio por aplicativo em pavucontrol quando o aplicativo está sendo executado e o Pulseaudio se lembra das configurações. Você também pode definir a fonte de áudio padrão clicando em "set as fallback" na guia Input , ou use pacmd set-default-source my_source na linha de comando. pacmd list-sources | grep name: fornecerá uma lista de fontes disponíveis. Solte os colchetes angulares ao usar o nome da fonte na linha de comando.

Editar

Cada coletor Pulseaudio tem uma fonte .monitor associada. Então, o que está acontecendo é que, por algum motivo, o Pulseaudio não pode obter nenhuma entrada ALSA, por isso não pode fazer fontes correspondentes, então a única fonte que resta é a .monitor source, que produz o som atualmente reproduzido. de volta. Portanto, não há loop interno no codec (embora isso possa ser outra maneira de gravar o som atualmente reproduzido).

O que significa que você tem que depurar porque o Pulseaudio não pode criar fontes correspondentes a entradas ALSA, embora ele crie um dmix sink, o que também não deveria - isso deve ser um coletor de hardware.

Por favor, forneça o /etc/asound.conf e ~/.asoundrc como primeiro passo. Antes de iniciar o Pulseaudio, já existem programas em execução que usam o ALSA diretamente e impedem que o Pulseaudio use as entradas / saídas de hardware?

    
por 23.08.2017 / 08:36