语音识别在垃圾分类装置中的应用* 您所在的位置:网站首页 audioread函数 语音识别在垃圾分类装置中的应用*

语音识别在垃圾分类装置中的应用*

2023-03-24 03:54| 来源: 网络整理| 查看: 265

吴元江,李 晟

(江西理工大学理学院,江西赣州 341000)

0 引言

随着城市化建设步伐的推进和网络的普及,网购和外卖成为年轻人快节奏生活中不可或缺的一部分[1]。然而,网购和外卖不可避免会带来生活垃圾,若是无组织处理会极大地破坏人类赖以生存的生态家园,而进行有效的垃圾分类,垃圾也能变废为宝。

但是当前垃圾桶提示不全,许多人在投放垃圾时深切感受到“知易行难”[2]。因此,本文设计并实现了一种基于语音识别的垃圾分类装置,其功能为:当人们在投放垃圾时,点击投放按键并说出垃圾的名称,语音识别系统根据该语音信号对垃圾进行归类,显示屏上就能显示出垃圾的名称、种类以及亮对应种类的LED指示灯来引导使用者正确投放。

该装置的核心是语音识别算法,现阶段国内外通常采用隐马尔科夫模型(Hidden Markov Model,HMM),该模型对过程的状态预测效果良好,适宜系统的短期状态预测[3]。为提高识别率,本文利用混合高斯模型(Gaussian Mixture Model,GMM)拟合HMM中的输出矩阵。最后通过实验验证,该装置具有较高识别率。

1 语音识别系统基本理论

随着垃圾分类方案的推进,垃圾的种类已经有了严格的归属,即厨余垃圾(橙色)、可回收垃圾(绿色)、其他垃圾(灰色)、有害垃圾(红色),因此,可以通过自建语音库作为训练样本,把训练样本的特征向量提取出来用于模型训练和进行识别。语音识别系统流程如图1所示。

图1 语音识别系统流程

1.1 语音信号预处理

1.1.1 归一化与预加窗

录音过程中说话者与麦克风距离不同会带来差异,归一化是使语音信号转化到同一区间[-1,1],用来削弱该差异,其计算公式如下:

式中:x[n]为语音信号向量;max为取其最大值。

语音信号的能量与频率成反比,所以说话时大部分能量集中在低音部分,预加窗是使语音信号通过一个高通滤波器来强化高频信号,从而达到输出信号整体变得平滑。经过滤波后此高通滤波器的传输函数为:

式中:a为常数,通过查阅资料[4],a的取值范围为0.93 <a<0.98,本文选择为0.937 5。并且滤波后的语音信号记为xd(n)。

1.1.2 分帧

为了简化模型,本文假设信号是短时平稳的,同时引入帧移,用来保证语音信号不会因为分帧处理而变得不连续。图2所示为将一段语音信号切分为4帧,同时保留一定的帧移。

图2 分帧与帧移示意图

1.1.3 加窗

数学上,分帧得到的xw(n)由语音信号xd(n)与移动的窗函数w(n)相乘:

窗函数用于减轻截断效应且需要较小的旁瓣宽度。常用的3 种窗函数分别是矩形窗、汉宁窗、海明窗[5]。这3 种窗函数的参数如表1所示。

表1 3种窗函数的性能对比表

与矩形窗相比,汉宁窗的带宽更宽,阻带衰减更大,而海明窗为汉宁窗的改进版,能够获得更大的阻带衰减,因此选择海明窗,窗函数w(n)表达式为:

1.2 语音信号特征提取

1.2.1 梅尔滤波器

根据人耳听力对频率的敏感度是非线性的[6],定义一种符合人耳听觉敏感度的梅尔频率Fmel:

人耳的耳蜗结构相当于一组MEL滤波器组,其传递函数Hm(k)为:

式中:f(m)为第m个三角滤波器的中心频率。

1.2.2 特征参数提取流程

特征参数的提取可分为4步,其流程图如图3所示。

图3 MFCC特征参数提取流程图

(1)由于梅尔滤波器是在频域上处理语音信号,所以需要先通过(FFT)快速傅里叶变换将每一帧语音数据由时域信号转换为频域信号,其公式如下:

