logo资料库

RK语音通话3A算法集成说明及参数调试说明文档_V3.0.pdf

第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
资料共16页,剩余部分请下载后查看
版本功能说明
1.1版本名称
1.2算法库类别
1.3 算法库功能
1.4 包含文件
接口函数
2.1 设置参数
2.2 初始化
2.3 帧处理
2.4 系统释放
测试数据勾取方法
参数调试说明
4.1 总模块参数设置
4.2 回声消除参数设置
4.3 噪声抑制参数设置
4.4 自动增益控制参数设置
4.5 频响补偿参数设置
4.6 舒适噪声参数设置
Android集成调试说明
5.1 算法库与算法配置参数文件集成
5.2 Audio Hal 修改集成audio 3a 算法
5.3 Android audio 3a 算法调试
密级状态:绝密( ) 秘密( ) 内部( ) 公开(√ ) 福州瑞芯微电子股份有限公司 RK 单麦克语音通话 3A 算法集成说明及参数 调试说明文档 文件状态: [ ] 正在修改 [√] 正式发布 当前版本: 作 者: 完成日期: 审 核: 完成日期: V3.0 金剑、顾艳梅、李东强 2018-4-18 福州瑞芯微电子股份有限公司 Fuzhou Rockchips Electronics Co . , Ltd (版本所有,翻版必究)
福州瑞芯微电子股份有限公司 版 本 历 史 版本号 作者 修改日期 修改说明 备注 V1.0 V2.0 V3.0 2017-12-1 发布初版 金剑 金剑 顾艳梅 2018-1-18 调试参数简化 李东强 2018-4-18 Android 集成调试
福州瑞芯微电子股份有限公司 目 录 1. 版本功能说明........................................................................................................................................1 1.1 版本名称....................................................................................................................................... 1 1.2 算法库类别...................................................................................................................................1 1.3 算法库功能...................................................................................................................................1 1.4 包含文件....................................................................................................................................... 1 2. 接口函数................................................................................................................................................1 2.1 设置参数....................................................................................................................................... 2 2.2 初始化........................................................................................................................................... 2 2.3 帧处理........................................................................................................................................... 3 2.4 系统释放....................................................................................................................................... 4 3. 测试数据勾取方法................................................................................................................................4 4. 参数调试说明........................................................................................................................................5 4.1 总模块参数设置...........................................................................................................................5 4.2 回声消除参数设置.......................................................................................................................5 4.3 噪声抑制参数设置.......................................................................................................................6 4.4 自动增益控制参数设置...............................................................................................................7 4.5 频响补偿参数设置.................................................................................................................... 10 4.6 舒适噪声参数设置.................................................................................................................... 11 5. Android 集成调试说明.................................................................................................................... 11 5.1 算法库与算法配置参数文件集成............................................................................................ 11 5.2 Audio Hal 修改集成 audio 3a 算法................................................................................... 12 5.3 Android audio 3a 算法调试.................................................................................................12
福州瑞芯微电子股份有限公司 1. 版本功能说明 1.1 版本名称 RK_1MIC_3A_FOR_CALL_V2.0。 1.2 算法库类别 Linux1108 和 NDK。 该算法库仅限于 RK 平台使用。 1.3 算法库功能 单麦克风语音通话 3A 算法,包括回声消除 AEC、语音降噪 ANR 和自动增益控制 AGC 等。 回声消除 AEC 用于消除麦克采集到的扬声器播放的声音; 语音降噪 ANR 用于消除麦克采集到的环境噪音; 自动增益控制 AGC 则用于压缩信号幅度的动态范围,避免信号过小导致响度较小,也 可避免信号过大,导致削顶失真,即可以起到提高小信号、压缩大信号的作用。 1.4 包含文件 2. 接口函数 该库的调用过程如下: 第一步,设置参数: 1
福州瑞芯微电子股份有限公司 该步骤用于对 3A 算法开放的音频参数进行设置,该参数的设置需要根据产品音频腔体、 器件特点以及使用需求等进行调整,使用时需要根据每个产品的特点设置参数,初步集成时 可使用默认参数,然后根据效果调整参数。参数设置需要通过 VOICE_参数设置文件夹中 RK_VoiceSetPara.c 文件单独在 PC 机上建立工程,配置参数,配置好的参数保存为 RK_VoicePara.bin 文件,将该文件放置平台系统目录下,将该文件路径名作为初始化的输 入参数。 第二步,初始化: 该步骤用于通话开启后,逐帧处理声音信号前。初始化接口函数名为 RK_VOICE_Init, 其输入参数为第一步在 PC 机上生成的参数文件路径名,初始化完成算法内部参数初始化和 相关内存申请,若初始化成功则返回 0,否则返回其他错误码值,如果初始化失败,将导致 第三步逐帧处理异常。 第三步,帧处理: 该步骤即是实时处理通话语音信号,其单位为帧,固定每帧 16ms 的样点,例如 16k 采样时,每帧 256 个样点。帧处理包括两个接口函数,即录音处理 RK_VOICE_ProcessTx 和播放处理 RK_VOICE_ProcessRx,录音处理用于处理麦克风采集的数据,处理后结果 经网络发向对端;播放处理用于处理网络接收语音,处理后送往扬声器进行播放。 第四步,系统释放: 该步骤用于通话结束后,接口函数为 RK_VOICE_Destory,释放 3A 算法内存变量。 2.1 设置参数 参数设置本应该通过调试工具实现,由于客户使用较急,以及当前公司内部开发资源调 配,当前 2.0 版本采用提供配置参数 c 代码,客户在 PC 机上通过建立 VC 工程,可实现对 参数的配置,参数配置后保存为 RK_VoicePara.bin 文件;后续将会提供对应的可视化调 试工具。 参数的配置方法在 RK_VoiceSetPara.c 以及本文档最后一章节有详细说明。 2.2 初始化 函数名称:int RK_VOICE_Init(char *pchParaFile) 函数名称:初始化接口函数 2
福州瑞芯微电子股份有限公司 函数功能:完成3A处理初始化,包括参数配置,内存申请等 函数输入: pchParaFile ------ 参数bin文件输入路径,如"/para/RK_VoicePara.bin" 函数输出: 3A初始化完成 函数返回: 初始化成功状态: 0 表示初始化成功 其他 表示初始化失败 2.3 帧处理 (1)麦克录音信号即 TX 处理 函数名称:void RK_VOICE_ProcessTx(short int *pshwIn, short int short int int *pshwRef, *pshwOut, swFrmLen); 函数功能:完成上行信号逐帧处理 函数输入:pshwIn ------ 麦克输入信号指针 pshwRef ------ 用于回声消除参考信号指针 swFrmLen ------ 输入该帧信号采样点数,注意:8k 采样,固定值 128; 16k 采样,固定值 256 函数输出:pshwOut ------ 上行处理后信号指针 (2)网侧播放信号即 RX 处理 函数名称:void RK_VOICE_ProcessRx(short int *pshwIn, short int int *pshwOut, swFrmLen) 函数功能:完成下行信号逐帧处理,处理后送往扬声器 函数输入:pshwIn ------ 远端(网络侧)输入信号指针 swFrmLen ------ 输入该帧信号采样点数,注意:8k 采样,固定值 128; 3
福州瑞芯微电子股份有限公司 16k 采样,固定值 256 函数输出:pshwOut ------ 下行处理后信号指针 2.4 系统释放 函数名称:void RK_VOICE_Destory () 函数功能:用于通话结束后,释放算法系统内存 参数说明:无 使用方法:RK_VOICE_Destory () 注意事项:在通话结束后调用,与 RK_VOICE_Init()对应。 3. 测试数据勾取方法 算法是否集成正确、算法是否满足要求以及如何调整算法参数,这需要能够将通话中实 际运行的输入输出数据勾取出来,然后进行观察,如观察时延,观察回声大小以及非线性程 度,根据观察结果调试参数,或者将勾取数据提给 RK 相关人员进行算法仿真,也可以给出 结论和调整后的参数。  数据勾取位置 勾取数据时,需要勾取 4 个地方的数据,录音处理函数 RK_VOICE_ProcessTx 的输 入和输出(输入为麦克录音数据、回声消除参考数据;输出为 TX 处理后信号);播放处理 函数 RK_VOICE_ProcessRx 的输入和输出(输入为网络侧解码语音数据;输出为 RX 处 理后信号)。  数据勾取注意 1) 通话两方一个叫近端,一个叫远端,近端我们通常指的是测试这一端。 2) 通话两端不要互相干扰,要离的足够远,或者完全隔音,否则声音会互相串扰,自激, 而且也不符合通话场景; 3) 尽量保证远端处理是好的,如果远端回声处理有问题,这样也会互相串扰,这个远端可 以是固定电话,也可以扬声器改成很小的音量,或者扬声器静音; 4) 一次通话尽量快速录三种场景数据,即 PASS 态,单讲态,还有双讲态,pass 指的是 仅有近端说话,单讲指的是仅有远端说话,双讲指的是远近端同时都说话; 5) 一次录音数据不要太长,几十秒到几分钟相对比较合适; 4
6) 勾取的各个位置的语音数据时间要是同步的。 4. 参数调试说明 福州瑞芯微电子股份有限公司 参数文件需要通过参数工具配置生成,本版本已在 VOICE_参数文件目录下生成了一 些常用的参数文件,该目录下包括默认参数和备选参数,初步调试时可使用默认参数,然后 根据测试效果来选用备选参数,若均没有合适参数,则需要利用 VOICE_参数工具目录下 的.c 文件生成需要的参数文件。 参数的具体调试方法如下: 参数工具.c 文件中先会申请 500 个 short int 数据,并清 0。 4.1 总模块参数设置 总模块参数配置用于配置算法总体参数,可配置参数为 0 号参数,表示当前的采样率, 1 号到 9 号为预留参数。 /* -------- 总模块参数设置 -------- 参数序号:pshwPara[0]至 pshwPara[9] */ pshwPara[0] = 16000; /* INT16 Q0 采样率设置;当前仅支持 8000,16000 */ 4.2 回声消除参数设置 此模块用于配置回声消除模块,可配置参数为 10 号到 13 号参数,14 号参数到 99 号 参数为预留参数。 /* -------- AEC 参数设置 -------- 参数序号:pshwPara[10]至 pshwPara[99] */ pshwPara[10] = 1; /* 使能标志:延时估计使能 */ 该参数用于配置延时估计使能开关,当参考 ref 信号与麦克采集回声的相对时延不确定 时,可开启该功能,即参数置 1,需要说明的是,延时发生抖动和跳变时,延时估计需要一 定的时间才可以修正,该时间内可能会漏回声,因此,需要避免时延抖动;在集成时,建议 将时延做成固定延时,然后将该功能关闭。固定延时的一个很好的方法便是采用硬件回采的 方式,即使用 ADC 将扬声器即将输出的模拟信号,与麦克采集信号同步采集送进算法,回 采的信号即为回声消除参考信号,这样回声参考信号与麦克采集的回声相对时延则基本保持 5
分享到:
收藏