Skip to main content

P3510-2MIC_硬件使用

概要

P3510-2MIC是针对XMOS的XK-XVF3510-L71 开发板的硬件升级,优化了硬件设计及布局,更加适合用户直接使用和项目评估。完全兼容XMOS的XK-XVF3510-L71 开发板,所用的DSP芯片为XVF3510.pdf)。XMOS最新更新发布的XVF3510的UA固件完全适用于P3510-2MIC。

P3510-2MIC为2麦阵列设备,作为前端信号处理,实现语音增强,可同时输出两路前端处理后的声音信号,且其分别为用于语音识别(ASR,Automatic Speech Recognition )和用于会议电话(Comms, communication and conferencing)。支持使用USB Audio Class 1协议(UAC1.0)传输音频 ,支持所有流行的操作系统(Windows , MAC, Linux和Android),允许作为USB声卡设备枚举接入操作系统中。

P3510-2MIC内置了立体声回音消除(AEC) , 点噪消除(IC),噪声抑制(NS)和自动增益(AGC)算法,非常有效地实现在远距离和嘈杂环境提高语音识别率和通话质量。使用USB 接口快速接入各种操作系统,同时配套提供了多套固件,非常适用用户迅速接入语音产品中。

版本

产品版本修改发布时间
P3510-2MIC V1初次发布2020年10月15日

特点

  • 远距离拾音

  • 支持USB Audio Class 1.0 (UAC 1.0)

  • 支持USB HID 调试

  • 2路麦克风阵列

  • 支持3.5mm耳机孔作为模拟AEC参考信号

  • DSP 算法和特点

    · Voice Activity Detection(VAD)

    · Full duplex, stereo, Acoustic Echo Cancellation(AEC)

    · The Automatic Delay Estimation Control (ADEC)

    · Interference Cancellation (IC)

    · Noise Suppression (NS)

    · Automatic Gain Control (AGC)

规格

  • XMOS XVF3510 主控,内置2麦阵列算法

  • 2路PDM 数字麦克风:MSM261D4030H1AP

    · Sensitivity: -26 dBFS (Omnidirectional)

    · Acoustic overload point: 120 dBSPL

    · SNR: 64 dBA

  • 供电:USB 5V 或者FPC 端子

  • 尺寸:90mmx18mm

  • 模拟AEC参考信号输入

    · ADC: AKM AK5720

    · 3.5mm耳机孔

  • 音频传输:

    · USB UAC 1.0 输入输出,AEC可选使用3.5mm耳机孔模拟输入

    · 采样率:16KHz/48KHz(默认)

  • 功耗: 5V, 130mA (Max)

硬件概述

  • XMOS DSP :XVF3510 主控,集成了UAC1.0和2MIC阵列算法,包含了立体声回音消除(AEC) , 点噪消除(IC),噪声抑制(NS)和自动增益(AGC)算法
  • Micro USB : 提供5V电源,并且传输音频和固件更新,调试
  • ADC AK5720:外接AEC模拟参考信号时,通过I2S传输参考信号给XVF3510(如果AEC 参考信号不是通过USB提供时使用)
  • Flash AT25SF161:存储XVF3510的固件及数据分区
  • FPC Header: 作为代替了Micro USB端子选项,10Pin,包含了USB引脚,AEC Ref. ,Mute,Reset等。如使用了Micro USB连接操作系统,则无需使用FPC Header

系统连接框图

引脚映射

FPC Header一般使用不上,因为已经有了Micro USB端子和3.5mm耳机输入端子,FPC Header作为高级选项使用,以便代替Micro USB端子和3.5mm耳机端子,以及要用到Mute和RST时使用

XMOS JTAG一般使用不上,因为用户需要购买拥有XMOS 专用调试工具XTAG3,且在需要深入开发XVF3510内部固件及factocy烧录时使用

尺寸

