语音交互是人类交流和交换信息中最便捷的手段和最重要的媒体,长久以来,人们都希望找寻一种新的途径解决人类与机器的交互方式,希望机器设备能够"听"懂人类的语音信息进行交互,识别其含义并响应、从而做出相应动作,这样的交互方式更能被使用者接受,取代原有的键盘、按钮、开关等传统交互方式,基于非特定人的语音识别技术已然成为人机交互新方式的一个重要发展方向和研究热点。
语音信号的识别涉及众多学科知识体系,与计算机、语言学、通信、数理统计、信号处理和人工智能等学科都有着密切的关系,由于语音信号具有信息量大、不确定性、动态性和连续性的特点,在语音信号的预处理、特征提取等阶段处理数据量非常大,对软件的处理算法和硬件的处理能力都有较高的要求,传统使用PC机或者工控机等高处理性能的平台实现语音信号识别,但硬软件开发造价无疑是阻碍普及的重要因素,本系统采用ARM Cortex M3 内核ST 公司的32 位高性能单片机STM32F103C8T6结合LD3320语音识别芯片,通过构建SD卡文件系统实现非特定人语音识别关键词动态编辑功能,适用于嵌入式语音识别场合。系统电路简单,性价比高,识别距离和识别精度都可以满足嵌入式应用。
1 非特定人语音识别技术原理
非特定人语音识别技术研究的最终目的是让计算机等设备能够"听懂"人类语音,提取出语音中所包含的特定信息,成为人机通信和交互最便捷的手段。由于语音信号本身具有不确定性、动态性和连续性,这就为准确量化和处理该信号带来非常大的困难,每个人的语音要建立不同的语音样本也为识别的普及带来瓶颈约束。目前的语音识别是先建立特征库然后将待识别的信号经处理与特征库比对得到相似结果判定输出。从本质上属于基于统计模式的基本理论,分语言模型训练、识别分析两个大阶段构成和实现,如图1所示。2 系统设计的整体结构
本系统以STM32F103C8T6 微控制器为控制核心,搭配微控制器最小核心电路、LD3320语音识别电路、SD卡电路、电源电路、用户按键输入电路、串口数据输出电路、状态指示电路等综合组成。该系统体积小巧,可以作为嵌入式组件单元融入用户电路或者板卡中,上电后STM32F108C8T6内部程序进行程序初始化、SD 卡文件系统初始化、LD3320初始化、随后等待识别音频接收,识别完成后输出响应信息或者解码音频,系统整体结构如图2所示,最终实现积木式功能组件的全部功能。3.2 非特定人语音识别方案选型及电路
本系统中选用IC Route公司生产的LD3320非特定人语音识别芯片,该芯片是非特定人语音识别的专用芯片,内部已经集成了语音识别处理器和一些信号调制电路,拥有高性能的A/D转换器、D/A转换器、麦克风音频信号输入接口、音频解码输出接口等,用户只需要用软件编辑好待识别的关键词列表,LD3320最大可以支持50 条关键词句,把这些列别以字符的形式传送到芯片中,就可以对待识别的语音信号进行近似度分析,识别后输出结果。
4 系统软件功能设计
4.1 语音识别软件设计
系统主控上电后首先进行各项初始化,包括LD3320 需要的8M 时钟信号,由STM32 初始化后输出8M 频率供给LD3320使用,初始化STM32内部时钟、SD卡文件系统、SPI相关寄存器、SDIO数据初始化、中断设置等等。经过初始化后SD 卡文件系统会在SD 卡中寻找system.ini配置文件,将里面的字段进行拆分后提取,送给LD3320相关寄存器,随后把关键字句列表和长度信息传送给LD3320并启动识别过程,当识别成功后串口会发出响应的返回值参数,并且按照用户需求可以指定需要解码的音频文件,经过LD3320进行MP3文件解码输出,程序流程图如图5所示。4.2 SD卡文件系统软件设计
在实际应用中,修改主控制单片机程序较为复杂,本系统将识别关键语句写在一个命名为system.ini文件中,将此文件拷贝到SD卡中,SD卡需要实现格式化,只能出现一个。ini 文件,其他的文件均为XXX.mp3 文件,SD 的片选信号CS、数据输入信号DI、数据输出信号DO、时钟信号SCLK 在硬件上已经与STM32的SPI接口相连接,系统上电后会初始化SD卡文件系统,发送至少74个时钟以上确保SD卡片选正常后将SD卡复位等待8个时钟周期进入SPI读写模式,通过STM32内部编写好的文件系统程序找寻"配置文件"即system.ini文件,读取关键词识别列表内容,在系统软件编程中,采用3个字段进行功能约定,字段功能约定配置如下:5 性能测试与分析
为保证系统对非特定人的语音识别效果、环境底噪影响、语音识别过程响应时间、非特定人声音样本识别成功率等参数达标,本文针对各项参数指定了测试方案,实验环境分为安静环境(如家居环境)和相对嘈杂的环境(如课堂环境)进行了实测,指定3名发音人作为3个不同的声音识别样本,选定了短句识别语句、中长句识别语句,长句识别语句各2条进行样本测试(约定3字以下为短句,3~5字为中长句,5字以上为长句),每种测试语句结合不同发音人重复20次结果进行统计,在安静环境下测试短句识别准确率为93.37%、中长句识别准确率为91.67%、长句识别准确率为90.23%.在嘈杂环境下测试短句识别准确率为87.25%、中长句识别准确率为84.36%、长句识别准确率为81.12%.从实验数据上分析,制约识别准确率的原因是多方面的,与发音人本身声音质量、环境底噪、识别语句近似度、识别语句长度均有关系,单从数据上不难得到总体识别率应该是在81%以上,可以满足应用需求,系统实物图如图6所示,硬件结构小巧,功耗低、性价比高,因此具备市场应用前景和市场需求。6 结语
普及语音识别技术是当前研究和发展的新趋势,特别是对于非特定人的语音识别是语音信号领域处理的热点和难点,本方案利用了STM32F103C8T6与LD3320结合,配合各种外围电路完成了非特定人语音识别的嵌入式平台,在平台中通过硬软件构建,在不更改主控制芯片程序的前提下,用户可以通过更改SD 卡内配置文件的方法随意设定识别关键语句,经过不同发音人和环境的实测,该系统在嘈杂环境中的识别准确率可达81%,在安静环境中的识别准确率可达90%以上,本系统可以方便的嵌入用户系统或者板卡中,积木式搭建灵活实用,因而具有广泛的市场需求和应用前景。