PXVF3000-KIT_dsp_描述
阅读前确认
用户需要确认一下内容,以方便阅读下文
- 已拥有了PXVF3000-KIT
- 已获取到PXVF3000-KIT的资料包
- 已能够进行使用dfu_usb和vfvtrl_usb工具,
- 已详细了解XMOS 的XVF3000-3100-DSP-Databrief文档
- 已详细了XVF3000 内置的前端算法AEC , BF , NS, AGC等
下文将不再对XVF3000-3100-DSP-Databrief里的专业术语进行解释,重点是描述DSP参数的意义和数值的方向
PXVF3000-KIT DSP 初始参数
PXVF3000-KIT 使用XVF3000-3100-DSP-Databrief的默认参数,可以通过查阅文档和使用vfctrl_usb 可以读取PXVF3000-KIT的DSP参数。且PXVF3000-KIT每次重新上电,所有DSP 参数都重置为初始值
vfctrl_usb HPFONOFF
其重新上电后首次打印输出的内容为初始值,
HPFONOFF:1
其他参数使用vfctrl_usb工具读取方式同理
查阅文档XVF3000-3100-DSP-Databrief的从page 15开始的参数描述中可以获取初始参数
DSP 参数写入和认证
使用vfctrl_usb 工具进行写入DSP 参数,如键入指令:
vfctrl_usb HPFONOFF 2
PXVF3000-KIT可以实时更改HPFONOFF参数为2,并且打印输出如下,
HPFONOFF:2
键入指令时需要注意空格的输入,同时查阅XVF3000-3100-DSP-Databrief里HPFONOFF描述的的范围为[0..3] ,其值的类型为INT型(整数型)。 确认写入完成了后,可以使用audaciy或者其他录音软件实时查看vfctril_usb工具修改DSP参数的效果。同时建议使用系统声卡监听功能进行实时侦听修改效果。使用3.5mm耳机插入PC电脑的耳机孔后,参考下图,进行如下操作,
- 在录音栏项,右键 XMOS VocalFusion Spk(UAC1.0) -> 点击属性
- 选中侦听此设备
- 在通过此设备中播放下拉栏中->选择PC电脑内置的播放声卡
- 必须使用耳机插入PC的3.5mm耳机口进行侦听,否正会产生啸叫
DSP 参数简单介绍
HP 高通滤波
XVF3000-3100-DSP-Databrief文档描述的高通滤波器仅有一组参数HPFONOFF,其最高值为是180Hz,如将PXVF3000-KIT作为会议设备(Comms输出)使用,建议设置HPFONOFF为3。如作为语音识别(ASR),该值可以使用初始值
vfctrl_usb HPFONOFF 3
AEC 回音消除
PC电脑将XMOS VocalFusion Spk(UAC 1.0)作为播放设备时,电脑声音播放则通过PXVF3000-KIT Line-out接口(3.5mm耳机孔)播放输出,后级需要接一个有源音箱,并且有源音箱是必须是线性放大,不能存在EQ处理。 PXVF3000-KIT的AEC ref参考信号则由UAC1.0播放时,经过XVF3000就已经拷贝AEC参考信号提供给XVF3000 的AEC 算法模块。
AECFREEZEONOFF
查看到AECFREEZEONOFF的初始值为0,意味着改变有源音箱到PXVF3000-KIT的距离或者路径,XVF3000的AEC性能可以通过少些时间自适应恢复。如产品已经有结构,并且保持了音箱(喇叭)和XVF3000 4路麦克风相对位置没有任何改变,可以设置为1,以确保产品的AEC性能
vfctrl_usb AECFREEZEONOFF 1
AECFREEZEONOFF与AECPATHCHANGE参数有关联,如XVF3000检测到音箱(喇叭)和XVF3000 4路麦克风相对位置已改变,明显出现的现象是AEC性能很差,可以使用vfctrl_usb读出AECPATHCHANGE 为1时,则说明位置已改变。
ACE 其他
其他参数需要结合产品接口调整,如作为简单测试,则兼容PXVF3000-KIT无需调整其他参数 需要了解XVF3000的AEC性能最高为50dB抑制,确保喇叭的声压到达PXVF3000-KIT的尽量小于100dBA, 如超过该值,则大概会有50dB以上的回音残余在输出的信号中,50dB以上残余回音 较为容易被人耳辨识出来。
AGC 自动增益
AGCONOFF为AGC的总开关,初始值为1。使用vfctrl_usb工具能够实时读出AGC的增益值AGCGAIN,同时能够修改实时写入修改AGCGAIN的值。
vfctrl_usb AGCGAIN
vfctrl_usb AGCGAIN 100
AGCGAIN的值为实时变化,其主要是围绕着AGCDESIREDLEVEL这个参数。
AGCDESIREDLEVEL
AGC重点的调试DSP参数为AGCDESIREDLEVEL,该参数的值决定了ASR / Comms output的整体水平大小,值的选取同时也决定了拾音距离。
设置AGCDESIREDLEVEL的值为整体ASR / Comms output的信噪比不变,即输出的人声和噪声比例保持线性不变,同时增大,所以建议AGCDESIREDLEVEL不能设置太大,避免引入过大的噪声。 使用AGCMAXGAIN作为AGC的阈值能够限制AGC无限增大,避免ASR/Comms output的过大,出现截幅和失真。
NS 噪声抑制
STATNOISEONOFF为稳态噪声抑制开关,初始值为1。STATNOISEONOFF设置为1时,GAMMA_NS 和MIN_NS的调整有效。
NONSTATNOISEONOFF为非稳态噪声抑制开关,主要是对非规律性或者突如其来的噪声抑制,初始值为1。STATNOISEONOFF设置为1时,GAMMA_NN 和MIN_NN的调整有效。
GAMMA_NS和GAMMA_NN
GAMMA_NS和GAMMA_NN这两个参数的值的范围为[0.0 .. 3.0] ,可以理解为评估环境的稳态或者非稳态的噪声量最大值3.0。设置改参数的值,即提供相应比例的噪声量给MIN_NS和MIN_NN设值来实现噪声抑制。
通常建议参数GAMMA_NS和GAMMA_NN的值不能设置太大,提供过多的噪声量,往往会使得ASR/Comms输出的声音过于失真,扭曲过大。
MIN_NS和MIN_NN
MIN_NS和MIN_NN 可以理解为需要把ASR/Comms output的环境噪声抑制到一个目标底噪,取值范围为[0.0 .. 1.0],其值越小,则ASR/Comms output的底噪越小。 该参数受前面参数GAMMA_NS和GAMMA_NN影响,如提供出来的噪声量越多,则MIN_NS和MIN_NN 更容易实现目标值(目标底噪)。
通常建议参数MIN_NS和MIN_NN的值不能设置太小,过度的噪声抑制,往往会使得ASR/Comms输出的声音过于失真,扭曲过大。
ASR 参数
DSP参数带有“SR”部分的仅针对ASR信号输出的调试有效,其他基础的参数和Comms信号输出共用。