应用场合

  • 导航机器人(ASR)
  • 医疗设备(ASR)
  • 健身设备(ASR)
  • 大屏广告机(ASR)
  • 授课直播(Comms)
  • 摄像头麦克风(Comms)

开始

第一个Demo

通常情况下,用户拿到P3510-2MIC PCBA板后,建议先在Windows系统做初步认证。使用Micro USB 数据线来连接P3510-2MIC和Windows系统电脑,需要做初步设置和确认。

声卡设备设置

确认Windows设备管理器已经成功枚举了P3510-2MIC,并且打开声音控制面板进行设置

在声音界面进行设置和确认

  1. 在“播放”栏项,设置电脑自带播放声卡为默认设备(电脑自带的扬声器来播放声音)

  2. 在“录制”栏项,右键选择显示禁用的设备,然后右键点击立体声混音启用后并且再选择设置为默认设备

  3. 双击立体声混音来打开它的属性窗口,或者右键点击“立体声混音”的“属性”进入属性窗口。

  4. 在“侦听“栏项,勾选框中勾选侦听此设备

  5. 在“通过此设备播放的”的下拉选项中,选择XVF3510(UAC1.0)Adaptive,点击右下角的应用确认按键即可完成设置。

注意

如果没有录制->立体声混音,可以升级一下声卡驱动,在录制栏目,选择显示禁用的设备;右击立体声混音;选择启用

由于P3510-2MIC没有播放输出的3.5mm耳机孔,需要将操作系统的默认声卡作为播放输出声卡设备

其他操作系统如MAC OSX和Linux操作系统用法跟Windows类似,文中引用XMOS文档XVF3510 Dev Kit Quick Start_en.pdf进行说明

  1. Open Audio MIDI setup.
  2. Click + symbol to add a new device; select Create MultiOutput Device.
  3. Select Built-in Output and XVF3510 device.
  4. Select new Multi-Output Device in device list.
  5. Click at bottom of window to open Options menu; select Use This Device For Sound Output.
  6. Select XVF3510 from Master Device drop-down list.
  7. Select Drift Correction for Built-in Output.
  8. Close Audio Devices window.

录制和Demo

使用Audacity,如无法访问网站,请在这里下载录音软件在Windows系统进行录音设置,接着使用Audacity录音。

如图所示,P3510-2MIC配套默认固件USB 输出为2ch 立体声的 48KHz采样率声音信号,其中:

ch0为ASR输出,属于前端减噪和语音增强的音频输出,提供给语音识别云端引擎进行识别使用;

ch1为Comms输出,属于前端减噪和语音增强的音频输出,为用户进行会议语音通话使用;

通常windows操作系统中会默认使用ch0声音信号作为系统麦克风声卡,用于ASR语音识别引擎,类似微软的小娜。并且用于P3510-2MIC的ASR声音信号处理需保留极高的人声频谱,以确保语音识别的高识别率。

固件和升级

如果P3510-2MIC的出厂默认固件满足不了用户的配置需求,可以在Firmware固件列表中选择其他配套的固件,使用配套提供的dfu_usb工具(Device Firmware Update)进行更新固件。

安装驱动

在Windows系统:

P3510-2MIC在操作系统中都能免安装驱动并且识别成XVF3510 (UAC1.0) Adaptive作为UAC1.0声卡输入输出,即P3510-2MIC使用USB传输音频时,是不需要安装任何声卡驱动的。如图所示的音频输入和输出->XVF3510 (UAC1.0) Adaptive的设备枚举。

如果需要对P3510-2MIC进行DSP参数调整和固件更新时,Windows系统中的设备管理器显示的XMOS Control需要安装驱动,才能使用的dfu_usb工具进行更新P3510-2MIC固件和使用vfcrtl_usb工具进行DSP 参数控制。推荐使用工具zadig点击下载)对XMOS Control进行USB驱动安装。运行zadig,按照以下步骤进行:

  1. 在下拉列表中选择 XMOS Control (Interface 3)

  2. 在Driver的第二项,选择lbusb-win2(v1.2.6.0)

  3. 单击 Install Driver进行确认安装

