2010-02-04 18 views
7

Je dois implémenter AEC dans l'application de vidéoconférence Flex. Je sais que cela ne peut pas être fait directement dans Flash. Je pense à écrire une application native ou une bibliothèque qui fera AEC en dehors de Flex. Pour autant que je sache, Adobe Connect Pro utilise une bibliothèque externe qui fait l'AEC. Je voudrais suivre cette direction et faire quelque chose de similaire.Annulation d'écho acoustique dans Flash/Flex en utilisant des bibliothèques natives

Il vient deux possibilités dans mon esprit:

1) Filtre AEC independend personnalisé.

Le filtre AEC personnalisé sera exécuté en arrière-plan et traitera toutes les données du microphone et de la carte son et effectuera l'AEC. Le signal d'écho sera la donnée qui doit être jouée mais retardée dans un tampon temporaire, quelque chose comme ceci: aec (input, delayed_input, output).

Je ne sais pas si cela fonctionne, parce que l'entrée du microphone Flash ne connaît pas mon entrée personnalisée et la même chose avec les haut-parleurs. Mais comment cela se fait-il dans WinXP/Vista qui a AEC au niveau du système?

2) Filtre AEC interagissant avec le processus Native de Flex.

Le filtre sera exécuté par NativeProcess. L'application Flex transmet le son du microphone, reçoit la voix distante vers le filtre et renvoie la voix avec l'écho supprimé, puis Flex la transmet aux enceintes. Est-ce que ce sera correct?

Si le 2) méthode est OK, j'ai des questions suivantes:

  1. Je commencerai par AEC de Speex donc dans ce format devrait être les données PASED de Flex? Si je choisis le codec Flex Speex pour la compression du son, puis-je le passer directement à la bibliothèque speex?
  2. Sera la performance OK? Appeler la bibliothèque NativeProcess chaque tampon de trame sonore peut prendre du temps je pense.
  3. Pourquoi aucune implémentation AEC dans AS3 ne peut être utilisée directement à partir de Flash? Pour autant que je sache faire AEC, vous devez avoir des données d'écho et des données de microphone (dans Flash 10, il y a un accès direct au microphone). Il y a certainement quelque chose qui arrête de le faire comme ça mais je ne sais pas encore ce que c'est :)
  4. Existe-t-il une implémentation AEC gratuite ou une librairie DSP avec in, sauf Speex que je peux utiliser?

PS Je suis maintenant un expert Flash/Flex désolé pour certaines questions stupides :)

Merci à l'avance de l'aide, ternyk

Répondre

2

Bonnes nouvelles - il est intégré dans Flash Player 10.3 maintenant :) Lisez les notes de publication et assurez-vous de compiler avec Flex 4.5 SDK

1

En Java, AEC est possible et vous pouvez accéder aux fonctionnalités java dans AIR en utilisant Merpi. Peut-être que vous devriez essayer cela.

Merci