一、前言

前面我们BES平台的相关算法以及算法调试的流程,其中有一个BES官方专用工具——Audio Developer,我们可以用它dump数据给到BES的算法进行调试,也可以使用工具对算法进行调试(后者需要一定的算法经验)。下面我们就详解讲解工具用法

二、软件配置修改

1.开启先关宏

(1)在hal_trace.h文件中打开AUDIO_DEBUG宏,开启后,波特率会默认设置为2000000,保持默认设置即可

(2)在bt_sco_chain.c文件中打开BT_SCO_CHAIN_AUDIO_DUMP

(3)若需要自己调试算法,则需要在hal_trace.h文件中打开APP_TRACE_RX_ENABLE

2.设置dump数据路数

bt_sco_chain.c文件中的,

3.dump上行/下行数据

(1)上行数据

bt_sco_chain.c文件中_speech_tx_process_pre函数是上行数据处理函数,有以下两个接口可以dump数据:

  • audio_dump_add_channel_data_from_multi_channels(N, pcm_buf, pcm_len/ch_N, ch_N, ch_index);

  • audio_dump_add_channel_data(N, pcm_buf, pcm_len);

当多路麦克风原始数据输入时,使用audio_dump_add_channel_data_from_multi_channels接口添加dump数据,其中ch_N==2表示双麦数据,ch_index==0表示双麦数据中的第一路。

按照下图中的 audio_dump_add_channel_data(3, ref_buf, pcm_len)即可在上行数据dump的流程中添加下行数据

(2)下行数据

bt_sco_chain.c文件中_speech_rx_process_函数是下行数据处理函数,参考上行数据dump流程,但由于下行只有一路数据,所以使用audio_dump_add_channel_data在需要的位置添加dump点位即可。

注意上行和下行不能同时开启dump,所以若要dump上行数据,则需要将下行数据dump的相关配置注释掉即可!!!

三、工具下载及用法详解

1.工具下载

Audio Developer V1.1.0

2.工具简介

工具下载完成解压后,在\audio_developer_v1.1.0\dist目录下找到main.exe文件,双击打开就会出现下图所示界面。

    软件界面分为六个模块:

    (1)Save&Load模块

            保存、导入配置文件

    (2)COM模块

            该模块用于为芯片连接和trace设置正确的端口号和波特率。

            设置正确的COM口,填写匹配的波特率,点击Close,若连接成功则会变成Open。Clear用于清除当前页面上的日志内容。

    (3)Trace Manager模块

            该模块中,修改设置可以控制Trace displayer模块中日志的显示。Default对应串口显示的全部日志,Display对应自定义的特定内容日志。可以对特定日志使用不同颜色区分,也可关闭Default,只显示特定内容日志。

    (4)Record模块

            该模块用于dump数据,具体操作流程如下所示

    • 设备通过串口连接软件
    • 如下图,在Record模块中填写文件名,并勾选“Enable
    • 设备端进入HFP模式:拨打客服电话或者与人通话
    • 通话过程中,Rx Frames会持续计数,表示正在dump数据,通话结束计数暂停
    • 文件保存在\audio_developer_v1.1.0\out\Record\

    (5)Speech Tuning模块

            这是通话算法调试的主要模块,可以在此处设置好参数配置并发送到设备上进行调试。如图所示,有三种RX算法SPEECH_RX_NS2FLOATSPEECH_RX_COMPEXPSPEECH_RX_EQ。您可以根据实际需要设置每个变量的值。

            设置完所有变量,点击Send,status将从IDLE变为SUCCESS,表示发送成功。若为SENDINGFAILED,则表示失败!

    (6)Trace displayer模块        

            用于显示串口日志

               

    3.用法详解

    (1)dump数据

            参考Record模块解析。

    (2)算法调试(单麦为例)

    1.打开audio_developer⼯具,load target.mk⽂件,会出现如下界⾯,Speech Tuning下会出现相关算法的参数。

    2.打开串⼝,⼿机连上⽿机后拨通电话,修改算法参数后点击Send,Status如果为绿⾊的SUCCESS,则发送成功,会打印如下log

    [speech tuning] len(1172) is OK

    [speech tuning] OK: Send cfg

    如果为⻩⾊的SENDING则发送失败,失败原因可拉到⽂件最末端查看相关原因。

    四、常见问题及解决方案

    问题原因解决方案
    工具没有出现log

    1.AUDIO_DEBUG宏没开 

    2.工具卡住

    1.打开AUDIO_DEBUG

    2.重新打开工具

    无法dump数据dump流程哪一步没做或有问题检查代码
    send数据,右侧log出现以 下错误
    ERROR:hal_trace_rx_par se2
    ERROR:hal_trace_rx_par se3
    参数总长度与工具长度不匹配app_trace_rx.c文件中的
    APP_TRACE_RX_BUF_SIZE 改为2048
    send数据出现以下问题
    [speech_tuning]len(1180)!=config_size(1260)
    工具配置参数长度与代码参数长度不匹配
    对⽐⼯具cfg/default.cfg⽂件中的参数与bt_sco_chain_cfg_default.c⽂件中的参数,如有不同点,可对
    default.cfg⽂件进⾏修改。
    Default.cfg ⽂件⽀持int,float类型
    (其余未确认),代码中写了bool类
    型,那么相差就会⼀直消不去。
    点击send按键,没有出现[speech_tuning]xxx
    与 speech_tuning 相关的宏没有打开

    确认是否能跑进该函数,没有则打开对应的宏。

    出现 speech tuning is invalid
    speech_tuning 没有在cfg.name的列表中
    先确认是否有跑进 app_trace_rx_register("Speech Tuning", (HAL_TRACE_RX_CALLBACK_T)speec
    h_tuning_rx_callback) 这个函数⾥
    头,如果没有得加上他的条件
    Load文件后,点击send,status毫无反应default.cfg文件配置有误比如:没有⽤到compexp(单段),
    但cfg⽂件分了两段/参数的数据结构不匹配,⽐如float类型写成了int类型

    Logo

    魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

    更多推荐