(2)通过传递函数为Hm(k)的MEL 滤波器,得到语音特征向量Y(m)。

(3)此时的特征向量维数过高,用于训练或识别会大大提高运算量,降低系统的实时性。可采用离散余弦变换(DCT)压缩特征向量信息:

(5)为保持表达式有意义,式(9)中i取值范围为2≤i≤N-2,式(10)中i取值范围为4≤i≤N-4。

1.3 语音识别算法

1.3.1 隐马尔可夫模型

隐马尔可夫模型(HMM)的提出是为了解决统计过程中状态和行为之间的“联动性”,即某个行为的发生与不同状态之间存在特定的概率关联[7]。将HMM应用于语音信号处理,某一段时间下语音信号的特征参数(行为)代表了一条Markov链(可观测的),而信号变化与时间的关系(状态转移)代表了另一条Markov链(不可观测的)。图4所示为隐马尔可夫模型的原理。

图4 HMM原理示意图

HMM模型λ有5个参数,可以用1个向量组描述:

这5个参数的含义如表2所示。

表2 隐马尔可夫模型参数及其含义

1.3.2 混合高斯模型

GMM 模型是统计学模型的一种,可用以拟合HMM 的连续概率密度输出,数学表达式为:

1.3.3 前向后向算法

常规计算P(O|λ) 由于每次都会循环所有状态,计算量极大,采用前向-后向算法可以大大减轻计算量[8],计算式如下:式中:前向概率αt()j为在t时刻,状态为j且观测序列为{o1,o2,…,ot-1,ot} 的概率;后向概率βt(i)为在t时刻,状态为j的且从t+1 时刻到T时刻的观测序列为{ot+1,ot+2,…,oT}的概率;其中aij为状态转移概率矩阵A 的元素;bj(t)为观测概率矩阵B的元素。

1.3.4 维特比解码

在给予一段观测序列O={o1,o2,…,oN}时,需要找到一条最佳路径使得输出概率最大[9]。求解过程为利用前面路径的最优解φt(i)叠加上当前路径的最优解,具体流程如下:

2 基于MATLAB的仿真实验2.1 训练样本的获取

本文采取自建语音库的方式,总共训练并识别12个孤立词,一共4类垃圾,每种垃圾收集4个词,具体词组如表3所示。

表3 垃圾分类词组

2.2 语音识别系统训练

(1)读入学习样本

通过MATLAB中的audioread函数进行读取:

式中:x为数字音频信号向量;fs为抽样频率;fname 为语音信号文件位置。

(2)特征提取

读入语音文件后,需要对语音信号进行特征提取,使用自建函数MFCC:

(3)初始化HMM参数

HMM 模型λ=(N,M,A,B,π)需要设置5 个初始化参数:设定总状态数为3,即N=3;每个状态的起始概率分布π 均设为0;每个状态下可观测的数目为4,即M=4;观察概率矩阵B为连续型混合高斯分布;HMM模型为自左向右模型,且设定这两个转移概率是相等的,即:

(4)模型训练

使用从样本中提取的特征向量训练HMM模型,不断调整参数(A,B)直到训练结束。训练结果如图5所示。

图5 训练结果图

2.3 语音识别模型测试

训练完成之后,便可对新语音文件进行识别,使用自定义函数viterbi:

式中:m为新语音文件的MFCC;HMM为训练好的模型;P为概率最大的孤立词。

测试组由5 个男生和5 个女生组成,每人把12 个孤立词都测试一次,实验结果统计如表4所示。从表中可以发现,本文编写的算法在MATLAB 平台可以达到综合94%的正确率,故本文的语音识别系统可用于垃圾分类。

表4 语音识别结果统计表

3 基于FPGA的硬件实现3.1 系统总体设计

图6 硬件系统构成图

本语音识别系统采用的是ALIENTEK 开拓者FPGA 开发板,其芯片型号为EP4CE10。硬件系统整体可划分为两个部分,一部分是语音识别系统所需求的外围电路,另一部分是利用片上资源配置成的NIOS II 处理器。其硬件系统构成如图6所示。

