嵌入式linux 声控,基于Cortex-A9的嵌入式语音识别系统设计

嵌入式linux 声控,基于Cortex-A9的嵌入式语音识别系统设计打开文本图片集摘要 在人工智能技术发展的进程中 语音识别已经成为重要分支之一 语音识别技术作为人与机器的一种交互方式 将前端处理之后的信号转换成文本或者指令 进而用于控制相关智能设备 当前 基于深度学习的云端语音识别技术已经逐渐成熟 但考虑到离线设备无法使用云端语音识别 API 基于本地的嵌入式语音别技术研究仍然重要 本文从嵌入式语音识别系统的组成分别介绍前端信号处理 声学模型和语言模型等相关技

b711698fa22c7dc1a35b95ddc4b569d3.png

打开文本图片集

摘  要:在人工智能技术发展的进程中,语音识别已经成为重要分支之一。语音识别技术作为人与机器的一种交互方式,将前端处理之后的信号转换成文本或者指令,进而用于控制相关智能设备。当前,基于深度学习的云端语音识别技术已经逐渐成熟,但考虑到离线设备无法使用云端语音识别API,基于本地的嵌入式语音别技术研究仍然重要。本文从嵌入式语音识别系统的组成分别介绍前端信号处理、声学模型和语言模型等相关技术点。

关键词:语音识别;嵌入式;人工智能

中图分类号:TN912.34     文獻标识码:A 文章编号:2096-4706(2019)14-0166-03

Design of Embedded Speech Recognition System Based on Cortex-A9

YUAN Yi,CHEN Shengyong

(Guangzhou Ligong Science and Technology Co.,Ltd.,Guangzhou  ,China)

Abstract:In the process of artificial intelligence technology development,speech recognition has become one of the important branches. As a way of interaction between human and machine,speech recognition technology converts the signal processed by the front end into text or instructions,which can be used to control relevant intelligent devices. At present,cloud speech recognition technology based on deep learning has been gradually mature,but considering that offline devices cannot use cloud speech recognition API,research on local embedded speech technology is still important. In this paper,the components of embedded speech recognition system are introduced,including front-end signal processing,acoustic model and language model.

Keywords:speech recognition;embedded;AI

0  引  言

语音识别技术是人机交互的关键技术,在数十年的发展中提升显著。语音识别的起源可以追溯到二十世纪五十年代,首个语音识别系统是贝尔实验室开发的Audry系统,该系统可以识别0到9的英文数字。经过十余年的发展,在二十世纪六十年代左右,线性预测分析和动态规划算法的提出,极大地推动了语音识别技术的落地,使用线性预测编码可以对语音信号进行建模,进一步提取语音的特征来识别。随后,动态时间规整算法(DTW)、矢量量化技术(VQ)和隐马尔可夫模型(HMM)理论[1]的提出,促使语音识别相关产品逐渐具备实用性,识别算法也转变成基于统计模型的方法。在二十世纪九十年代后,人工神经网络技术[2]受到广大研究人员的关注,逐渐从图像领域发展到了语音识别技术研究,基于深度神经网络[3]的语音识别有效提升了识别率。

1  系统构成

嵌入式语音识别系统与常规语音识别系统构成一致,其区别主要在于,嵌入式语音识别所有的计算均在本地完成。如图1所示,包括硬件拾音电路部分、前端信号处理、结合声学模型和语言模型的解码部分,以及文本输出响应部分。

图1  嵌入式语音识别系统结构图

语音识别的过程大致分为三部分:首先,从硬件拾音电路中获取当前环境中的声音信号,并从中提取出相应的特征序列,提取特征的方法很多,嵌入式语音识别系统常用的是梅尔频率倒谱系数(MFCC);其次,通过声学模型对提取的特征序列解码,将特征序列映射成音素序列;最后,结合语言模型对音素序列进一步解码,输出相应的文本字符串并执行与之对应的操作。

2  基本原理

当一段语音信号通过拾音电路进入语音识别系统中,假定其通过预处理提取出特征后,表示成声学的特征向量为X=[x1,x2,x3,…,xi],向量中的xi表示某一帧语音数据的特征向量。用W=[w1,w2,w3,…,wi]表示将被预测的文本序列,或称之为词序列,其中wi为被预测序列的第i个词。语音识别最本质也是最关键的任务在于求解W*=argmaxWP(W”X),也就是需要求取出使得P(W|X)最大取值情况下的W,即最可能的文本序列。通过贝叶斯理论可以得出P(W|X)的简化形式:

由此我们发现,语音识别的关键在于求解P(X|W)和P(W)两部分,通常将P(X|W)称为声学模型的表达式,而P(W)就是语言模型的概率。

2.1  前端信号处理

