XVF3000项目导入
阅读前确认
用户需要确认一下内容,以方便阅读下文
- 已拥有了PXVF3000-KIT
- 已详细了解XVF3000 内置的前端算法AEC , BF , NS, AGC等
- 已使用PXVF3000-KIT已经通过vfctrl_usb工具调试出理想的参数
- 已确认XMOS XVF3000 4路麦克风阵列方案性能可满足导入项目产品中
概要
使用XVF3000作为圆形4麦阵列方案的主控,需要了解硬件设计和软件设计,结合结构设计,才能使得产品顺利落地。并且根据我司现有的XMOS麦克风阵列方案,建议使用XVF3000来做桌面会议产品(Comms 方向)
如需要做语音识别(ASR方向)建议使用我们2麦阵列方案XVF3510方案。
XVF3000项目导入前,根据下文的描述需要了解以下几点:
- XVF3000的硬件框架的确定
- 熟悉USB的对产测和测试的作用
- XVF3000的固件获取, 烧录和更新
- XVF3000 DSP算法参数
- 麦克风阵列的外壳结构的声学设计
- XVF3000的产测需具备的设备和测试的流程
- XVF3000过认证需要提前准备的工作
XVF3000 硬件基本框架
XVF3000芯片基本特性如下:
- 商用温度等级(0 °C to 70 °C)
- TQ128 封装
- 580mA典型工作电流,700mW左右(固件运行)
- 内置了16Mbit QSPI Flash
- I/O 驱动能力为4mA
- 订购型号:XVF3000-TQ128-CA; 丝印:VSM01C
XVF3000 硬件系统最小系统如下图。XVF3000 圆形4路麦克风阵列根据音频传输接口的不同,大体分为如下三种硬件框架。用户根据项目需求选择其一,并且以确定硬件上是否需要设计ADC和DAC。
使用USB连接Host | USB_in&out
Host主机的音频传输都通过XVF3000的USB来输入输出,XVF3000作为一个USB Audio声卡设备,产品应用一般为外置的拾音设备。 其框架如下图,其中:
- XVF3000前端信号处理完后,提供干净的声音(Comms/ASR)给Host进行会议通话,通过USB接口输入给Host
- Host播放声音时通过USB声卡播放输出,XVF3000为声卡设备,XVF3000的AEC参考信号在USB协议音频传输过程中获取
- XVF3000 USB UAC1.0包含传输音频输入输出、vfctrl_usb和dfu_usb,UAC输入输出的音频格式为16KHz/48KHz
使用USB连接Host | Analog_ref
XVF3000通过USB输入声音给host主控,Host主控提供模拟AEC参考信号给XVF3000。
其框架如下图,其中:
- XVF3000前端信号处理完后,提供干净的声音(Comms/ASR)给Host进行会议通话,通过USB接口输入给Host
- Host提供播放声音的参考信号给XVF3000做回音消除的参考信号,ADC采集Host端的模拟声音传输给XVF3000
- XVF3000 USB UAC1.0包含传输音频输入、vfctrl_usb和dfu_usb,UAC输入的音频格式为16KHz/48KHz
使用I2S连接Host| I2S_in&out
该框图不常用,仅推荐XVF3000需要连接WiFi/蓝牙时使用,并且建议Host(无线模组)的I2S需要做I2S slave模式,因为XVF3000需要音频时钟做16KHz的音频算法处理
其框图如下图,其中:
- XVF3000前端信号处理完后,提供干净的声音(Comms/ASR)给Host进行会议通话,通过I2S接口输入给Host
- Host提供播放声音的参考信号给XVF3000做回音消除的参考信号,Host通过I2S传输给XVF3000
- I2S协议要求16KHz/48KHz 16bit,64fs, 标准I2S,其两路I2S共用时钟线MCLK,BCLK,LRCLK
- 预留USB接口,方便工程样机的调试和产测。
XVF3000 固件基本框架
ASR 和 Comms 的选择
XVF3000 固件麦克风阵列算法DSP 运行后,可同时提供两路前端处理后的声音信号输出,且其分别为用于语音识别(ASR,Automatic Speech Recognition )和用于会议电话(Comms, communication and conferencing)。用户根据产品需求,可以选择ASR信号和Comms信号同时输出,或者选择其中一个输出。
ASR ASR信号主要是用于语音识别,接入类似Alexa等各大语音识别引擎平台,做语音交互使用。ASR信号整体的特征是人声清晰,频谱比较丰满,降噪系数较小,以满足语音高识别率。
Comms Comms信号主要是用于会议通话使用,类似接入微软的teams, skype和企业微信或者钉钉等会议产品使用。Comms信号整体的特征是底噪比较小,由于降噪系数比较大,其频谱比较干净明显。
AEC参考信号选择
XVF3000仅支持mono(单声道)参考信号,固件中默认选择立体声中的右声道(Right channel)作为AEC的参考信号,所以产品中的喇叭建议使用1个喇叭,或者2个喇叭都由右声道(Right channel)输出。AEC回音消除所需要的参考信号有两种方式提供给XVF3000
选择 USB UAC 提供AEC参考信号
USB UAC作为声卡播放的时候,播放的声音信号经过XVF3000时,XVF3000已经copy了参考信号提供给AEC算法模块使用。但是,后级的DAC和功放都需要保持线性输出,喇叭播放出的声音不能有EQ处理。如有EQ处理,则喇叭播放出来的声音跟已提供的参考信号已经失去了线性的对比,结果会导致AEC性能发挥不好。
选择 I2S(ADC)模拟提供AEC参考信号
需要增加I2S接口接入数字参考信号或者增加ADC接入模拟参考信号提供给XVF3000 AEC算法模块使用。建议在功放前选择右声道信号提供给ADC。同理,功放后级不能有EQ处理。
烧录方式的选择
XVF3000芯片可以使用XMOS专用XTAG进行烧录,也可以使用QSPI flash 烧录器进行PCBA烧录和裸片烧录factory固件。同时可以通过dfu_usb工具更新dfu固件。根据产线实际情况,进行评估和选择。
木瓜电子通常会提供3种后缀命名的固件,分别为xxx.xe, xxx_factory.bin和xxx.dfu。这三者中,xxx.xe和xxx_factory.bin都统称为factory固件,xxx.dfu称为更新固件。其中
- xxx.xe固件由XMOS IDE编译生成,仅能通过XTAG调试工具烧录到XVF3000芯片,其烧录时间上,效率很低。
- xxx_factory.bin固件由xxx.xe通过XMOS IDE导出,仅能通过spi flash烧录器烧录,效率较高。
- xxx.dfu更新固件由xxx.xe通过XMOS IDE结合QSPI Flash型号信息来导出,仅能通过USB dfu_usb工具进行更新固件。更新固件后,需要重启XVF3000才会正常运作更新后的固件。
使用dfu_usb工具进行更新固件的前提是:XVF3000已经烧录了factory固件,XVF3000能够正常运作,USB能够在操作系统枚举成功,
xxx.xe的烧录方式
用户需要拥有XMOS的专用XTAG调试工具 ,并且下载和安装xTimecomposer IDE。 运行其Command prompt 工具,确保上电XVF3000硬件和接好XTAG,键入指令如下, Enter键后,查看XVF3000和XTAG是否握手成功
xflash -l
键入类似如下的XTAG指令,Enter键后烧录完毕即可
xflash xxx.xe
xxx_factory.bin的烧录方式
无论是XVF3000板载烧录还是裸片烧录,都需要留出XVF3000的flash point,以便spi flash烧录器能够访问XVF3000内置的QSPI Flash。同时需要确保XVF3000的3V3和1V0供电正常,并且XVF3000的RST_N引脚提前拉低,确保XVF3000在整个烧录过程处于复位状态
用户需要拥有支持QSPI Flash芯片的flash烧录器,在其上位机选择使用QE=1的烧录方式,操作参考下图:
- 检测芯片型号或者选择IS25LP016D(旧版本的XVF3000内置flash的信号为IS25LQ16B)
- 加载xxx_factoy.bin固件
- 打开配置选项
- 选择QE=1,后确定
- 勾选写入配置
- 开始烧录
固件开发
木瓜电子可以为用户提供factory固件和DFU更新固件,用户采购一些XVF3000样品,可以申请由木瓜电子预烧录factory固件,在样机阶段,都可以使用DFU进行更新固件。
如用户需要整个固件源代码,可以在XMOS官网下载,或者发邮件到mic@pawpaw.cn向木瓜电子申请。提供源代码之后,客户结合文件包内的文档和XMOS官方的文档自行编程,木瓜电子不考虑在XVF3000的代码问题上提供技术解答。
声学要求
XVF3000 圆形麦克风阵列的DSP性能跟声学和结构设计有很大关系。在硬件设计前,须提前先了解声学设计的要求。PDM MEMS麦克风有两种拾音孔,分为顶部拾音和底部拾音,这两种麦克风的声学电气特性几乎一致。XVF3000 算法对麦克风电气参数要求不高,通常选择的特性在如下范围左右即可
- Sensitivity: -26 dB FS
- SNR: 64 dBA
- AOP: 120 dB SPL
麦克风密封性
密封主要是为了确保麦克风的拾音孔仅在结构外壳的拾音腔孔获取外界的声音,避免声音进入到结构内部来回反射产生较严重的混响。声学设计参考下图
在硬件设计时,需要提前考虑麦克风的密封性的设计,通常产品是增加密封胶套来实现密封性能,并且在硬件上需要预留密封胶套的位置以吻合产品结构声学需求。
麦克风避震性
避震主要是为了喇叭播放声音时音腔产生的震动不传导到麦克风板,进而避免影响麦克风的拾音。建议在设计喇叭音腔跟麦克风有足够的距离,并且有绝对的隔绝。
麦克风声压
麦克风的AOP通常在120 dB左右,如果声音信号超过该值,则会导致麦克风拾音出现截幅,导致声音失真。
XVF3000的AEC性能做到最高50dB抑制,建议喇叭的声音在麦克风端录音不超过100dB。 如超过该值,则大概会有50dB以上的回音残余在输出的信号中,50dB以上残余回音 较为容易被人耳辨识出来。体现的结果是AEC性能不好
喇叭和麦克风尽量避免同一朝向,建议形成90度或者180度的朝向
麦克风一致性
4路麦克风拾音信号需要保持高一致性,在组装结构外壳是,需要统一录制4路麦克风原始信号,进行分析去一致性,重点是体现在幅值和频谱特性。
4路麦克风信号的一致性要求为整个XVF3000项目的基本要求,阵列麦克风才能发挥其应有的性能
产线测试
XVF3000导入试产量产阶段,须要确认产线具备XVF3000烧录以及录音测试。设计XVF3000烧录固件的治具,预留出的flash point能够访问XVF3000进行flash写入。建议使用6通道的固件, 确保4个麦克风正常运作,以及做信号一致性分析。
ch0:Comms; ch1:mic0; ch2:mic1; ch3:mic2; ch4:mic3; ch5: mono aec_ref
在确定无硬件问题之后,使用dfu_usb更新最终的1通道或者2通道的dfu固件以实现最终产品。
ch0:Comms; ch1:ASR
产品过认证
XVF3000解决方案能够通过Alexa 的ASR认证和微软的Skype等Comms认证。如产品确定需要过认证, 在产品处于basic版本时, 用户需要有足够熟悉和了解XVF3000 DSP的参数以及阵列的各项知识。根据认证产商的要求, 在产品调整XVF3000 DSP参数以实现过认证。由于每个产品的声学结构都会影响XVF3000 DSP参数的指示, 所以木瓜电子无法在认证方面提供XVF3000 的DSP 参考值,并且不参与整个过认证流程。