标签: echo-cancellation

如何在Mac上设置录制和播放音频.Mac上的VOIP应用程序

我想在Mac上录制和播放音频.现在,我对输入/输出/ ChannelFormat的设置有一些问题......我向您展示了我在下面尝试的一些代码.

// Setup audio device
- (OSStatus) setupAudioDevice { // It's oks
    AudioComponentDescription desc;
    AudioComponent comp;

    desc.componentType = kAudioUnitType_Output;
    desc.componentSubType = kAudioUnitSubType_VoiceProcessingIO; // This type support for both iOS and Mac

    desc.componentManufacturer = kAudioUnitManufacturer_Apple;
    desc.componentFlags = 0;
    desc.componentFlagsMask = 0;

    comp = AudioComponentFindNext(NULL, &desc);
    if (comp == NULL)
    {
        return -1;
    }

    OSStatus err = AudioComponentInstanceNew(comp, &audioUnit);
    checkStatus(err);

    return err;
}

//Enable IO
//https://developer.apple.com/library/prerelease/content/technotes/tn2091/_index.html
- (OSStatus) setupEnableIO { // It's ok
    UInt32 enableIO;

    //When using AudioUnitSetProperty the 4th parameter …
Run Code Online (Sandbox Code Playgroud)

audio macos voip audio-processing echo-cancellation

17
推荐指数
1
解决办法
353
查看次数

三星设备上的AcousticEchoCanceler无法正常工作

我有AcousticEchoCanceler用于我试过的所有其他设备类型的VoIP呼叫,但不在任何三星设备上.该设备报告AcousticEchoCanceler可用,但它什么都不做.

我得到了什么:

  • acousticEchoCanceler.setEnabled(true);
  • audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
  • 传递给的音频会话ID AudioTrack
  • 采样率:16k
  • 尝试单声道和立体声录音
  • <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  • <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

有没有人让AcousticEchoCanceler在三星设备上工作?

android samsung-mobile echo-cancellation

9
推荐指数
2
解决办法
1035
查看次数

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

我试图使PulseAudio回声消除器工作.

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

 // pulseAudio
 pa_simple *paS=0;
 pa_sample_spec ss;

void initPulseAudio()
 {
     ss.format = PA_SAMPLE_S16LE;
     ss.channels = 1;
     ss.rate = 8000;


     paS = pa_simple_new(NULL,               // Use the default server.
                       "bottomPlayer",           // Our application's name.
                       PA_STREAM_PLAYBACK,
                       NULL,               // Use the default device.
                       "playStream",            // Description of our stream.
                       &ss,                // Our sample format.
                       NULL,               // Use default channel map
                       NULL,               // Use default buffering attributes.
                       NULL               // Ignore error code.
                       );

     if(!paS)
     {
         fprintf(stderr,
                 "unable to create recorder\n");
         myExit(1);
       } …
Run Code Online (Sandbox Code Playgroud)

c pulseaudio echo-cancellation

8
推荐指数
1
解决办法
5998
查看次数

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

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

macos cocoa objective-c audioqueue echo-cancellation

8
推荐指数
1
解决办法
8113
查看次数

Chrome WebRTC 回声消除和外部音频源

我正在使用 Electron(版本 10,Chrome v75)和 ​​WebRTC 构建视频会议应用程序。该应用程序有多个窗口,在每个窗口中,我都有一个单独的 RTCPeerConnection 和不同的应用程序用户。问题是,如果我不使用耳机,就会有强烈的回声,使该应用程序几乎无法使用。

我尝试设置各种getUserMedia选项,例如echoCancellation: truegoogEchoCancellation: trueechoCancellationType: "browser"/"system",但没有一个能够消除各种声源的回声。

此问题仅出现在 Mac 和 Linux 上,而 Windows 可以非常有效地抑制回声。

我发现这个 Chromium 问题更详细地描述了类似的问题。

另外,当我在 Chrome + Mac 或 Linux 上尝试这个Fiddle时(尽管 Chrome 对于这种情况并不完美,请在此处找到更多详细信息),我没有看到回声消除的效果,并且回声仍然存在。然而,同样的事情在 Chrome + Windows 或 Firefox + 任何操作系统上都可以完美运行。

Chrome 中的 AEC(回声消除)真的没有考虑到所有声源吗?有人知道解决方法吗?

google-chrome aec webrtc echo-cancellation

8
推荐指数
1
解决办法
2666
查看次数

适用于iOS的AudioUnit Echo取消内置功能

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

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

非常感谢你,

普约尔

audiounit ios echo-cancellation

7
推荐指数
0
解决办法
5065
查看次数

线性调频和WebRTC同步-无回音消除

我正在尝试侦听线性调频(使用webassembly 16kHz-mono 3.1.0版本),同时通过WebRTC与辅助设备进行通信,而WebRTC也在侦听线性调频。

在两个设备已连接并且彼此之间传输声音的情况下,如果我实例化一个Chirp并调用chirp.start(),则不再有任何回声消除,即。回声发生。如何在两个设备之间没有回声的情况下方便使用线性调频?

为了澄清,我不想通过WebRTC传输线性调频信号,而是打算在传输之前滤除频谱的那部分。

使用适用于WebRTC的opentok.js在多个操作系统上的Chrome 75.0上进行了测试。

javascript webrtc echo-cancellation opentok chirp

5
推荐指数
1
解决办法
70
查看次数