Devo implementare AEC in un'applicazione di videoconferenza Flex. So che non può essere fatto direttamente in Flash. Sto pensando di scrivere un'applicazione nativa o una libreria che eseguirà AEC all'esterno di Flex.Cancellazione dell'eco acustico in Flash/Flex utilizzando le librerie native
Per quanto ne so, Adobe Connect Pro utilizza una libreria esterna che esegue AEC. Mi piacerebbe seguire questa direzione e fare qualcosa di simile.
Arriva due possibilità nella mia mente:
1) independend filtro AEC personalizzato.
Il filtro AEC personalizzato verrà eseguito in background e elaborerà tutti i dati da microfono e scheda audio e AEC. Il segnale di eco sarà il dato che deve essere riprodotto ma ritardato in un buffer temporaneo, qualcosa del genere: aec (input, delayed_input, output).
Non so se funziona, perché l'ingresso del microfono Flash non conosce il mio ingresso personalizzato e lo stesso con gli altoparlanti. Ma come è fatto in WinXP/Vista che hanno AEC a livello di sistema?
2) Filtro AEC che interagisce con NativeProcess di Flex.
Il filtro verrà eseguito da NativeProcess. L'app Flex passa il suono del microfono, la voce del telecomando ricevuta al filtro e restituisce la voce con l'eco rimossa, quindi Flex lo trasmetterà agli altoparlanti. Sarà corretto?
Se il metodo 2) è OK allora ho seguenti domande:
- Inizierò con AEC di Speex così in quale formato devono essere i dati pased da Flex? Se scelgo il codec Flex Speex per la compressione del suono, posso passarlo direttamente alla libreria speex?
- Le prestazioni saranno OK? Chiamare la libreria NativeProcess ogni buffer del frame sonoro può richiedere molto tempo.
- Perché non esiste un'implementazione AEC in AS3 che può essere utilizzata direttamente da Flash? Per quanto ne so fare AEC, devi avere dati di eco e dati del microfono (in Flash 10 c'è l'accesso diretto al microfono). C'è sicuramente qualcosa che sta smettendo di farlo in questo modo ma non so ancora cosa sia :)
- C'è qualche implementazione AEC libera o una libreria DSP con in eccezione di Speex che posso usare?
PS Ora sono un esperto di Flash/Flex così dispiaciuto per alcune domande stupide :)
Grazie in anticipo per l'aiuto, ternyk