注意

Linux系统:不需要安装XMOS Contorl驱动

Mac 系统:不需要安装XMOS Contorl驱动

固件列表

P3510-2MIC配套提供了4个固件,主要是AEC的参考信号提供方式和USB输出音频采样率作为区别,参考下表。

如配套的固件仍未满足使用,用户可以自行自制固件进行更新。

IDFirmware采样率Description
1data_xvf3510_usb_aec_ref_48K_v4_4_0.dfu48000Hz出厂默认固件,使用USB输入输出,同时使用USB提供AEC参考信号,音频格式为48KHz采样率
2data_xvf3510_I2S_aec_ref_48K_v4_4_0.dfu48000Hz使用3.5mm耳机孔接入模拟参考信号,或者是FPC的AEC_R和AEC_L的作为参考信号,音频格式为48KHz采样率
3data_xvf3510_usb_aec_ref_16K_v4_4_0.dfu16000Hz使用USB输入输出,同时使用USB提供AEC参考信号,音频格式为16KHz采样率。
4data_xvf3510_I2S_aec_ref_16K_v4_4_0.dfu16000Hz使用3.5mm耳机孔接入模拟参考信号,或者是FPC的AEC_R和AEC_L的作为参考信号,音频格式为16KHz采样率。

DFU升级

使用配套的dfu_usb工具进行固件更新,在Windows系统打开cmd命令行终端工具,cd进入p3510/firmware的绝对路径,键入升级指令且加入所需的data_xxx.dfu固件运行升级,如下:

dfu_usb --vendor-id 0x20B1 --product-id 0x0014 write_upgrade boot.dfu data_xvf3510_usb_aec_ref_16K_v4_4_0.dfu

执行完之后,打印出以下信息代表固件DFU升级成功

poll timeout 0 msec
HAL: read command: GETSTATE (134), 4 bytes
write upgrade successful
HAL: reboot
HAL: write command: REBOOT (5), 0 bytes
注意

其他操作系统如MAC和Linux为使用Terminal,键入指令和打印的内容一致

深入使用

在现有的固件仍不能满足用户的现有的需求,可以尝试使用在P3510-2MIC配套提供XMOS官方的原始文件夹(XVF3510-UA-Unqualified-Release_4.4.0),进行在线调试和生成用户自值的DFU配置固件(data_xxx.dfu),而这些用户新的需求一般可以列为如下几个分类

  • 修改USB枚举信息,如USB 字符串,和USB的VID和PID
  • 修改DSP算法参数,如AGC增益,以更加吻合用户的使用环境,以达到更高的识别率和更远的距离
  • 修改USB输入输出的通道映射,如ch0和ch1都输出ASR信号,AEC的参考信号的提供方式
  • 修改输出音频采样率参数,如修改为16KHz/16bit的音频输出格式

在进行这一部分操作,用户需要认真阅读XMOS的文档资料[XVF3510-User-Guide_4.2] ,才能了解XVF3510的寄存器的参数,以便在线调试和生成DFU配置固件。并且下文描述内容跟XMOS提供的文档一致。

以下内容已经假设用户对麦克风阵列的DSP算法,已经有一定的了解,或者根据文档自行了解熟悉,并且了解其DSP参数和数值。或者另外参考我司文档P3510-2MIC_调试笔记 , 加深理解

Acoustic Echo Cancellation (AEC)

Automatic Delay Estimation & Control (ADEC)

Interference Cancellation (IC)

Voice Activity Detection (VAD)

Noise Suppression (NS)

Automatic Gain Control (AGC)

在线调试

确保P3510-2MIC的XMOS Control驱动已经安装(仅windows系统需要)

在windows系统,运行cmd,并且cd进入/p3510/XVF3510-UA-Unqualified-Release_4.4.0/host/Win32/bin的绝对路径,键入类似指令,便可进行在线调试。