硬件系统中使用的语音模块结构如图7所示。其是FPGA开发板上集成的语音模块,包含用于录音的MIC、3.5 mm 标准耳机输出接口PHONE、8Ω2W 小喇叭外放模块和立体声多媒体数字信号编解码器芯片WM8978。

图7 语音模块

3.2 核心软件设计

Qsys嵌入式系统的核心部件是NiosII软核处理器,其内部包含了算术逻辑单元,可以进行语音识别算法的实现。

NiosII SBT for Eclipse是NiosII 的开发环境,可编写、编译和调试程序。核心程序如下:

首先需要定义一个HMM 模型,用于导入经过MATLAB 学习过后的模型数据,代码如图8所示。图中N代表了状态数,M代表了每个状态下可观测数目,init代表了观察概率矩阵B,trans代表了转移矩阵A,mix为混合高斯分布。

图8 Eclipse中模型定义代码图

接着是提取语音信号特征参数,使用到的是MFCC 函数,代码如图9所示。图中x[n]为经过WM8978芯片编码的语音信号,fs为采样频率,framesize 为帧长,inc 为帧移,nx为采样点数,fn为帧数。

图9 Eclipse中MFCC函数代码图

最后是语音的识别过程,使用到的是Viterbi 解码函数,代码如图10 所示。图中HMM hmm 为在MATLAB 训练后的HMM模型,o为观测状态,即经过提取出来的特征矩阵,T为矩阵的列长度。

图10 Eclipse中viterbi函数代码图

调试好的程序生成可执行文件(后缀名为.elf 的文件),然后将其下载到Qsys搭建好的语音识别硬件系统中运行。

3.3 系统测试

测试环境要求:(1)测试周围环境安静,没有较大的背景噪音;(2)说话人发音清晰,音量在50~60 db。

硬件测试与软件测试时保持一致,实验结果统计如表5所示。由表中的数据可得,该语音识别装置能够达到较高的正确率,对推广垃圾分类具有积极意义。

表5 语音识别硬件设备试结果表

4 结束语

本文首先介绍了我国垃圾分类的现状,指出知难行易的实际困难,从而引出基于语音识别的垃圾分类装置。

该装置的核心是语音识别算法。详细介绍了语音信号的处理过程,包括归一化、滤波、分帧和提取MFCC 特征参数,算法的模型是隐马尔可夫模型和高斯混合模型,算法的识别是通过Viterbi解码。该装置的实现使用FPGA开发板。阐述了FPGA 开发板上所使调用的模块,利用板上资源配置NIOS II系统实现硬件控制、算法运行和输出显示。

最后通过实验验证,该装置能够达到较高的正确率。当人们在投放垃圾时,点击投放按键并说出垃圾的名称,语音信号通过语音识别系统,对该垃圾进行归类,显示屏上显示出垃圾的名称、种类以及亮对应种类的指示灯来辅助使用者正确垃圾分类。该装置可以直接嵌入现行四色分类垃圾桶,改装成本低,对垃圾分类的推广具有积极意义。

猜你喜欢 语音概率垃圾 第6讲 “统计与概率”复习精讲中学生数理化·中考版(2022年6期)2022-06-05第6讲 “统计与概率”复习精讲中学生数理化·中考版(2021年6期)2021-11-22垃圾去哪了科普童话·学霸日记(2021年2期)2021-09-05概率与统计(一)新世纪智能(数学备考)(2021年4期)2021-08-06概率与统计(二)新世纪智能(数学备考)(2021年4期)2021-08-06那一双“分拣垃圾”的手当代陕西(2019年24期)2020-01-18魔力语音阅读(快乐英语高年级)(2019年5期)2019-09-10基于MATLAB的语音信号处理电子制作(2019年14期)2019-08-20基于MQ3与MP3的价廉物美的酒驾语音提醒器电子制作(2019年9期)2019-05-30对方正在输入……小说界(2018年5期)2018-11-26

机电工程技术2020年12期

机电工程技术的其它文章电梯旁路装置的检验方法和案例分析IPSO-BP 神经网络算法在油浸式变压器故障诊断中的应用耐火砖自动液压机关键技术分析家用电器产品防火标识和说明的分类与研究基于小波包和支持向量机的滚动轴承故障诊断飞摆过速装置故障导致轴电流保护动作事故分析与处理


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有