正确使用WebRtcAecm函数的方法

彼德

我试图了解如何正确使用两个WebRtcAecm函数。似乎有两个主要功能可用于移动设备上的回声消除。

第一个是WebRtcAecm_BufferFarend

int32_t WebRtcAecm_BufferFarend(void* aecmInst,
                            const int16_t* farend,
                            int16_t nrOfSamples);

我想这就是我们传递从远端接收到的音频数据的地方。当我们继续接收音频数据包时,是否继续调用此方法?此外,该函数是否复制传入缓冲区的副本,以便我们可以将相同的缓冲区重用于下一个数据包?

另一个功能是WebRtcAecm_Process

int32_t WebRtcAecm_Process(void* aecmInst,
                       const int16_t* nearendNoisy,
                       const int16_t* nearendClean,
                       int16_t* out,
                       int16_t nrOfSamples,
                       int16_t msInSndCardBuf);

在Internet上的一个代码段中,我看到了将相同的指针用于nearendNoisy和nearendClean。如果我们不进行任何噪声抑制,nearendClean参数是否不应该为null?

最后,在两个不同的线程中调用这两个方法有什么问题吗?我们的远程音频接收器代码在一个线程中,而我们的麦克风侦听器代码在另一个线程中。

预先感谢您的帮助。

比尔·胡

我已经在github上发布了一个项目,它将确切地向您展示如何调用这些函数。

实际上,nearendClean可以设置为NULL,我总是将其设置为NULL,因为我的NS在AECM游行之后。

霍尔普,我帮助了:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正确使用Javascript函数的方法

来自分类Dev

正确使用的函数类的property()方法

来自分类Dev

使用函数指针遍历 bst 的正确方法

来自分类Dev

使用max函数和/或替代方法的正确方法

来自分类Dev

正确使用all()函数

来自分类Dev

正确使用GetLongPathName函数

来自分类Dev

使用stat()函数访问m_time的正确方法

来自分类Dev

使用file_get_contents()PHP函数的正确方法

来自分类Dev

使用React钩子useState()键入'setState'函数的正确方法

来自分类Dev

使用变量的正确方法-在函数循环内还是循环外

来自分类Dev

在对象pascal中使用get size函数的正确方法

来自分类Dev

使用函数调用设置实例变量的正确方法是什么?

来自分类Dev

使用jQuery向主体添加onload函数的正确方法

来自分类Dev

使用 scanf 函数运行 for 循环的正确方法是什么

来自分类Dev

使用静态函数的正确方法是什么?

来自分类Dev

调用聚合函数的正确方法

来自分类Dev

调用聚合函数的正确方法

来自分类Dev

绑定成员函数的正确方法?

来自分类Dev

测试函数的正确方法

来自分类Dev

抑制库头中的内联函数的Xcode未使用函数警告的正确方法

来自分类Dev

如何正确使用JavaScript函数?

来自分类Dev

javascript,正确使用即时函数?

来自分类Dev

正确使用React构造函数?

来自分类Dev

递归函数是否正确使用

来自分类Dev

无法正确使用Excel函数

来自分类Dev

正确使用C ++中的函数?

来自分类Dev

正确使用 sqlite sum() 函数

来自分类Dev

如何正确使用mapPartitions函数

来自分类Dev

正确使用@Version的方法