基于STM32的嵌入式语音识别模块设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
到特 征矢量参 数 ,通过特 征建模建 立训练语 音的参考 模型 令 ,USART可用来扩展语音 合成模块 等外围串行设备 。
库。在识别阶段 ,模块按 照一定算法 ,将语音的特征矢量参数和模 型
3.1主控 制 器 芯片
库中的参考模型进行 比较 ,相似度最高的输入特征矢量将被判定为
RsTB 5’墅 12I
三 2
j 11EST4
I砑西 STM CLk ̄I _
X ̄3V3A veryV3CL C3V 瓯3 7
.
i , 醴 G
E I ”
图 3 LD3320语 音 识 别 单 元 原 理 图
Flash和RAM,不用事先训练 就能实现对非特定 人的语音识别 ,而 且识别准确率 较高。
堡星童变量 皇 I
\
/
l是
设置寄存 器 设定 芯片状 态
设置寄 存器 准备 开始 识别
设置 寄存器 1c开启ADc
参 考 文 献
[1]张 丽 娟。王 申 良.基 于 STM32的语 音识 别 系统 的设 计 与 实 现 [J].黑 龙 江 科 技信 息,201O(2). [2]陈景 帅,周风余 .基 于 SpeechSDK的机器人语音交互系统设计[J]. 北京联合 大学学报 (自然科 学版 2O1 O(1). [3]祝 常健 ,胡 维平 ,叶佳 宁.基 于 HMM语 音识别技术在 ARM平 台的 实 现[J].微 计 算机 信 息 ,2009(5). [4]鄢仁辉.嵌入式实 时操作 系统 C/OS—II的移植 实例 [J].现代 电 子 技术 。201 1(2)5.
过 vXLD3320芯 片为核 心的硬 件 电路 实现语 音识 别 ,使 用嵌入 式操作 系统 C/OS-Ⅱ实现 任务调 度和 外 围设备 管理 。
’
关键 词 :语 音识 别 ARM LD3320
中 图分 类号 :TN912.34
文 献标 识 码 :A
文章编 号 :1007—9416(2012)06—0152—02
行
I外暖—电—路 I
制 USAR他 设
器
鲁
图 2硬 件 电路 结 构 图
P0 l 1r 1 =
£ 3 -c
瞄 d _‘ -l _【 PS 6 =
配 lc= £Z 8 ) 妇 匦
。k。f。l。—V— CC3V ̄
B WQltHB 蕊
I衄 譬 l I’
管理工作 ,每 一个界面的应用都 由专 门的系统来 实现 ,如 果应用 需 和程序 不发生作用 ,实 现系统功用的伸 缩。
求与应用 形势发生 了变化 ,不需要对整个系统做 完全 的修改 ,只需
6.6易维护 性
要对与相应的功能对应的子系统和组件就可 以实现应用的改变 ,而
应用系统的分层独立设计为系统的维护提供 了便利 ,系统 的任
音芯片”的模 式。第一种方式计算相对复杂 、开 发周 期长 ,第二种方
和基于PC的语音 识别系统相 比,嵌入 式语音识别系统运算速 法结构简单 ,微 处理器计算量 低,可靠性高、开发周期短 。本文介绍
度 、内存容量有 限,但体 积小 、功耗低 、可靠 性高 、安装灵活 ,在 智能 的语音识 别模块 以嵌入 式微处理器为核心 ,外围是非特定人语音识
设计 开发
赫l 数字技术 五鬲 栅
基于 STM32
贾 晶
(江西农 业 大 学 江 西 南昌 330038)
摘要 :本文介 绍 了 ̄;2ARM为核 心 的嵌入 式语 音 识别模 块 的设 计和 实现 ,模 块选 用sT公 司32位 处理 器STM32F103C8T6为核 心 处理单 元 ,通
量较小 ,启动识别功能需要较大 的音量 ,但抗 干扰性较好 。经过对 比 还发现 ,在噪声较 多的环境 中模块 的稳定性 、实时 陛均有 所 降低 。
实验 ,本文 介绍 的模 块中设定值 为43H。 (4)响 应 中断 。麦克风采集 到声音时 ,就会产 生 中断信号 ,中断
程序会根据寄存器值分析结果 ,c5寄存器 中的答 案是得分 最高、最 可能 正确 的答 案。
(3)开始 识别 。图4是开始 识别 流程 ,ADC是麦 克风输入通道 , 功识别 的 比例 。
ADC增益 是麦克风音量 ,建议 在40H-6FH间赋值 ,值大表示MIC音
测试 结 果 表 明 ,模 块 在 室 内环 境 下 对 非 特 定 人 的语 音 识 别 率 在
量较大 ,语音 识别启动越敏感 ,误判 的概率也较高 ;值小 代表MIC音 96%以上 ,噪声较多 的医院环境下语音识别率在92%左 右。通过测试
家电 、消 费电子等领域具有 优势 ,逐渐 成为 了研究 的热 点。
别芯片及相 关电路 ,模块选用ICRoute公司的LD3320 ̄片作为语音
识 别芯 片 。
2、 模 块 整 体 方 案
语音识别包括训练 、识别两个阶段 ,在这两个阶段 中,都必须对 3、 硬 件 电路 设 计
输入 的语音信号进行预处理和特征提取。语音识别的基本原理 如图
1、 引 言
识别结果。根据识别对象 ,语 音识别分为特定人识别和非特定人识
语音识别是将人类语音信号进行预处理 、特征提取 ,然后和测 别 。特定人识别 的识别对象是特 定用户 ,非特定人识别的识别对象
试 、训练后存储在计算机 中的标 准模型进 行比较 ,得 出判定和识别 是普通用户 ,需要采集多人语音进行训练 ,才能达到较高的识别率 。
采用 C语言编 写 ,执行效率 高 、占用空 间小 、可扩展 性强 ,最小 内核 个候 选识别语句 ,它们是10个 以内的 汉字或79个字 节拼 音 串。本文
仅有2KB。 C/OS-II是可剥 夺型 内核 ,任务 优先 级划分非常 重 介绍模块 的对 话管理数 组如 表2所示 。
要。从分层化 、模块化的设计理念 出发 ,主控系统任务优先级划分如
LD3320和STM32F103C8T6通 过 并行 方 式 相 接 ,其控 制信 号
面 、 、面 和复位信号 丽 、中断返回信号I N F B和 STM32Fl03C8T_6直接连接 ,使用 10k上拉电阻提 高系统稳定性 。存 图3中,MBS(12 ̄J脚)是麦克风 的偏置 ,并接了RC电路 ,确保 向麦 克 风提供稳定 的电压 。
结果 。当前主流的语音识别技术 多基于统计模 式 ,模型训练过程 中
现有的嵌入式语音识别系统主要有两种方式 ,…种是在嵌入 式
算法 复杂 、运 算量 大 ,需 要PC或工控机 实现 ,在 一定程度上 制约 了 处理器 中直 接调 用语音开发包 ,另一种则 采取 “嵌 入式处理器+语
语音 识别技术 的发展 。
表 2对话管理数组设计
表 1所 示 。 除OSTaskStat、OSTaskIdle是 系统 自带 任务 外 ,其他任务 由用
户创 建。App_TaskStart是系统 首个任务 ,负责初始化 时钟和底层 设
名称 识别数 组 行为数 组
存储 内容 待 识 别 语 句 行为编号
数组定义 INT8U—Reco[50][79] 。INT8一Act[50][6】
本 文 介 绍 的 语 音 识 别 模 块 主 控 制 器 选 用 S T 公 司 的
sTM32F103C8T6芯片 ,该芯 片基于ARM Cortex-M332位RISC
内核 ,工作频率可达72MHz,内置 高速存储器,拥有丰富的增 强型I/ 0端 口 ,具 有 高 性 能 、低 功 耗 、低 电压 等 优 点 ,易 丁 集 成 和 开 发 。
为验证语音 识别模 块的性能和 可靠性 ,分 别在 安静 的室内环
可重复 ,但数值应小于256。LD332嘬 多支持5o+ 识别条 目,每个识 境 、噪声 较多的医 院环境对语音 识别 模块进行测试 。测试 中,对8条
别条 目是小 写的汉语拼音 ,每2个字(拼音 )间有 一个 空格 。
语音命令循环 l0次 ,每个环境下对3名非特定人各测试80次 ,计算成
4、系统软件 设计
模 块 软 件 包 括 主 控 单 元 嵌 入 式操 作 系 统 C/OS— II移 植 、 LD3320语音识别程序 、对话管理 程序等三部分 。
表 1主 控 系统 任务 优 先 级 划 分
任 务 名 App_TaskStart App__TaskSR App_TaskCmd App_TaskCom App_TaskUpdate App_TaskPB
3.2语 音 识 别 电 路
图 1语 音 识别 的 基 本 原 理
语音识别电路参考了ICRoute发布 的LD3320数据于册 ,其原理 图如 图3所 示 。LD3320内部集 成 了语音 识别优化 算法 ,无需 外接
非
特 定 人 语 音
输 入
生 USAllT1 富
并 口 控
设置寄 存器 开 中断
图 4 开始 识 别 流 程
基 金 项 目 江 西 省 教 育 厅 科 技 项 目:GJJ1 041 9
… … 上 接 第 l51页
统管理用户可 以根 据要实现的系统功能和 系统 的规模等 因素来确
6.3可 适 应 性
定应用服务器 的配置 与数量 ,在系统功能和系统 应用要增加和扩 张
待识别的行为 编号储存在行为数组 中,和50+语音识别语句对 应。模块共有50组指令 ,每组 指令可包 含6个行为 ,能并行 执行的行 为可 以归为一步 ,在该模式下 ,多个行 为进行 组合可完成复杂任务 。
5、 验证 和 测 试
(2)写入识 别列表 。每个 识别条 目对应 l字 节的特 定编号 ,编号
App_TaskLed OsTaskStat OSTaskldle
任 务优 先级 5 6 8 9 l0 1l
l3 30 3l
堆 栈 字节 64 l28 l28 64 l28 64
64 64 128
实现 功能 系 统 初始 化 语 音 识别 命 令 解析和 执 行 串 口命令发 送 更 新 对话集 按 键 检测 和处 理
模 块 硬 件 电路 结构 如 图2所示 ,包 括 主 控 制器 和 语音 识 别 电路 。
1所 示 。
模块正常工作时,语音识别 电路 通过 并口将处理后 的数据传输给主
在训 练阶段 ,用户多次输入训练语音 ,模块预处理后进行 特征 控 制器 ,主控 制器根 据语 音识别 的结 果 ,向USART发送相应 的命
LED 显 示 统计 任务 空 闲任 务
醣羲●J十_● 一
设 计 开 发
一 术 嘶
4~ ~ .1嵌 入 式操 作
系统 移植
对话管理单元 用来存储等待识别的语音 、等待执行的命令 ,在
C/OS-II是一个开源 的实时多任务操作 系统 ,大部分代码 主控 制器 中通 过二维数组完成。每进行一 次识别 ,LD3320可设置50
4.2对 话 管理 程序 设 计
向寄存器35写入^DC增 益
6、 结 语
本文 介绍 了基于STM32的嵌入 式语音 识别模 块的设 计和实 现 ,对模块软 、硬 件组成及原理进行 了较为详 细的说 明。实验表明 , 本文介绍的语音识别模块具有稳 定性 好 、识别 率高、使用方便 等优 点 ,可应用在智 能家 电、服务机器人 、消费 电子 等领域 ,具有一 定的 理论价值和应 用前景 。
应用系统 的三个结 构层次的设计 ,就是为了保 障每一个子系统 时,则可 以通过配置的增加或是布线的延伸来实现应用服务器 的升
能独 立 完 成 其 任 务 和 工 作 ,应 用 服 务 器 主 要负 责 用 户 的应 用 界 面 和 级 ,在系统某 些功能 不需要 时 ,则可 以通过系统 锁定功 能使些组织
备 ,创建 事件及 其他用户任务 ,并对 系统状态进 行监测 。 4.2语 音识 别程 序 设计 本文 介绍模块的语音识别程序采用 中断方 式 ,其工作流程为 :
初始 化 、写入识别列 表 、开始 识别 、响应 中断。 (1)初始化 。进行软复位 、模 式设定 、FIFO设定 、时钟频率设定 。
库。在识别阶段 ,模块按 照一定算法 ,将语音的特征矢量参数和模 型
3.1主控 制 器 芯片
库中的参考模型进行 比较 ,相似度最高的输入特征矢量将被判定为
RsTB 5’墅 12I
三 2
j 11EST4
I砑西 STM CLk ̄I _
X ̄3V3A veryV3CL C3V 瓯3 7
.
i , 醴 G
E I ”
图 3 LD3320语 音 识 别 单 元 原 理 图
Flash和RAM,不用事先训练 就能实现对非特定 人的语音识别 ,而 且识别准确率 较高。
堡星童变量 皇 I
\
/
l是
设置寄存 器 设定 芯片状 态
设置寄 存器 准备 开始 识别
设置 寄存器 1c开启ADc
参 考 文 献
[1]张 丽 娟。王 申 良.基 于 STM32的语 音识 别 系统 的设 计 与 实 现 [J].黑 龙 江 科 技信 息,201O(2). [2]陈景 帅,周风余 .基 于 SpeechSDK的机器人语音交互系统设计[J]. 北京联合 大学学报 (自然科 学版 2O1 O(1). [3]祝 常健 ,胡 维平 ,叶佳 宁.基 于 HMM语 音识别技术在 ARM平 台的 实 现[J].微 计 算机 信 息 ,2009(5). [4]鄢仁辉.嵌入式实 时操作 系统 C/OS—II的移植 实例 [J].现代 电 子 技术 。201 1(2)5.
过 vXLD3320芯 片为核 心的硬 件 电路 实现语 音识 别 ,使 用嵌入 式操作 系统 C/OS-Ⅱ实现 任务调 度和 外 围设备 管理 。
’
关键 词 :语 音识 别 ARM LD3320
中 图分 类号 :TN912.34
文 献标 识 码 :A
文章编 号 :1007—9416(2012)06—0152—02
行
I外暖—电—路 I
制 USAR他 设
器
鲁
图 2硬 件 电路 结 构 图
P0 l 1r 1 =
£ 3 -c
瞄 d _‘ -l _【 PS 6 =
配 lc= £Z 8 ) 妇 匦
。k。f。l。—V— CC3V ̄
B WQltHB 蕊
I衄 譬 l I’
管理工作 ,每 一个界面的应用都 由专 门的系统来 实现 ,如 果应用 需 和程序 不发生作用 ,实 现系统功用的伸 缩。
求与应用 形势发生 了变化 ,不需要对整个系统做 完全 的修改 ,只需
6.6易维护 性
要对与相应的功能对应的子系统和组件就可 以实现应用的改变 ,而
应用系统的分层独立设计为系统的维护提供 了便利 ,系统 的任
音芯片”的模 式。第一种方式计算相对复杂 、开 发周 期长 ,第二种方
和基于PC的语音 识别系统相 比,嵌入 式语音识别系统运算速 法结构简单 ,微 处理器计算量 低,可靠性高、开发周期短 。本文介绍
度 、内存容量有 限,但体 积小 、功耗低 、可靠 性高 、安装灵活 ,在 智能 的语音识 别模块 以嵌入 式微处理器为核心 ,外围是非特定人语音识
设计 开发
赫l 数字技术 五鬲 栅
基于 STM32
贾 晶
(江西农 业 大 学 江 西 南昌 330038)
摘要 :本文介 绍 了 ̄;2ARM为核 心 的嵌入 式语 音 识别模 块 的设 计和 实现 ,模 块选 用sT公 司32位 处理 器STM32F103C8T6为核 心 处理单 元 ,通
量较小 ,启动识别功能需要较大 的音量 ,但抗 干扰性较好 。经过对 比 还发现 ,在噪声较 多的环境 中模块 的稳定性 、实时 陛均有 所 降低 。
实验 ,本文 介绍 的模 块中设定值 为43H。 (4)响 应 中断 。麦克风采集 到声音时 ,就会产 生 中断信号 ,中断
程序会根据寄存器值分析结果 ,c5寄存器 中的答 案是得分 最高、最 可能 正确 的答 案。
(3)开始 识别 。图4是开始 识别 流程 ,ADC是麦 克风输入通道 , 功识别 的 比例 。
ADC增益 是麦克风音量 ,建议 在40H-6FH间赋值 ,值大表示MIC音
测试 结 果 表 明 ,模 块 在 室 内环 境 下 对 非 特 定 人 的语 音 识 别 率 在
量较大 ,语音 识别启动越敏感 ,误判 的概率也较高 ;值小 代表MIC音 96%以上 ,噪声较多 的医院环境下语音识别率在92%左 右。通过测试
家电 、消 费电子等领域具有 优势 ,逐渐 成为 了研究 的热 点。
别芯片及相 关电路 ,模块选用ICRoute公司的LD3320 ̄片作为语音
识 别芯 片 。
2、 模 块 整 体 方 案
语音识别包括训练 、识别两个阶段 ,在这两个阶段 中,都必须对 3、 硬 件 电路 设 计
输入 的语音信号进行预处理和特征提取。语音识别的基本原理 如图
1、 引 言
识别结果。根据识别对象 ,语 音识别分为特定人识别和非特定人识
语音识别是将人类语音信号进行预处理 、特征提取 ,然后和测 别 。特定人识别 的识别对象是特 定用户 ,非特定人识别的识别对象
试 、训练后存储在计算机 中的标 准模型进 行比较 ,得 出判定和识别 是普通用户 ,需要采集多人语音进行训练 ,才能达到较高的识别率 。
采用 C语言编 写 ,执行效率 高 、占用空 间小 、可扩展 性强 ,最小 内核 个候 选识别语句 ,它们是10个 以内的 汉字或79个字 节拼 音 串。本文
仅有2KB。 C/OS-II是可剥 夺型 内核 ,任务 优先 级划分非常 重 介绍模块 的对 话管理数 组如 表2所示 。
要。从分层化 、模块化的设计理念 出发 ,主控系统任务优先级划分如
LD3320和STM32F103C8T6通 过 并行 方 式 相 接 ,其控 制信 号
面 、 、面 和复位信号 丽 、中断返回信号I N F B和 STM32Fl03C8T_6直接连接 ,使用 10k上拉电阻提 高系统稳定性 。存 图3中,MBS(12 ̄J脚)是麦克风 的偏置 ,并接了RC电路 ,确保 向麦 克 风提供稳定 的电压 。
结果 。当前主流的语音识别技术 多基于统计模 式 ,模型训练过程 中
现有的嵌入式语音识别系统主要有两种方式 ,…种是在嵌入 式
算法 复杂 、运 算量 大 ,需 要PC或工控机 实现 ,在 一定程度上 制约 了 处理器 中直 接调 用语音开发包 ,另一种则 采取 “嵌 入式处理器+语
语音 识别技术 的发展 。
表 2对话管理数组设计
表 1所 示 。 除OSTaskStat、OSTaskIdle是 系统 自带 任务 外 ,其他任务 由用
户创 建。App_TaskStart是系统 首个任务 ,负责初始化 时钟和底层 设
名称 识别数 组 行为数 组
存储 内容 待 识 别 语 句 行为编号
数组定义 INT8U—Reco[50][79] 。INT8一Act[50][6】
本 文 介 绍 的 语 音 识 别 模 块 主 控 制 器 选 用 S T 公 司 的
sTM32F103C8T6芯片 ,该芯 片基于ARM Cortex-M332位RISC
内核 ,工作频率可达72MHz,内置 高速存储器,拥有丰富的增 强型I/ 0端 口 ,具 有 高 性 能 、低 功 耗 、低 电压 等 优 点 ,易 丁 集 成 和 开 发 。
为验证语音 识别模 块的性能和 可靠性 ,分 别在 安静 的室内环
可重复 ,但数值应小于256。LD332嘬 多支持5o+ 识别条 目,每个识 境 、噪声 较多的医 院环境对语音 识别 模块进行测试 。测试 中,对8条
别条 目是小 写的汉语拼音 ,每2个字(拼音 )间有 一个 空格 。
语音命令循环 l0次 ,每个环境下对3名非特定人各测试80次 ,计算成
4、系统软件 设计
模 块 软 件 包 括 主 控 单 元 嵌 入 式操 作 系 统 C/OS— II移 植 、 LD3320语音识别程序 、对话管理 程序等三部分 。
表 1主 控 系统 任务 优 先 级 划 分
任 务 名 App_TaskStart App__TaskSR App_TaskCmd App_TaskCom App_TaskUpdate App_TaskPB
3.2语 音 识 别 电 路
图 1语 音 识别 的 基 本 原 理
语音识别电路参考了ICRoute发布 的LD3320数据于册 ,其原理 图如 图3所 示 。LD3320内部集 成 了语音 识别优化 算法 ,无需 外接
非
特 定 人 语 音
输 入
生 USAllT1 富
并 口 控
设置寄 存器 开 中断
图 4 开始 识 别 流 程
基 金 项 目 江 西 省 教 育 厅 科 技 项 目:GJJ1 041 9
… … 上 接 第 l51页
统管理用户可 以根 据要实现的系统功能和 系统 的规模等 因素来确
6.3可 适 应 性
定应用服务器 的配置 与数量 ,在系统功能和系统 应用要增加和扩 张
待识别的行为 编号储存在行为数组 中,和50+语音识别语句对 应。模块共有50组指令 ,每组 指令可包 含6个行为 ,能并行 执行的行 为可 以归为一步 ,在该模式下 ,多个行 为进行 组合可完成复杂任务 。
5、 验证 和 测 试
(2)写入识 别列表 。每个 识别条 目对应 l字 节的特 定编号 ,编号
App_TaskLed OsTaskStat OSTaskldle
任 务优 先级 5 6 8 9 l0 1l
l3 30 3l
堆 栈 字节 64 l28 l28 64 l28 64
64 64 128
实现 功能 系 统 初始 化 语 音 识别 命 令 解析和 执 行 串 口命令发 送 更 新 对话集 按 键 检测 和处 理
模 块 硬 件 电路 结构 如 图2所示 ,包 括 主 控 制器 和 语音 识 别 电路 。
1所 示 。
模块正常工作时,语音识别 电路 通过 并口将处理后 的数据传输给主
在训 练阶段 ,用户多次输入训练语音 ,模块预处理后进行 特征 控 制器 ,主控 制器根 据语 音识别 的结 果 ,向USART发送相应 的命
LED 显 示 统计 任务 空 闲任 务
醣羲●J十_● 一
设 计 开 发
一 术 嘶
4~ ~ .1嵌 入 式操 作
系统 移植
对话管理单元 用来存储等待识别的语音 、等待执行的命令 ,在
C/OS-II是一个开源 的实时多任务操作 系统 ,大部分代码 主控 制器 中通 过二维数组完成。每进行一 次识别 ,LD3320可设置50
4.2对 话 管理 程序 设 计
向寄存器35写入^DC增 益
6、 结 语
本文 介绍 了基于STM32的嵌入 式语音 识别模 块的设 计和实 现 ,对模块软 、硬 件组成及原理进行 了较为详 细的说 明。实验表明 , 本文介绍的语音识别模块具有稳 定性 好 、识别 率高、使用方便 等优 点 ,可应用在智 能家 电、服务机器人 、消费 电子 等领域 ,具有一 定的 理论价值和应 用前景 。
应用系统 的三个结 构层次的设计 ,就是为了保 障每一个子系统 时,则可 以通过配置的增加或是布线的延伸来实现应用服务器 的升
能独 立 完 成 其 任 务 和 工 作 ,应 用 服 务 器 主 要负 责 用 户 的应 用 界 面 和 级 ,在系统某 些功能 不需要 时 ,则可 以通过系统 锁定功 能使些组织
备 ,创建 事件及 其他用户任务 ,并对 系统状态进 行监测 。 4.2语 音识 别程 序 设计 本文 介绍模块的语音识别程序采用 中断方 式 ,其工作流程为 :
初始 化 、写入识别列 表 、开始 识别 、响应 中断。 (1)初始化 。进行软复位 、模 式设定 、FIFO设定 、时钟频率设定 。