【问题标题】:Acoustic Echo Cancellation in Flash/Flex using native libraries使用本机库的 Flash/Flex 中的声学回声消除
【发布时间】:2010-02-04 07:56:14
【问题描述】:

我必须在 Flex 视频会议应用程序中实施 AEC。我知道它不能直接在 Flash 中完成。我正在考虑编写一个在 Flex 之外执行 AEC 的本机应用程序或库。

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

我想到了两种可能:

1) 独立的自定义 AEC 过滤器。

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

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

2) AEC 过滤器与 Flex 的 NativeProcess 交互。

过滤器将由 NativeProcess 运行。 Flex 应用程序会将麦克风声音、接收到的远程语音传递给过滤器并返回去除回声的语音,然后 Flex 会将其输出到扬声器。会正确吗?

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

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

PS 我现在是 Flash/Flex 专家,对于一些愚蠢的问题,我深表歉意 :)

提前感谢您的帮助, 特尼克

【问题讨论】:

    标签: apache-flex flash audio echo speex


    【解决方案1】:

    好消息 - 它现在已内置到 Flash Player 10.3 中 :) 阅读发行说明并确保针对 Flex 4.5 SDK 进行编译

    【讨论】:

      【解决方案2】:

      Java AEC 是可能的,您可以使用 Merpi 在 AIR 中访问 java 功能。 也许你应该试试这个。

      谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-18
        相关资源
        最近更新 更多