问题标签 [echo-cancellation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8364 浏览

c - 如何在 PulseAudio 中使用回声消除模块?

我试图让 PulseAudio 回声消除器工作。

我有两个应用程序 - 录音机和播放器,都使用 PulseAudio。我像这样创建播放器和录音机:

一切正常,除了回声消除。我已经启用它

但是有和没有那个模块没有区别 - echo 存在。我是 PulseAudio 的新手,找不到关于回声消除器使用的好的手册。我应该在我的设备设置中添加或调整什么以使其正常工作?

操作系统——linux,现在是ubuntu,最后还是openWrt

0 投票
1 回答
739 浏览

ios - 为什么 kAUVoiceIOProperty_VoiceProcessingQuality 在 iOS SDK 6 中被标记为“已弃用”?

来自AudioUnitProperties.h

任何想法弃用它的原因是什么以及是否有任何新的东西可以替代它?

0 投票
1 回答
1863 浏览

audio - 开源编解码器以减少/最小化背景噪声或进行回声消除?

这与我们的另一个问题有关。

是否有任何可以减少/消除背景噪音的开源编解码器?

一般来说,最可靠或最流行的回声消除编解码器是什么?

0 投票
2 回答
11026 浏览

objective-c - OSX 中使用 AudioQueue 的 AEC(回声消除支持)

我正在 OSX 和 iOS 上开发 VOIP 应用程序,并将使用 AudioQueue 进行音频流,想知道的是,默认情况下,AudioQueue 是否支持声学回声消除,或者我们是否需要添加对它的支持,
如果我们需要实现,我相信必须像 Speex 那样实现一些开源库 是否有任何可用示例显示 AudioQueue 与 Speex 或任何其他库的集成

0 投票
0 回答
955 浏览

audio - 如何计算声卡时钟漂移?

由于声学回声消除的原因,我正在计算声卡漂移。我的算法是:

其中,当 320、640 或 1920 字节的音频帧发送到播放设备时,*samples_played* 加 1;当捕获设备输出 320、640 或 1920 字节的音频帧时,*samples_recorded* 加 1 .

WebRTC 提供了对我要完成的工作的描述,如下所示:

WebRtc_Word16 skew 在声卡上播放和录制的样本数之间的差异(用于时钟偏差补偿)。

我的问题分为两部分:

  1. 算法正确吗?
  2. 增量是否正确?
0 投票
1 回答
737 浏览

android - 回声消除:麦克风作为语音输入,MP3 作为输出

我目前正在开发一个应用程序,它正在观察麦克风的输入,但同时必须能够通过扬声器播放特定的 MP3 歌曲。我目前面临的问题是,当我播放 MP3 时,麦克风当然会识别到这一点,并且由于音量增加,会返回更多数据。

我需要取消 MP3 的回声,我尝试过 Android 自己的 AcousticEchoCanceller,但它不起作用,因为它甚至在我的 Nexus 7 和我的 Nexus 4 上都不可用。现在我来 speex,但我不是真的熟悉 NDK,但我不知道如何将其嵌入到我现有的代码中。

所以我发现了这个:https ://github.com/mutantbob/ndk-speex NDK-Speex with Java wrapper classes,但不幸的是这些类似乎只用于 Speex 格式的编码和解码声音,这似乎不会取消任何回声。我已经阅读了有关扩展 Java 包装器以添加回声消除的信息,但我找不到正确的起点,有人能指出我正确的方向吗?还是我应该采取不同的途径实现我的目标?

0 投票
1 回答
1523 浏览

c - 降噪设置 - 智能组合麦克风的信号

我用两个麦克风和两个不同的麦克风前置放大器构建了一个噪音消除装置,这些前置放大器用于立体声录音的两个不同通道。

这是一个示例

http://filestore.to/?d=U5FN2IH96K

我试过了

当魔法发生在

但这并不能消除它周围的噪音,它所做的只是产生噼啪声。

我怎么能用我的设置来完成这个任务呢?我更喜欢实用的解决方案,而不是“阅读只有论文作者理解的论文”。

当我们这样做时,我如何标准化最终的单声道输出以使其尽可能响亮而不削波?

0 投票
1 回答
1657 浏览

echo - 软件回声消除器如何工作?

我已经阅读了许多 VoIP 回声主题,例如什么是回声消除? 回声的原因

这就是我的理解。假设有 A 和 B 呼叫,A 听到自己的声音(回声)

在此处输入图像描述

  1. 引起回声的是B。因为 B 的麦克风已经捕捉到 B 的声音和 B 的说话者声音(其中包含 A 的声音)
  2. 由于 B 引起回声,他必须在他身边实施回声消除。这种回声消除的工作原理如下:B 将保存 A 语音的副本,并检查 B 将发送的数据是否包含此副本。如果是,B 必须从传输数据中减去这个副本

这是正确的吗?如果我错了请纠正我

0 投票
0 回答
2181 浏览

android - Android 上的 WebRTC 回声消除。缓冲区太小

我在尝试使用 webRTC 在 android 上进行回声消除时遇到问题。我大部分时间都 在关注此处发布的项目,但是我正在尝试直接从远程设备流式传输。

当我这样做时,我得到了这个异常:

现在我深入研究了代码,发现采样器一次只能接受 80 或 160 个样本。为了弥补这一点,我尝试一次只获取 160 个样本,但这小于 AudioRecord 对象中的最小缓冲区大小并产生错误。

所以为了解决这个问题,我也尝试了这段代码,并将队列设置为一次最多只能传送 320 个字节(因为我们使用 2 个字节来表示短):

现在这应该缓冲每个 160 元素数组并将其传递给 WebRtc 库以执行回声消除。它似乎只是产生随机噪音。我也尝试反转结果数组的顺序,但仍会产生随机噪声。

有什么方法可以拆分声音样本并以 WebRTC 喜欢的方式使其听起来像原始声音?或者有没有办法让 WebRtc 一次接受更多样本?我认为两者都很好,但目前我有点卡住了。

0 投票
0 回答
7130 浏览

ios - 适用于 iOS 的 AudioUnit 回声消除内置功能

目前我正在开发一个使用 iPad 麦克风捕捉声音的 iOS 应用程序。与此同时,声音正在通过 iPad 扬声器播放。由于目标是处理隔离的输入声音,因此应移除(取消)扬声器反馈。我寻找了一些与 AudioToolbox 可能性相关的文档。我发现 AudioUnit 可以执行回声消除等内置功能。但是,我没有设法正确配置我的音频图以实现成功的性能。

我将不胜感激任何建议、示例代码、教程参考或推荐的参考书目。

非常感谢,

卡尔斯