当前位置: 首页 > news >正文

走进离线语音:安信可 VC‑01 智能模块全面拆解与 MCU 实战

今天带大家认识一款性价比极高的中文语音识别模块——安可信VC-01智能语音识别模块。不仅适合AI初学者入门,也是嵌入式开发人员做语音控制项目的利器!本文将结合VC-01的官方规格书内容、功能特点,并结合MUC主控芯片(如STM32、ESP32)进行项目实战讲解。

一、什么是VC-01语音模块?

VC-01 是安可信(Acontech)推出的一款高性能、低功耗的离线语音识别模块,适合嵌入式语音交互应用。它最大的优势是:

  • 支持离线关键词识别
  • 无需联网即可实现语音控制
  • 支持多种命令词组定制
  • 语音识别响应时间快,抗干扰强
  • 支持UART串口通信,适配各种主控芯片

二、核心参数

参数描述
主芯片US516P6(32-bit RISC 内核,240 MHz,DSP 指令 & FPU + FFT 加速器)
存储2 MB Flash,242 KB SRAM
识别能力支持 150 条本地指令,唤醒距离达 5 m,识别率 ≥ 98%,响应时间 < 100 ms
音频性能单 MIC 输入,双通道 DAC 输出,内置 AEC 及降噪算法
接口UART、I²C、PWM、GPIO、SPI、DAC
工作电压3.6–5 V,电流 > 500 mA,温度范围 –40~85 ℃
外形尺寸模块体积约 25.5 × 24 × 3.2 mm,开发板约 42.2 × 35.6 mm

三、VC-01模块引脚定义

引脚功能说明
VCC电源(3.3V 或 5V)
GND
RXD接收串口数据(接主控TX)
TXD发送串口数据(接主控RX)
EN模块使能(低电平有效)
K1/K2/K3用户自定义按键输入(可触发语音识别)

安信可语音开发平台的使用

首先进入http://voice.ai-thinker.com

该网址进行注册后,显示该页面

之后点击左上角的创建产品,然后进入到下面页面

然后我们在选择产品类别,选择其他,接着进入下面该页面

我们选择纯离线方案,

然后选择VC-01模组,

之后写入我们产品名称,与语言,下面是我们写好的

点击保存

然后就来到语音配置界面

注意这里,我们应该选择为串口烧录,应该一般该模组没有ST-Link SWD烧录,所以选择为串口

接着下滑,我们就可以配置唤醒词自定义

到了这里,就是可以设置我们想要配置自己主控上的设备,下面给你们举个例子。

案例展示

我们首先先添加一条基础信息,

添加完这个基础信息后还要进行一个控制详情,就是以下图

基本就这样了,挺简单的,网上学习资料有很多,大家多多交流一下

四、STM32 控制代码(标准外设库实现)

1️⃣ 串口初始化代码(USART1)

void USART1_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);// PA9 = TX, PA10 = RXGPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); USART_InitTypeDef USART_InitStructure;USART_InitStructure.USART_BaudRate = 115200;USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;USART_Init(USART1, &USART_InitStructure);USART_Cmd(USART1, ENABLE);
}


 


2️⃣ 串口接收数据解析

uint8_t VC01_ReceiveBuffer[64];
uint8_t index = 0;
void USART1_IRQHandler(void)
{if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET){uint8_t data = USART_ReceiveData(USART1);VC01_ReceiveBuffer[index++] = data;// 示例协议格式:0xAA 0x55 CMD_IDif (index >= 3){if (VC01_ReceiveBuffer[0] == 0xAA && VC01_ReceiveBuffer[1] == 0x55){uint8_t cmd = VC01_ReceiveBuffer[2];VC01_ExecuteCommand(cmd);}index = 0;}}
}

3️⃣ 控制灯光或继电器(GPIO 控制)


void VC01_ExecuteCommand(uint8_t cmd)
{switch (cmd){case 0x01:  // 语音命令:“打开灯”GPIO_SetBits(GPIOC, GPIO_Pin_13);  // 点亮LEDbreak;case 0x02:  // “关闭灯”GPIO_ResetBits(GPIOC, GPIO_Pin_13);  // 熄灭LEDbreak;default:break;}
}

相关文章:

  • 爬虫基础学习day2
  • Electron简介(附电子书学习资料)
  • day030-Shell自动化编程-函数
  • Electron 防脱壳转二进制 JSC 打包过程以及踩坑记录
  • 【向量库】Weaviate 搜索与索引技术:从基础概念到性能优化
  • 二维数组 行列混淆区分 js
  • 第十四届“中国软件杯”大学生软件设计大赛启幕,A9赛题解析会6月12日开课
  • MODBUS TCP转CANopen 技术赋能高效协同作业
  • NoSQL 之 Redis 集群
  • Java基于BS架构的OA流程可视化实战:从工作流引擎到前端交互(附完整源代码+论文框架)
  • 【Rust TCP编程】Rust网络编程之TCP编程语法解析与应用实战
  • Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
  • 如何让非 TCP/IP 协议驱动屏蔽 IPv4/IPv6 和 ARP 报文?
  • gephi绘制网络拓扑图:批量给节点着色
  • spring boot使用HttpServletResponse实现sse后端流式输出消息
  • 代理篇12|深入理解 Vite中的Proxy接口代理配置
  • validate校验的使用
  • 50、文件上传-单文件与多文件上传的使用
  • 使用大模型预测巨细胞病毒视网膜炎的技术方案
  • JavaScript 标签加载
  • c 语言做网站/北京网站开发
  • 做诈骗网站/合肥今日头条最新消息
  • vs2017移动网站开发/苏州网站
  • 游戏网站外链建设/北京做的好的seo公司
  • java做网站建设后台/品牌营销策划机构
  • c 网站建设步骤/公众号软文范例100