作者:舅舅家123_204 | 来源:互联网 | 2024-12-17 11:03
本文旨在帮助初学者快速掌握TWEN-ASR ONE开发板的基本使用方法,通过实践运行第一个语音识别程序,加深对语音识别技术的理解。
1. 前言
语音识别技术在现代智能设备中应用广泛,如智能音箱、智能家居等。然而,许多商用语音识别模块存在一些限制,例如固定的唤醒词、有限的离线功能等。TWEN-ASR ONE开发板提供了一种灵活的解决方案,允许用户自定义唤醒词、离线控制功能,并且支持快速编程。本文将使用TWEN-ASR ONE V1.0开发板,演示如何运行第一个语音识别程序。
2. TWEN-ASR开发板介绍
TWEN-ASR ONE开发板集成了多种功能,包括RGB灯、26个IO引脚、外接喇叭和麦克风,适合快速验证语音产品的功能。开发板内置了脑神经网络处理器(BNPU),支持200条命令词以内的本地语音识别,同时具备高性能低功耗的Audio Codec模块和丰富的外围控制接口(UART、IIC、SPI、PWM、GPIO等)。这些特性使得TWEN-ASR ONE成为开发高性价比单芯片智能语音产品的理想选择。
3. 程序编写、下载、调试
3.1 安装开发软件
首先,需要安装天问Block开发软件。天问Block支持图形化编程和字符编程,安装完成后选择设备为TWEN-ASR。如下图所示:
3.2 程序编写
打开示例代码“1.第一个语音识别程序.hd”,默认为图形化编程模式。程序分为初始化和ASR_CODE两部分,初始化部分在上电时运行一次,ASR_CODE部分则循环运行。
3.2.1 图形化代码
从代码可以看出,初始化部分包括播报音设置、欢迎词设置、退出语音设置、唤醒词设置和命令词设置。具体步骤如下:
- 播报音设置:选择不同的男声或女声,设置音量和语速。
- 欢迎词设置:设置上电时的播报内容。
- 退出语音设置:设置长时间无操作后的退出语音。
- 唤醒词设置:设置唤醒模块的关键词。
- 命令词设置:设置唤醒后识别的命令词。
3.2.2 字符代码
#include "asr.h"
#include "setup.h"
uint32_t snid;
void ASR_CODE() {
if (snid == 4) {
digitalWrite(13, 1);
}
if (snid == 6) {
digitalWrite(13, 0);
}
}
void setup() {
// 设置播报音
// {speak:小蝶-清新女声, vol:10, speed:10}
// 设置欢迎词
// {playid:10001, voice:欢迎使用智能管家,用智能管家唤醒我。}
// 设置退出语音
// {playid:10002, voice:我退下了,用智能管家唤醒我}
// 设置唤醒词
// {ID:2, keyword:"唤醒词", ASR:"智能管家", ASRTO:"我在"}
// 设置命令词
// {ID:4, keyword:"命令词", ASR:"打开红灯", ASRTO:"好的,马上打开红灯"}
// {ID:6, keyword:"命令词", ASR:"关闭红灯", ASRTO:"好的,马上关闭红灯"}
}
上述代码实现了语音识别到“打开红灯”时点亮红灯,识别到“关闭红灯”时熄灭红灯的功能。RGB灯的控制电路如下图所示:
3.3 程序下载
确保线路连接正常后,生成模型并编译下载。首次下载可能需要3分钟左右,耐心等待。下载完成后,开发板会播报欢迎词。
4. 运行测试
程序下载完成后,开发板会播报欢迎词:“欢迎使用智能管家,用智能管家唤醒我。”
用户:智能管家
ASR:我在
用户:打开红灯
ASR:好的,马上打开红灯
用户:关闭红灯
ASR:好的,马上关闭红灯
语音识别反应迅速,即使在声音较小的情况下也能准确识别。第一个程序实现了语音控制红灯的开关,效果良好。
5. 总结
本文介绍了如何使用TWEN-ASR ONE开发板实现语音识别功能,并通过控制红灯的开关进行了实际测试。整个过程相对简单,图形化编程直观易懂,适合初学者。字符代码则提供了更多的灵活性,方便进阶学习。TWEN-ASR ONE开发板支持自定义欢迎词、退出语音、命令词和唤醒词,还提供了多种声音、音量和语速的选择,满足了DIY爱好者的需求。
参考文献:
[1] TWen-ASR-ONE 快速上手说明 V1.0 (twen_asr.pdf)