BES2300Z USB模式适配声加算法

HI,下面来说下BES2300Z USB模式下添加第三方通话算法。出现问题打印信息和现象我就不截图了(因为作者没有机器和环境了(*^▽^*))

众所周知,BES的是可以第三方通话算法。一般情况下第三方算法公司都会将BT模式下的适配好给出来或者给出修改文档,所以在BT模式下的第三方算法不需要注意什么。

下面来说下USB模式下的通话算法适配

    我们跟通话的log可以看出运行static void POSSIBLY_UNUSED usb_audio_update_codec_stream(enum AUD_STREAM_T stream)函数开始的(更底层的没有怎么看,没有修改更底层部分的code)。

下图是对USB模式下通话mic、spk通道打开函数:

下图是对USB模式下通话 spk、mic配置的设置:

SPK和MIC的配置是 static int usb_audio_open_codec_stream(enum AUD_STREAM_T stream, enum AUDIO_STREAM_REQ_USER_T user) 函数中的 stream 来决定的

     AUD_STREAM_PLAYBACK  设置SPK输出

     AUD_STREAM_CAPTURE    设置MIC输入

上面的函数中有对MIC采集的数据和需要输出的SPK数据处理的hadle函数进行注册,分别是

    SPK数据处理函数注册如下图:

    MIC数据处理函数注册如下图:

 

下面进入正题,适配USB模式下的适配声加算法。

在添加算法的时候就需要我们在 target.mk 文件中将USB_AUDIO_SPEECH 宏打开。

注意:在打开这个宏之后编译测试下在USB模式下通话时,电脑上是否正常。如果出现没有mic工作的情况不要着急,换台电脑就好、这是电脑的问题不是代码程序问题。(之前就是我的电脑有这样的问题,导致我弄了好久都没有弄好,后面还是在不经意间换电脑之后发现没问题)以后再USB放面出现问题先换电脑、多换电脑测试,有一些电脑系统有问题或者不适配该系统等。

 

打开上面的宏之后,我们在代码中搜索就可以看到有一些地方有定义

 

在适配声加算法是需要传入480大小的buff,默认的情况下不是这么大的。所以就需要我们修改一些原始的参数和传输速度了,如下图:

这有这样修改之后,最后传入给声加算法接口函数的大小才是480.

在修改 tx_frame_ms == 15时,会导致程序死机并且报错。所以在 speech_process_init 函数中需要将报错的打印信息的一行注释掉,如下图:

在通话算法中的采样率我们不需要担心, apeech_process_init 函数中有重采样的机制。所以不需要我们做什么。

上面初始化的部分已经完成了,这样就不用担心在刚接通的时候就出现死机、通话过程中效果不好等情况了。

下面来说下MIC和SPK的部分,主要处理是在 void speech_process_capture_run(uint8_t *buf, uint32_t *len) 和 void speech_process_playback_run(uint8_t *buf, uint32_t *len) 函数中。当然调用声加接口函数也是在这两个函数中。

 

以为这样就弄好了吗?No 没有弄好,还有一步没有做。下面来说下具体是哪一步

    在声加的算法中是需要aec_echo_buf 传入到mic里面去进行数据处理,做到回声消除等。然而在speech_process_playback_run 函数中并没有将AEC参考数据进行保存到 aec_echo_buf 中,所以这一步需要我们添加进去,如下图:

具体修改应该就是这一个函数了。(作者没有原始代码,而且弄好很久都忘记了)

 

全部移植好之后,测试下dump出来的数据是不是4路数据。4路dump数据就没有问题了 ,就可以将该bin文件发送给声加工程师调试最终的效果了。

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值