前端信号处理主要是对原始的语音信号进行相关的处理,去除语音信号中可能会影响识别的噪声,使得处理后的语音信号更容易提取特征,从而提升整个嵌入式语音识别系统性能。前端信号处理主要包括语音活动检测、语音降噪、回声消除和声源定位等。

语音活动检测(VAD)在嵌入式语音系统中的作用突出,直接影响整个系统的功耗。语音活动检测主要用于检测出语音信号开始位置和结束位置,因为拾音器总是不停地采集周围环境的声音信号,但多数情况下不存在人声,因此只需要将通过VAD区分出的人声信号送入下一阶段处理,而非人声信号则直接丢弃,从而可以达到降低功耗的目的。用于语音活动检测的算法存在多种,例如,基于阈值的VAD和基于分类器的VAD。基于阈值[4]的VAD是通过在时域提取语音信号的短时能量或短时过零率判断,或者在频域提取MFCC或谱熵特征来处理,給定好合理的相关门限,从而区分出人声和非人声部分。基于阈值的VAD计算量不大,因此常用于嵌入式语音识别系统。

语音降噪[5]主要用于消除原始信号中的噪声,常见噪声包括室内风扇和空调等发出的噪声,以及室外的汽车和自然界发出的杂音。语音降噪是为了降低噪声来提升信噪比,从而达到提升识别准确率的目的。在嵌入式语音识别系统中,常用的降噪算法包含谱减法、维纳滤波法和自适应最小二乘法。

回声消除[6]顾名思义就是用于消除系统的回声,广泛用于手机免提通话中。在语音识别系统中,回声消除是实现语音打断的基础,即当嵌入式设备正通过扬声器播放音频时,回声消除会去除掉拾音器采集到的从扬声器播放的信号,仍然可以通过语音控制设备。因此在嵌入式语音识别系统中,回声消除一般使用自适应滤波的方法,通过设置滤波器来模拟回声的相应环境,估计并消除回声信号。

声源定位是智能音箱中的一项技术,用于指示说话人的方向,从而使用空间滤波消除说话人方向之外的信号。考虑到计算量大小的控制,在嵌入式系统中通常使用广义互相关的相位变换算法(GCC-PHAT)和位变换加权的可控响应功率算法(SPR-PHAT),SPR-PHAT算法[7]效果要优于GCC-PHAT算法。

2.2  声学模型

在嵌入式语音识别系统中,复杂的声学模型在有限提高识别率的同时,可能极大地增加了系统对于当前设备算力的需求。声学模型的建模是把语音信号的观测特征与句子的语音建模单元联系起来,即计算P(X|W)。嵌入式语音识别通常使用隐马尔可夫模型(HMM)建模,HMM可以有效地处理好语音信号与文本序列的不定长关系。隐马尔可夫模型图如图2所示,因此,将声学模型表达式P(X|W)展开为:

在上式中,P(w1)表示HMM的初始状态概率,不同状态或者相同状态之间的转移概率为P(w2|w1)和P(w2|w2),一般可以使用统计方法计算转移概率。状态与语音的观测特征关系P(x1|w1)、P(x2|w2)和P(x3|w2)称为发射概率,可以使用高斯混合模型(GMM)建模。当然,神经网络技术的发展也可应用于语音识别,可通过卷积神经网络CNN或者深度神经网络DNN来表征发射概率。

2.3  语言模型

当前语音识别系统尚不能缺少语言模型,语言模型可以使得语音识别在特定领域效果更佳,合理地设置语言模型,可以使得嵌入式语音识别系统实用化。语言模型主要针对声学模型预测的文字序列,通过对于特定领域文字序列特征的学习,输出综合得分最高的序列。例如,声学模型预测的文字序列可能是“你号卧室小名”或者“你好我是小明”,显而易见,我们会选择“你好我是小明”,而这种辅助选择要归功于语言模型。语言模型P(W)是序列发生的概率,通常使用链式法则来展开计算,若W为w1,w2,…,wn,那么P(W)表示成:

3  嵌入式应用

嵌入式语音识别系统主要应用于较小词汇量的离线识别方案,例如声控空调、声控台灯和声控冰箱等。嵌入式语音识别是对云端语音识别应用的补充,Cortex-A9作为一款性能较强且常用的ARM处理器,并且可搭建成熟的嵌入式Linux环境,十分有利于快速开发。

本文所述的嵌入式语音识别系统基于Cortex-A9开发,使用了第2节的相关算法,成功实现了离线语音识别的功能,可用于控制空调设备。本文所构建的命令词如表1所示。

在安静环境中,单个命令词的识别所需时间小于0.5s,识别率可达95%左右,可以适用于智能家居场景。

4  结  论

