En utilisant Android est construit en annulation de l'écho acoustique
Personne ne sait comment utiliser appareil Android intégré dans l'annulation de l'écho acoustique? Il est situé quelque part dans le silicium et est utilisée pour le GSM/CDMA haut-parleur mains libres appels. Nous aimerions vraiment l'exploiter pour une application VoIP au lieu de laminage de notre propre.
Ben
Un peu de chance? Je suis à la recherche de la même chose...
OriginalL'auteur BenYL | 2010-10-20
Vous devez vous connecter pour publier un commentaire.
J'ai finalement été en mesure d'obtenir l'annulation de l'écho de travailler sur mon Arm5 (WM8650) processeur (Android 2.2). Ci-dessous sont les étapes que j'ai pris.
J'ai enveloppé Speex avec JNI et appelle echo routines de traitement avant d'envoyer PCM images à l'encodeur. Aucun écho n'a été annulé à n'importe quel Speex paramètres que j'ai essayé.
Parce que Speex est très sensible au délai entre la lecture et de l'écho images j'ai mis en place une file d'attente et en file d'attente tous les paquets envoyés à AudioTrack. La taille de la file d'attente doit être à peu près égale à la taille de l'intérieur AudioTrack tampon. Cette façon de paquets ont été envoyés à echo_playback à peu près au moment où AudioTrack envoyer des paquets à la carte son de la mémoire tampon interne. Le retard a été enlevé avec cette approche, mais l'écho n'était pas encore annulé
J'ai enveloppé WebRtc d'annulation de l'écho de la partie avec JNI et appelé ses méthodes avant d'envoyer les paquets à l'encodeur. L'écho est toujours présent mais la bibliothèque était évidemment essayer de l'annuler.
J'ai appliqué le tampon technique décrite dans P2 et il a finalement commencé à travailler. Le retard doit être ajustée pour chaque appareil. Notez également que WebRtc a mobile et la version complète de l'annulation d'écho. La version complète considérablement ralentit le processeur et devrait probablement être exécuté sur ARM7. La version mobile fonctionne, mais de qualité inférieure
J'espère que cela aidera quelqu'un.
La file d'attente doivent être de la même taille que le AudioTrack buffer interne ainsi que la taille de la AudioRecord buffer interne?
OriginalL'auteur Alex Tayurskiy
J'ai été à la même place, porté avec succès la Speex AEC pour Android et l'a utilisé dans 2 différentes Android VoIP des clients. La plupart de l'écho est annulé lorsque sur le haut-parleur à plein volume - testé sur une variété de dispositifs.
Le Speex officiel docs et google devrait être suffisant pour le faire fonctionner.
salut, fait u utilisé tampon d'instabilité dans votre code natif
OriginalL'auteur SirKnigget
Depuis l'API de Niveau 11, il y a une nouvelle valeur pour MediaRecorder.AudioSource, il est VOICE_COMMUNICATION. Android docs dire: "Microphone source audio à l'écoute pour les communications vocales telles que la VoIP. Il sera par exemple profiter de l'annulation d'écho ou de contrôle automatique de gain, si disponible. Sinon il se comporte comme valeur par DÉFAUT si aucun traitement de la voix est appliquée." J'ai essayé ceci, mais ne pouvait pas le faire fonctionné. Le problème est peut-être l'appareil que j'avais utilisé, c'est la Sony Tablet S. la Peine d'essayer, si.
OriginalL'auteur Kadir San