"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Meilleure solution pour AEC en portant l'algorithme matlab/octave en C

Meilleure solution pour AEC en portant l'algorithme matlab/octave en C

Publié le 2024-11-05
Parcourir:869

Fait! Un peu impressionné par moi-même.

Notre produit a besoin de la fonction d'annulation d'écho, trois solutions techniques possibles ont été identifiées,
1) utilisez MCU pour détecter la sortie audio et l'entrée audio des signaux audio, écrivez un algorithme pour calculer la force des deux côtés du signal sonore, en fonction de la force de la sortie audio et de l'entrée audio entre les deux commutations de canaux optionnelles, pour obtenir l'effet d'appel semi-duplex, mais maintenant sur le marché il y a un effet d'appel full-duplex, le semi-duplex rendra le produit moins compétitif

(2) Utilisez l'algorithme d'annulation d'écho du fournisseur de CPU, l'élimination réelle de l'écho de test n'est pas assez propre en raison de tous les paramètres réglables et des nombreuses discussions avec le fournisseur, loin de l'effet attendu. les commentaires du fournisseur sont d'améliorer le boîtier pour isoler le micro aussi loin que possible du haut-parleur, mais pas de possibilité de changer le boîtier en raison de la conception de l'identification, de la qualité du son et des exigences de volume.

(3) Téléchargez les algorithmes d'annulation d'écho open source tels que webrtc et speex depuis Internet, et portez-les sur le produit après la compilation croisée.

4) Achetez les algorithmes auprès d'une entreprise spécialisée dans les algorithmes audio, mais chaque produit nécessiterait des coûts supplémentaires, ce qui réduirait considérablement la compétitivité du produit.

Après avoir évalué les options, j'ai décidé de faire une recherche approfondie sur la solution consistant à utiliser des algorithmes open source ;

J'ai donc téléchargé une série de codes d'annulation d'écho depuis github, gitee et d'autres sites, à la fois en C et en matlab.

Synthétisez les deux voix avec l'octave pour générer une section d'une scène de double conversation avec la voix de capture du micro proche ainsi que la voix de référence distante.
Ensuite, exécutez le code téléchargé en ligne pour l'annulation de l'écho, analysez l'audio de sortie et choisissez l'algorithme qui fonctionne le mieux parmi eux.

D'après les résultats, l'algorithme AEC du traitement audio webrtc n'est pas bon, l'annulation de l'écho n'est pas propre et il y a une déglutition évidente de mots dans la scène de double parole. L'algorithme AEC3 du traitement audio webrtc est propre, mais il supprime beaucoup le son de l'autre extrémité de la double parole, et le son est intermittent et peu naturel ;

Le speex a un léger écho, il est préférable de trouver une implémentation en langage matlab de l'algorithme aec, l'élimination de l'écho est très propre, le double langage seulement un léger phénomène de déglutition de mots.

Ensuite, j'utilise Visual Studio pour compiler et déboguer le code open source de webrtc audioprocessing aec, je me réfère à l'algorithme aec ci-dessus de matlab pour modifier le code, j'utilise le débogage en ligne pour définir des points d'arrêt, l'exécution en une seule étape et d'autres analyses de la valeur de l'instruction change étape par étape, et finalement obtenir les données et les résultats de l'algorithme aec du langage matlab sont identiques. Les données finales obtenues sont exactement les mêmes que le résultat de l'algorithme aec dans matlab ;

Aujourd'hui compilé sur le produit, le gain MIC et SPEAKER ajusté à une valeur raisonnable, puis l'appel réel pour tester l'effet de l'annulation d'écho, les résultats sont étonnamment bons.

Ainsi, il y a de l'espoir de concevoir un produit capable d'atteindre des ventes supérieures au petit objectif.

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

Déclaration de sortie Cet article est reproduit sur : https://dev.to/zhangzhuyue/best-solution-for-aec-by-porting-matlaboctave-algorithm-to-c-ogg En cas de violation, veuillez contacter [email protected] pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3