问题标签 [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.
linux - (如何)我可以从我的计算机没有产生的麦克风中获取所有声音的流吗?(使用 PulseAudio 或其他东西)
我一直在玩一些语音到文本和文本到语音的系统,并且遇到了一个问题,即当计算机发出它可以识别的声音时,它开始从自身接收命令。为避免这种情况,我想要麦克风拾取的所有声音流,这些声音不是由计算机本身产生的。
我看到 PulseAudio 有一个回声消除模块,但到目前为止,我无法区分它的输出和原始麦克风输出:它仍然包含麦克风拾取的来自计算机扬声器的所有声音。我想知道默认的回声消除器是否与我想要的相反(即,它消除了麦克风听到的声音被发送到扬声器)。
知道我该怎么做(最好用pacmd
)?我已经彻底混淆了自己试图为回声消除器指定非默认源,并徘徊在环回模块和其他可能不相关的东西中。我对 PulseAudio 知之甚少,还没有找到很好的介绍(我查看了很多PulseAudio 文档,但没有看到任何相关内容),并且可能只是遗漏了一些简单的东西。我对回声消除显然不起作用感到沮丧,我找不到有关它的文档,也找不到其他人的工作示例。
在此先感谢您的帮助!
其他可能相关的细节:我在联想 Thinkpad T410 上运行 Ubuntu Saucy。我使用的是内置麦克风和扬声器(所以,我很确定他们使用的是同一张声卡,我不会遇到时钟漂移问题)。我的实际应用程序通过 GStreamer 获得声音,但 GStreamer 从 PulseAudio 获得声音,而且我认为 GStreamer 本身没有 AEC 功能。如果有不同的方法可以做到这一点,我很乐意切换到那个。
java - 回声消除器 Android API 级别 10
我正在构建一个必须支持 API 级别 10 的 android 音频应用程序,但我遇到了拉森效应问题。我的 android 应用程序将音频流式传输到输出声音的 java 应用程序。
我找到了 android 的 AcousticEchoCanceller,但它只能从 API 级别 16 获得。
没有这个类有没有办法做到这一点?或者我可以在java应用程序上做吗?
谢谢
卢卡斯
android - WebRTC AEC 不适用于带有 USB 摄像头的 Android
我们有一个启用了 webrtc 的服务,它有 2 个不同的端点;一个网络应用程序和一个原生安卓应用程序。安卓应用程序安装在带有 USB 摄像头的安卓设备上。
使用 chrome/firefox 上的 web 应用程序,pc2pc 的音频质量几乎是完美的。但我们想提高 pc2android 和 android2android 的音频质量。
Chrome 将声学回声消除(AEC - 会议)用于高端设备。但对于 Android,它强制使用 AECM——一种用于手机的轻量级 AEC。我们对 AECM 的表现不满意。对于我们的原生应用程序,我们修改 webrc 源代码以使用 AEC。但结果更糟。就像回声消除完全被禁用一样,我们最终得到了如此多的回声和反馈!
根据这个问题,AEC 应该只适用于 8k 和 16k 采样率,并且只能在高端设备中使用。那应该没问题。我们正在使用具有 8k 采样率的 PCMU 编解码器,我认为我们的 Android 设备足够强大,可以克服 AEC 的额外计算复杂性:
- 四核 ARM CPU @ 2Ghz
- 8 核 Mali-450MP GPU @ 600Mhz
- DDR3 1GB 内存
- 安卓奇巧
如果需要,我很乐意分享我们的回声消除性能图。
手机不能使用 AEC 还是我们遗漏了什么?
android - AudioSource.VOICE_COMMUNICATION 不适用于所有支持 VOICE_COMMUNICATION 的设备
我在我的 AudioRecord 实例中使用 AudioSource.VOICE_COMMUNICATION 作为所有支持它的设备的源。这适用于我所有的平板电脑,除了一个。“宏碁 Iconia Tab 8”。
AcousticEchoCanceler、AutomaticGainControl、NoiseSuppressor 可用。安卓版本为4.4.2
接收设备只收到带有蜂鸣声的音频数据。如果我使用AudioSource.MIC用于不支持AudioSource.VOICE_COMMUNICATION的设备的后备,它可以工作,但没有 EchoCancelation 需要并且该设备应该支持。
有人知道这种奇怪的行为吗?
c++ - VLC API 中的麦克风/扬声器音频反馈
我正在使用vlc-qt使用 Qt 5.3 构建一个网络摄像头录制应用程序,问题是在预览音频/视频高反馈/噪音和回声开始并变得更高时,我一直在谷歌搜索,发现它是称为拉森效果的效果以及如何正在发生。
笔记:
- 我知道使用耳机是一种解决方案
- 我使用的是 Windows 7 Ultimate Notebook
- 零分贝的麦克风增强噪音更小,但回声持续存在
我的问题:
- 其他网络摄像头录制应用程序如何抑制噪音和回声?
- 具体来说,如何在 VLC 中修复它,您的答案可以是命令行参数、注释或在 VLC 软件中执行的指令,不一定是代码
谢谢!
android - 如何消除回声
我正在开发在两个 android 设备之间进行直播的应用程序。我已经得到了很好的结果,比如连接、视频流。但我对声音质量不满意,声音中有如此多的回声和噪音。这就是我使用音轨的方式
所以我正在寻找消除回声和噪声消除的方法。任何帮助和指导将不胜感激。
ios - iOS 从视频中删除特定声音
我有一个应用程序可以播放一些音频,并在播放声音时录制视频+音频。我想找出一种处理视频的方法,以便从生成的视频中删除麦克风拾取的音频。
例如,如果我正在播放audioA,然后用audioB(来自麦克风)录制videoB,我想以某种方式从生成的audioB中消除audioA,这样audioB只是环境噪音而不是来自设备扬声器的噪音.
知道是否有办法做到这一点?
如果可以在没有任何离线处理的情况下完成,则可以加分。
algorithm - 具有 LMS/RLS 自适应算法的 GSLC
我的 BSc 期末项目有一些问题,我想知道你是否可以帮助我。
我正在尝试实现基于 GSLC 方案以及 LMS 和 RLS 算法的数字检测器(以比较每个算法的性能)。这是我的问题出现的时候。我已经成功地编写了 LMS 部分,但是,在 RLS 方面,我陷入了困境。
在查阅了一些参考书目或通过互联网后,我仍然迷路了。这里我附上对应的代码:
请你能帮我找出问题所在吗?任何帮助是极大的赞赏!
android - 如何关闭android通话中回声消除?
我知道在这个领域有一些相关的问题......
仍然:有没有办法在安卓语音通话中禁用回声消除?
android - Android AcousticEchoCanceler 不工作
您好我正在尝试将 VOIP 功能添加到 android 应用程序。为此,我需要声学回声消除。
我在这里看到了 AcousticEchoCanceler 的官方文档。
我正在使用这段代码进行声学回声消除:
但这似乎根本没有帮助。isAvailable() 返回 true 并创建 echoCanceler 对象。如果我查询 echoCanceler.getEnabled() 它也返回 true。
即使我使用 AudioRecord 和 AudioTrack 制作了一个示例应用程序,这也不起作用。我听到很多回声。
如果我将 AudioRecord 的来源设置为:
android.media.MediaRecorder.AudioSource.VOICE_COMMUNICATION
我看到在 Nexus 5(适用于 Android 版本 5 和 6)的情况下,回声被取消了。
(当我将源设置为 VOICE_COMMUNICATION 时,我没有使用 AcousticEchoCanceler)但是对于相同的 Android 版本,相同的方法不适用于三星 Galaxy S4 和三星 Note 4 等设备。
使用回声消除库(如 libspeexdsp 等)是不可能的(因为我正在处理现有项目)。
请尽快提供帮助。
非常感谢。