摘要:本文介绍了一种采用ARM处理器作为控制核心的非特定人语音识别系统的设计方案。方案中的系统利用IC Route公司的非特定语音识别芯片LD3320与ARM Cortex M3内核ST公司的32位高性能单片机STM32F103C8T6 组成功能主体,在系统中实现SD卡文件系统,在不更改单片机源程序的前提下,可更改SD卡中内容,达到识别列表关键词动态编辑,经过大量实践证明该方案适合嵌入式组件开发中需要灵活更改识别内容和返回参数的应用,设计具有高性价比、交互简易、识别率高、扩展性强等特点,便于嵌入式应用。
0 引言
语音交互是人类交流和交换信息中最便捷的手段和最重要的媒体,长久以来,人们都希望找寻一种新的途径解决人类与机器的交互方式,希望机器设备能够“听”懂人类的语音信息进行交互,识别其含义并响应、从而做出相应动作,这样的交互方式更能被使用者接受,取代原有的键盘、按钮、开关等传统交互方式,基于非特定人的语音识别技术已然成为人机交互新方式的一个重要发展方向和研究热点。
语音信号的识别涉及众多学科知识体系,与计算机、语言学、通信、数理统计、信号处理和人工智能等学科都有着密切的关系,由于语音信号具有信息量大、不确定性、动态性和连续性的特点,在语音信号的预处理、特征提取等阶段处理数据量非常大,对软件的处理算法和硬件的处理能力都有较高的要求,传统使用PC机或者工控机等高处理性能的平台实现语音信号识别,但硬软件开发造价无疑是阻碍普及的重要因素,本系统采用ARM Cortex M3 内核ST 公司的32 位高性能单片机STM32F103C8T6结合LD3320语音识别芯片,通过构建SD卡文件系统实现非特定人语音识别关键词动态编辑功能,适用于嵌入式语音识别场合。系统电路简单,性价比高,识别距离和识别精度都可以满足嵌入式应用。
1 非特定人语音识别技术原理
非特定人语音识别技术研究的最终目的是让计算机等设备能够“听懂”人类语音,提取出语音中所包含的特定信息,成为人机通信和交互最便捷的手段。由于语音信号本身具有不确定性、动态性和连续性,这就为准确量化和处理该信号带来非常大的困难,每个人的语音要建立不同的语音样本也为识别的普及带来瓶颈约束。目前的语音识别是先建立特征库然后将待识别的信号经处理与特征库比对得到相似结果判定输出。从本质上属于基于统计模式的基本理论,分语言模型训练、识别分析两个大阶段构成和实现,如图1所示。
声学训练阶段通常是离线完成的,由语言学家对预先收集好的海量语音样本、语言数据库、噪声数据进行信号处理和知识挖掘,通过语音信号处理理论及相应数学算法模型建立语音识别系统所需要的“声学模型”和“语言模型”。
识别分析阶段通常是在线完成的,对用户实时的语音进行自动识别。识别过程通常又可以分为“前端”和 “后端”两大模块:“前端”模块主要的作用是进行端点检测、降噪、特征提取等;“后端”模块的作用是利用训练好的“声学模型”和“语言模型”对用户说话的特征向量进行统计模式识别,得到其包含的文字信息,此外,后端模块还存在一个“自适应”的反馈模块,可以对用户的语音进行自学习,从而对“声学模型”和 “语音模型”进行必要的“校正”,进一步提高识别的准确率。
2 系统设计的整体结构
本系统以STM32F103C8T6 微控制器为控制核心,搭配微控制器最小核心电路、LD3320语音识别电路、SD卡电路、电源电路、用户按键输入电路、串口数据输出电路、状态指示电路等综合组成。该系统体积小巧,可以作为嵌入式组件单元融入用户电路或者板卡中,上电后STM32F108C8T6内部程序进行程序初始化、SD 卡文件系统初始化、LD3320初始化、随后等待识别音频接收,识别完成后输出响应信息或者解码音频,系统整体结构如图2所示,最终实现积木式功能组件的全部功能。
技术专区
- 裸机程序如何驱动硬件?看前辈是怎么说的
- ARM紧耦合内存简介及配置
- ARMv8 通过设计简化软件移植详解
- STM32中断优先级谁更高 主要根据两个方面来判断
- 基于ARM与DSP的主从式双CPU嵌入式四轴运动控制器设计方案