我必须在Flex视频 session 应用程序中实现AEC。我知道不能直接在Flash中完成。我正在考虑编写将在Flex外部执行AEC的 native 应用程序或库。

据我所知,Adobe Connect Pro正在使用一些执行AEC的外部库。我想按照这个方向做一些类似的事情。

我想到了两种可能性:

1)独立定制AEC过滤器。

自定义AEC过滤器将在后台运行,并将处理来自麦克风和声卡的所有数据并执行AEC。回声信号将是要播放但在临时缓冲区中延迟的数据,如下所示:aec(input,delay_input,output)。

我不知道它是否有效,因为Flash麦克风输入不知道我的自定义输入,扬声器也不知道。但是,如何在具有系统级AEC的WinXP/Vista中完成呢?

2)AEC筛选器与Flex的NativeProcess交互。

筛选器将由NativeProcess运行。 Flex应用程序会将麦克风声音,已接收的远程语音传递到过滤器,并在消除回声的情况下返回语音,然后Flex会将其输出到扬声器。这是正确的吗?

如果2)方法是可以的,那么我有以下问题:

  • 我将从Speex的AEC开始,所以应该以哪种格式从Flex粘贴数据?如果我选择Flex Speex编解码器进行声音压缩,是否可以将其直接传递到speex库?
  • 性能会好吗?我认为,调用每个声音帧缓冲区的NativeProcess库都可能很耗时。
  • 为什么在AS3中没有可以直接从Flash使用的AEC实现?据我所知,要执行AEC,您必须具有回声数据和麦克风数据(在Flash 10中,可以直接访问麦克风)。肯定有某种东西正在停止这样做,但是我还不知道它是什么:)
  • 除了我可以使用的Speex以外,是否还有一些免费的AEC实现或DSP库?

  • PS我现在是Flash/Flex专家,对一些愚蠢的问题很抱歉:)

    预先感谢您的帮助,
    特尔尼克

    最佳答案

    好消息-它已内置在Flash Player 10.3中:)阅读发行说明,并确保可根据Flex 4.5 SDK进行编译

    关于apache-flex - 使用 native 库在Flash/Flex中消除回声,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2198107/

    10-09 21:36