GX8008C_Wukong-Prime_V1.1 开发板用户指南
概述
文档详细介绍了 GX8008C Wukong-Prime V1.1 方案,包括 USB 相关协议、方案 设计、固件烧写和方案板的使用流程等。
硬件方案
概述
GX8008C_Wukong-Prime(简称 Prime)是面向语音前端处理应用而设计的 方案,运行离线的 demo 程序后可进行基本的本地语音交互。Prime 平台具有如 下功能特点:
- 1)2 路驻极体麦克风
- 2)1 个 BOOT 功能按键
- 3)1 个 RGB 3 色 LED
- 4)USB 2.0 Device 接口
- 5)1 个 UART 调试端口
- 6)1 路 Audio out
- 7)I2C、UART、I2S/SPI 等多个功能预留 IO 口
方案设计简介
电源
主设备 USB 接口供电或者 5V 适配器供电
存储器
SPI NOR Flash:单颗 2MByte ~ 16MByte(16Mbit ~ 128Mbit)
音频
输入音频:UAC 采用 2 路驻极体模拟麦克风输入方案 输出音频:LODAC 输出到扬声器或者 UART、I2S 输出
数据通道
USB:一路 USB Device 接口(可用于传输数据、时钟同步和下载程序等)
MIC 阵列
方案采用 2 路模拟 MIC 输入,板外式驻极体麦,两个麦克风间距建议 40mm。 GX8008C 最多支持 4 路 MIC。
调试接口
串口:2 路 MCU UART,UART1 用于 MCU 调试,UART0 用于设备间通信; 1 路 DSP UART_TX。
LED 阵列
GX8008C 支持多种型号的 LED Driver IC,通过 I2C 接口控制 LED 阵列。本方案配有 1 颗 RGB LED,通过 IO 口控制。若采用 LED 阵列方案,可以通过 I2C接 LED IC,最多 12 颗 RGB LED。GX8008C 有两路 I2C。
Audio out
Prime 板配有一路 Audio out 方便开发。对于 GX8008C 外接扬声器的产品方案,可以采用此方式,如图 2、图 3;对于 GX8008C 只做语音处理功能,主控带 Audio out 的产品方案,这部分可不用,通过 UART0 将 GX8008C 的音频数据传到主控处理播放,如图 4。对于不同的应用场景,可灵活选择。
GX8008C Wukong-Prime V1.1 平台实物图
电源接法
在图 5 中,通过 USB 线将 UAC 的 USB 口接到 USB HOST 即可上电。
串口接法
将图 6 黑色接线口凸起朝上与图 5 的 UART 连接(红色线靠右),上电后即 可在主机的/dev 目录下看到串口设备节点。
软件方案
概述
GX8008C_Wukong-Prime 是主要用作语音前端处理模块,能实现 AEC、 BeamForming 和 Wakeup 功能。启动 Prime 板,运行 demo 程序,可进行基本的唤醒识别。
VSP(语音前处理系统)运行在 MCU、DSP 和 NPU 上。主要完成语音信号处理,比如降噪、去混响、回声消除、波束合成、特征提取、激活词识别等。实现了原始语音数据采集、系统的启动和初始化、系统状态检测、系统功耗控制、LED 效果等功能。VSP 在设计之初就兼顾考虑了语音信号处理的运算特点、硬件模块的特点、NPU 和 DSP 处理器的特点,并在很大程度上对算法实现的便利性、内存使用效率、处理器性能和系统功耗进行了充分的优化。
当前方案支持以下功能:
- 支持 USB 即插即用
- 最多支持录制 6 路麦克风数据
- 通过唤醒词触发唤醒状态
- 支持 HID 和 USB 串口
- 通过按键进入静音状态
协议介绍
USB-UAC
UAC(USB Audio Class)一种通用数据接口,可以有很多种实现数字音频数据传输的方式。不同的开发者可以根据自己的喜好和需求,定义任意的控制方式,传输模 式,音频格式等等参数。
USB 非常适合作为以 PC 为平台的音频(包括语音和音乐等)传输协议,USB 接口拥有远远高于音频需求的带宽,可以传输高品质(高采样率、多声道)的音频数据。因此,例如录音和音乐播放等音频功能都可以很容易在 USB 接口实现。
音频流被打包成 USB 数据包(USB packets)在 USB 总线上传送。每个数据包只能包含整数个音频流数据。 USB 支持的四种传输机制: 控制传输,中断传输,块传输,同步传输(等时输), 如图 4。
UAC 方案采用等时传输,该类型有要求数据的及时性、传输大量数据和速率恒定等 特点,故适合用于音频系统。
USB-HID
HID(Human Interface Device)属于人机交互操作的设备,是 USB 设备中常用的设备类型。例如 USB 键盘、USB 鼠标与游戏杆等。
当插入 USB 设备后,主机会向设备请求各种描述符来识别设备。为了把一个设备识 别为 HID 类,设备在定义描述符的时候必须遵守 HID 规范。HID 设备的描述符除了五个 USB 的标准描述符(设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符)外,还包括三个 HID 设备类特定描述符:HID 描述符、报告描述符、物理描述符。所有的 HID 设备通过 USB 的控制管道和中断管道与主机通信。
描述符之间有一定的关系,一个设备只有一个设备描述符,而一个设备描述符可以包含多个配置描述符,而一个配置描述符可以包含多个接口描述符,一个接口使用了几个端点,就有几个端点描述符。USB 的描述符之间的关系是一层一层的,最上一层是设备描述符,下面是配置描述符,再下面是接口描述符,再下面是端点描述符。
PLC 方案
PLC(Programmable Logic Controller)可编程逻辑控制器,以这个词命名我们的方案是因为它可以根据DSP处理语音信号输出的KWS值和输出算法语音做一些可编程的逻辑控制,来满足不同的产品方案的需求。
PLC 方案支持以下功能:
1)UAC 录音功能;
2)向主机发送 HID 键值功能。PLC 方案兼容 UAC 方案的一些功能,包括 HID 键值发送和声卡录音功能,去除了声卡的输出功能;
3)支持低功耗模式。PLC 方案还支持低功耗,可以应用于语音前处理控制模块对功耗有要求的产品方案。
4)主激活词二次唤醒功能。
5)本地语音播报功能。本地语音播报功能包括主动播报和被动播报。主动 播报是 MCU 收到 DSP 处理完的数据,如果有唤醒事件,MCU 会主动播报唤醒 事件对应的播报语音。被动播报一般应用于从设备模块,8008C 与上位机通过串 口交互,串口通信协议可以使用我们的公用协议也可以自定义。一般处理流程是 DSP 处理完数据后,会发送给 MCU,MCU 判断是否有唤醒事件发生,如果有 唤醒事件发生,会通过串口发送消息数据给上位机,8008C 等待上位机返回的串 口数据,解析后播放相应的语音数据。目前支持 MP3 格式和 16K、8K,单通道,16Bit 的 WAV 数据。
6)串口、I2S 发送音频数据;
有些方案需要 8008C 芯片 DSP 做语音前处理后的音频数据,PLC 方案支持 将 DSP 经过语音算法处理后的数据或者经过 OPUS、Speex 编码后的数据通过串 口和 I2S 发送给上位机做二次语音处理,比如 ASR,来实现一些语音前处理模块 的产品方案。
我们会提供一个带本地语音播报的 demo 给用户演示体验。固件和烧写在固 件烧写部分介绍。
CODEC 方案
CODEC 方案中把 GX8008C 充当音频解码芯片,在该方案中音频数据传输 方式有以下几种:
通过 ADC 从 HOST 接受音频数据,经过 DSP 处理过后,然后通过 DAC 播 出。
将 DSP 算法处理过的音频数据以及 VAD、KWS 信号通过 I2S 接口或 UART 发送到 HOST 端。
支持从麦克风采集环境音频,经过芯片 DSP 语音算法前端处理,产生处理 后的语音信号,并通过音频接口输出到其他设备。