本文针对嵌入式语音识别系统的设计,分别阐述了前端信号处理、声学模型和语言模型等关键技术。前端信号处理使用了谱减法降噪和基于阈值的VAD,声学模型建模为隐马尔可夫模型,并且,语言模型使用3-gram建模等,并在Cortex-A9处理器平台得以实现。该系统识别速度和识别率表明本文所述的相关算法选择非常适用于嵌入式语音识别系统。在以后的研究中,可以继续对声学模型建模进行研究,使用新模型来进一步提升识别的准确率。

参考文献:

[1] 何湘智.语音识别的研究与发展 [J].计算机与现代化,2002(3):3-6.

[2] 毛健,赵红东,姚婧婧.人工神经网络的发展及应用 [J].电子设计工程,2011,19(24):62-65.

[3] 余凯,贾磊,陈雨强,等.深度学习的昨天、今天和明天 [J].计算机研究与发展,2013,50(9):1799-1804.

[4] 李宇,郭雷勇,谭洪舟.基于噪声倒谱阈值频谱估计的语音活动检测 [J].计算机工程,2011,37(14):140-142.

[5] 朱建华,田岚.基于谱减法和小波阈值的新型语音降噪算法研究 [J].煤炭技术,2013,32(1):171-173.

[6] 夏晓.自适应滤波器中LMS算法的研究及应用 [D].北京:北京邮电大学,2013.

[7] 王志峰,冯杰,蒋灏,等.基于SRP和GA的声源定位方法 [J].电声技术,2013,37(10):36-40.

作者简介:袁毅(1991-),男,汉族,湖南湘西人,算法工程师,工学硕士,研究方向:嵌入式人工智能技术。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209555.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:58
下一篇 2026年3月19日 上午8:59


相关推荐

  • bat批量删除文件后缀_怎么批量删除文件名中的数字

    bat批量删除文件后缀_怎么批量删除文件名中的数字起因一个字,懒!但是机器做简单重复的事,都不会这么觉得~反而可能乐在其中哈!具体操作用bat命令批量操作,新建一个.bat文件(就是.txt文件改一下后缀),然后用文本格式打开,键入:@echooffSetlocalEnabledelayedexpansionset”str=想要去掉的字符串”for/f”delims=”%%iin(‘dir/b*.*…

    2026年2月26日
    3
  • django配置文件详解_pycharm配置python

    django配置文件详解_pycharm配置python前言Django的配置文件settings.py用于配置整个网站的环境和功能,核心配置必须有项目路径、密钥配置、域名访问权限、App列表、中间件、资源文件、模板配置、数据库的连接方式基本配置信息

    2022年7月28日
    11
  • vi/vim复制粘贴命令[通俗易懂]

    vi/vim复制粘贴命令[通俗易懂]1.选定文本块。使用v进入可视模式,移动光标键选定内容。2.复制的命令是y,即yank(提起),常用的命令如下:   y     在使用v模式选定了某一块的时候,复制选定块到缓冲区用;   yy   复制整行(nyy或者yny,复制n行,n为数字);   y^  复制当前到行头的内容;   y$   复制当前到行尾的内容;   yw  复制一个word(nyw或者ynw,复制n个word,n为数字);  

    2026年2月19日
    4
  • LoRa及LoRaWAN简介

    LoRa及LoRaWAN简介1 什么是 LoRa 和 LoRaWAN1 1LoRa 和 LoRaWAN 的区别 LoRa 是低功耗广域网通信技术中的一种 是 Semtech 公司专有的一种基于扩频技术的超远距离无线传输技术 LoRaWAN 是为 LoRa 远距离通信网络设计的一套通讯协议和系统架构 它是一种媒体访问控制 MAC 层协议 LoRa PHYLayerLoRa

    2026年3月26日
    1
  • virsh 关机_kvm虚拟机的virsh命令日常管理和配置

    virsh 关机_kvm虚拟机的virsh命令日常管理和配置virsh命令显示列表显示正在运行的[root@oldboy/etc/libvirt/qemu]#virshlistIdNameState—————————————————-5centos7running显示…

    2022年8月11日
    12
  • idea中撤销操作_eclipse反撤销快捷键

    idea中撤销操作_eclipse反撤销快捷键在刚使用idea的小伙伴都会遇到这样一个问题就是,习惯性地使用ctrl+y进行反撤销。但是却把该行代码删除了,哈哈哈:D.这谁都遇到过的。因为在idea中ctrl+y就是删除该行的快捷键,那么在idea中的反撤销快捷键是什么呢?其实是,ctrl+shift+z。但是可能你用了还是没效果,那是因为你PC上别的软件占用了该快捷键。我知道的就有搜狗输入会占用该快捷键~那我们取消搜狗输入法的这个快捷键…

    2022年10月2日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号