• 全国 [切换]
  • 深圳市鼎达信装备有限公司

    扫一扫关注

    当前位置: 首页 » 新闻动态 » 真空技术 » 正文

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

    放大字体  缩小字体 发布日期:2021-10-27 08:41:05    浏览次数:135    评论:0
    导读

    摘要:近年来,垃圾桶逐渐由双色桶变为了四色桶,但是垃圾桶提示不全,学习成本高等问题使人们在垃圾分类时深感知易行难。为解决这些问题,设计并实现了一款基于语音识别的智能垃圾分类装置。设计了语音识别系统,系统对语音信号预处理并提取特征,应用隐马尔可夫模型建模,利用特征参数训练模型,使用维特比算法进行语音识

    摘要:近年来,垃圾桶逐渐由双色桶变为了四色桶,但是垃圾桶提示不全,学习成本高等问题使人们在垃圾分类时深感知易行难。为解决这些问题,设计并实现了一款基于语音识别的智能垃圾分类装置。设计了语音识别系统,系统对语音信号预处理并提取特征,应用隐马尔可夫模型建模,利用特征参数训练模型,使用维特比算法进行语音识别。实现了基于FPGA的硬件装置,调用软核构建基于NiosII的片上系统,将训练好的模型和算法导入系统,将识别结果反馈在显示器上。实验表明,该装置语音识别正确率较高,且能够嵌入现有四色桶,对垃圾分类的推广具有积极意义。

    关键词:语音识别;隐马尔可夫模型;MATLAB;FPGA

    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)压缩特征向量信息:

    (4)为体现语音的“上下文”关系,对其求一界差分和二阶差分

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

    1.3 语音识别算法

    1.3.1 隐马尔可夫模型

    回收侧部余热可以影响到阴极热场,达到整个阴极等温线上移的效果。以阴极底部为例,底部温度由余热回收前的843.3 ℃降低为余热回收后的810.9 ℃[4]。侧部余热回收有利于电解槽形成较规整的炉膛内形,从而引起电解槽阴极炭块等温线的上移。

    图4 HMM原理示意图

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

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

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

    1.3.2 混合高斯模型

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

    式中:为模型λ 采集到的N 个可观测数据;为第K 个以为均值和方差的高斯分布;αK 为第K个高斯分布所占权重。

    1.3.3 前向后向算法

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

    1.3.4 维特比解码

    在给予一段观测序列O={o 1,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系统实现硬件控制、算法运行和输出显示。

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


     
    (文/小编)
    打赏
    免责声明
    • 
    本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:https://2024.dingdx.com/news/show.php?itemid=957 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
    0相关评论
     

    © Copyright 深圳市鼎达信装备有限公司 版权所有 2015-2022. All Rights Reserved.
    声明:本站内容仅供参考,具体参数请咨询我们工程师!鼎达信作为创新真空产品研发制造商,我们提供海绵吸具,海绵吸盘,真空吸盘,真空发生器,真空泵,真空鼓风机,缓冲支杆,真空配件,真空吊具等等产品

    粤ICP备17119653号