Ao hospedar uma reunião e compartilhar um aplicativo por meio do Zoom no Debian buster, estou obtendo distorção de áudio nos clientes que se conectam à reunião.
Estou usando o zoom 5.2.446620.0816 e atualizei o pulseaudio para 13.0-3 usando 'buster-backports', mas o problema ainda ocorre.
**** A aparência disso no pavucontrol antes de compartilhar um aplicativo:
Na reprodução, há
---ZOOM VoiceEngine: playStream
Gravação:
--- ZOOM VoiceEngine: recStream de (entrada de fluxo de microfone para Zoom, trabalho conhecido)
Dispositivos de saída:
--- Reprodução de alto-falante de áudio integrado + reprodução de fones de ouvido
Dispositivos de entrada:
---QuickCam Pro 9000 Analog Mono (microfone como dispositivo)
Configuração:
---QuickCam Pro 9000, Perfil "Entrada Analógica Mono"
--- Áudio integrado, perfil "Reproduzir música com qualidade HiFi"
Quando eu compartilho um aplicativo pelo Zoom e escolho "compartilhar som do computador", o seguinte é adicionado.
Gravação:
---ZOOM VoiceEngine Loopback: loopbackStream de
Dispositivos de saída:
---zoom_combine_device
**** Para aplicativos, tentei chromium (navegador), spotify e vlc
Eu nem tenho certeza de que tipo de distorção de áudio estou recebendo. No começo, tentei ajustar os níveis de volume de cada aplicativo, zoom_combine_device e ZOOM VoiceEngine Loopback
Soa como distorção de recorte, mas a qualidade do som não muda conforme alterno os níveis de volume. Portanto, suspeito que talvez seja causado por um problema de conversão de taxa de bits ou taxa de amostragem. Além disso, durante o teste com fones de ouvido, pude falar no microfone enquanto tentava reproduzir o áudio do aplicativo compartilhado. O sinal do microfone passa claramente, mesmo quando o aplicativo permanece distorcido.
O PulseAudio está envolvido na configuração de um coletor "zoomcombine" ou "zoom_combine" no qual o microfone e o áudio do aplicativo são reamostrados e mixados.
Eu verifico a configuração de cada um de
pacmd list
****Na configuração que estou visualizando no OP aqui,
a fonte do microfone tem "s16le" um formato de amostra de ponto fixo em 16000 Hz mono.
o coletor alsa_output tem "s16le" em 48000 Hz e 2 canais, frontal esquerdo e frontal direito.
o coletor de combinação de zoom tem o mesmo.
o mesmo acontece com a saída do zoomcombine.monitor
o áudio do aplicativo tem taxa de amostragem de 44100 Hz. Não sei como mudar isso, mas a reamostragem está acontecendo.
então, a saída loopbackStream tem taxa de amostragem de 44100 Hz.
Fiz as seguintes alterações em ~/.config/pulse, mas você também pode colocá-las em ~/.pulse se ainda não existir. Pelo menos neste sistema, o pulseaudio é executado como usuário. Nenhuma configuração do sistema estava sendo aplicada a partir de /etc/pulse, então editá-las não fazia diferença.
~/.config/pulse/daemon.conf
Cada uma dessas 3 configurações é completamente essencial. Ele define a taxa de amostragem loopbackStream para 48000 Hz para que corresponda à combinação de zoom e ao hardware. Em seguida, a combinação de zoom reamostrará com sucesso do áudio do aplicativo de 44100 Hz a 48000 Hz. speex-float não é apropriado. O tipo de amostra é fixo.
A fonte dessa terrível distorção veio da troca de formatos de amostra durante a reamostragem e desnecessariamente usando uma taxa de amostragem diferente no loopbackStream. Defina a taxa de amostragem padrão para corresponder ao seu hardware e alterne a taxa de amostragem para corresponder aos aplicativos, se forem diferentes. Mudar apenas o método de reamostragem não produziu um áudio perfeitamente claro.
Testei os métodos de reamostragem speex-fixed-N com música. speex-fixed-7 foi onde os agudos começam a brilhar e os pratos são claros. Algumas pessoas acham que o spex-fixed-5 é adequado.