"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Melhor solução para AEC portando o algoritmo matlab/octave para C

Melhor solução para AEC portando o algoritmo matlab/octave para C

Publicado em 2024-11-05
Navegar:263

Feito! Um pouco impressionado comigo mesmo.

Nosso produto precisa da função de cancelamento de eco, três possíveis soluções técnicas foram identificadas,
1) use MCU para detectar saída de áudio e áudio em sinais de áudio, escreva um algoritmo para calcular a força dos dois lados do sinal de som, de acordo com a força da saída de áudio e áudio entre as duas trocas de canais opcionais, para alcançar o efeito de chamada half-duplex, mas agora no mercado há efeito de chamada full-duplex, half-duplex tornará o produto menos competitivo

(2) Use o algoritmo de cancelamento de eco do fornecedor da CPU, a eliminação real do eco do teste não é limpa o suficiente por todos os ajustes de parâmetros ajustáveis ​​e muitas discussões redondas com o fornecedor, longe do efeito esperado. o feedback do fornecedor é melhorar o invólucro para isolar o MIC o máximo possível do alto-falante, mas não há espaço para alterar o invólucro devido ao design do ID, qualidade de som e requisitos de volume.

(3) Baixe os algoritmos de cancelamento de eco de código aberto, como webrtc e speex, da Internet e porte-os para o produto após a compilação cruzada.

4) Adquira os algoritmos de uma empresa especializada em algoritmos de áudio, mas cada produto exigiria custos adicionais, o que reduziria muito a competitividade do produto.

Depois de pesar as opções, decidi fazer uma pesquisa aprofundada sobre a solução de usar algoritmos de código aberto;

Então, baixei uma série de códigos de cancelamento de eco do github, gitee e outros sites, tanto em C quanto em matlab.

Sintetize as duas vozes com oitava para gerar uma seção de uma cena de conversa dupla com a voz de captura do microfone próximo, bem como a voz de referência distante.
Em seguida, execute o código baixado online para cancelamento de eco, analise o áudio de saída e escolha o algoritmo que funciona melhor entre eles.

A partir dos resultados, o algoritmo AEC de processamento de áudio webrtc não é bom, o cancelamento de eco não é limpo e há uma óbvia deglutição de palavras na cena de conversa dupla. O algoritmo AEC3 de processamento de áudio webrtc é limpo, mas suprime muito o som do outro lado da conversa dupla, e o som é intermitente e não natural;

O speex tem um leve eco, é melhor encontrar uma implementação em linguagem matlab do algoritmo aec, a eliminação de eco é muito limpa, a fala dupla apenas um leve fenômeno de engolir palavras.

Então, eu uso o visual studio para compilar e depurar o código-fonte aberto do webrtc audioprocessing aec, consulte o algoritmo aec do matlab acima para modificar o código, use a depuração online para definir pontos de interrupção, execução em etapa única e outras análises de o valor da instrução a passo muda e, finalmente, obtém os dados e os resultados do algoritmo aec da linguagem matlab são idênticos. Os dados finais obtidos são exatamente iguais ao resultado do algoritmo aec no matlab;

Hoje compilado para o produto, o ganho do MIC e do SPEAKER ajustado para um valor razoável, e então a chamada real para testar o efeito do cancelamento de eco, os resultados são surpreendentemente bons.

Assim, há esperança de projetar um produto que possa atingir vendas acima da pequena meta.

Best solution to AEC by porting matlab/octave algorithm to C

Best solution to AEC by porting matlab/octave algorithm to C

Best solution to AEC by porting matlab/octave algorithm to C

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/zhangzhuyue/best-solution-for-aec-by-porting-matlaboctave-algorithm-to-c-ogg Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3