键入以下命令,可以设置ch1音频输出为的AGC自动增益为自适应方式。其中vfctrl_usb工具通过USB接口实时对P3510-2MIC进行读写,用户根据自身再需要键入其他具体的命令。

vfctrl_usb SET_ADAPT_CH1_AGC 1

验证调试是否实时有效改变,可通过以下命令

vfctrl_usb GET_ADAPT_CH1_AGC

打印输出的信息如下:

GET_ADAPT_CH1_AGC: 1

更多的在线调试参数用户自行详细查看XMOS的文档资料XVF3510-User-Guide_4.2

其他操作系统则运行Terminal终端,cd进入对应路径的bin文件夹,并且执行同样的指令便可

注意

线调试的参数仅存在XVF310 RAM内存中, 断电即复位为默认值,如确实需要保存已调试的参数到flash中,需要生成DFU配置固件。

生成DFU自制固件

为了每次断电保存已调试的P3510-2MIC参数,用户需要生成自制的dfu配置固件才能生效。以下描述指引用户如何自行自制dfu固件。

安装python 3

生成DFU配置固件需要用到python 3工具(推荐v3.7 以上版本,Python 下载连接 http://python.org/downloads.

在Windows系统上需要自行配置Python的环境变量,运行cmd且键入python已确认是否python已经配置了环境变量。如果没有如下打印,在windows系统的,编辑系统环境变量->高级->环境变量->找到“path”后双击打开->新建->复制Python安装路径->保存确定。

python
Python 3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

生成步骤

在Windows系统上,用户需要根据自行调试P3510-2MIC的参数进行固化时,我们梳理了简易的生成步骤流程,整理出一个批处理文件,及其路径。

P3510-2MIC_user_define_dfu_upgrade_cmd.bat
路径:XVF3510-UA Unqualified Release_4.4.0/P3510-2MIC_user_define_dfu_upgrade_cmd.bat

先在user_define_xvf3510.txt(路径如下)文件编写上在线调试已确定的XVF3510 DSP参数

XVF3510-UA Unqualified Release_4.4.0/data-partition/input/user_define_xvf3510.txt

保存user_define_xvf3510.txt后,双击运行P3510-2MIC_user_define_dfu_upgrade_cmd.bat便可直接使用USB成功升级固件, 并且用户自制的固件名称为data_upgade_v440.dfu,其存放的路径为:

XVF3510-UA Unqualified Release_4.4.0\host\Win32\

自制固件批处理过程解析

如下内容如用户需要Linux搭建批处理文件时需要了解, 非必要, 可以不了解。

先初步了解批处理P3510-2MIC_user_define_dfu_upgrade_cmd.bat的内容如下:

cd data-partition

python xvf3510_data_partition_generator.py user_define_xvf3510.json

cd ../host/Win32/bin

dfu_suffix_generator.exe 0x20B1 0x0014 ..../../bin/app_xvf3510_ua_v4_4_0_xe_to_dfu.bin boot.dfu

dfu_suffix_generator.exe 0x20B1 0x0014 ..../../data-partition/output/data_partition_upgrade_user_define_xvf3510_v4_4_0.bin data_upgade_v440.dfu

dfu_usb.exe --vendor-id 0x20B1 --product-id 0x0014 write_upgrade boot.dfu data_upgade_v440.dfu

pause

同时查看user_define_xvf3510.json的内容, 其已指定访问相对路径”path“:"input/user_define_xvf3510.txt"

路径为:XVF3510-UA-Unqualified-Release_4.4.0/data-partition/user_define_xvf3510.json
{
"comment": "",
"spispec_path": "16mbit_12.5mhz_sector_4kb.spispec",
"regular_sector_size": "4096",
"hardware_build": "0xFFFFFFFF",
"item_files": [
{
"path": "input/user_define_xvf3510.txt",
"comment": ""
}
]
}

即用户在user_define_xvf3510.txt文件中填写在线调试已确认的XVF3510参数或者需要修改的USB描述信息,类似如下,保存并且关闭。

SET_DEVICE_TO_USB_RATE 16000
SET_IO_MAP 5 10
SET_IO_MAP 4 9

以下是P3510-2MIC_user_define_dfu_upgrade_cmd.bat执行步骤解析说明:

1 , 运行了如下指令, 便会生成输出文件data_partition_upgrade_user_define_xvf3510_v4_4_0.bin在/output/路径中。

python xvf3510_data_partition_generator.py user_define_xvf3510.json

2 , 使用dfu_suffix_generator工具利用上一步骤生成的bin文件进一步生成data_upgade_v440.dfu,这是dfu_usb升级最终需要的自制固件。生成boot.dfu固件同理。

Hint

dfu_suffix_generator工具是把用户固件和设定的USB的VID和PID信息进行交叉校验

其简化(路径)的执行的指令如下,其中 0x20B1 0x0014分别为USB VID和PID。

dfu_suffix_generator 0x20B1 0x0014 data_partition_upgrade_user_define_xvf3510_v4_4_0.bin data_upgade_v440.dfu

3 , 利用上述生成的两个固件, 通过dfu_usb工具进行DFU升级固件,

boot.dfu
data_upgade_v440.dfu

其简化(路径)的运行指令如下,其中 0x20B1 0x0014分别为USB VID和PID。

dfu_usb --vendor-id 0x20B1 --product-id 0x0014 write_upgrade boot.dfu data_upgade_v440.dfu

在其他操作系统中,可以结合上文提供的Windows提供的批处理文件,制作类似Linux需要的shell脚本。

资源

P3510-2MIC.zip全部的资料(点击下载)(如链接无效,可向淘宝客服索要)

支持和商务

P3510-2MIC支持PCBA定制服务,提供批量PCBA和芯片供应服务。

任何的技术支持和商务合作,可以直接邮箱联系我们:mic@pawpaw.cn,或者访问www.pawpaw.cn了解更多。

FAQ

Q1: boot.dfu和data_xxx.dfu的区别?

boot.dfu是XVF3510的基础固件,内含DSP算法和控制等基础程序,data_xxx.dfu为配置固件,修改boot.dfu里面的参数。所以在DFU的时候,两个固件都需要添加进去

Q2: DFU更新完之后,在windows操作系统下使用audacity录制出错的原因

出现该问题仅是在Windows系统,其他操作系统Mac和Linux并不会存在这个情况。由于windows系统对声卡有记忆功能,DFU固件了后,可能改变了与之前声卡的记忆,导致了使用第三方软件如audacity无法录制音频,这时需要使用usbdeview进行删除Windows的对声卡的记忆。

USB连上P3510-2MIC和windows PC,运行usbdeview,点击Connected栏项以列出XVF3510相关枚举情况;逐一选择XVF3510的枚举,右击后出现新的界面;选择Uninstall Selected Devices进行删除Windows的声卡的记忆;重新上电即可。

Q3: dfu_usb和vfctrl_usb显示could not find device和无法使用的原因?

确保USB连接了P3510-2MIC和PC,并且确保已经使用了zadig进行安装了XMOS Control的驱动。如果问题仍出现,尝试确认一下XMOS Control是否已经枚举,亦或者卸载XMOS Control驱动,并且使用zadig重新按照。

Q3: 有提供例程连接语音识别平台吗?

抱歉,这方面我们没有提供例程,类似Alexa和Aliyun等语音识别API,我们没有办法提供相关例程。

Q4: 把P3510-2MIC装上产品的结构外壳上,有哪些声学方面需要注意的吗?

我们建议使用裸板进行使用,这样的性能效果是最佳的,如果确实需要组装到产品结构上,我们建议在麦克风上(顶部拾音)加个密封胶套,以确保声音不进入到结构里面进行不断的反射形成混响。同时我们考虑在下个硬件版本配套提供密封胶套