1 简介

在孤立词语音识别中,动态时间规整DTW算法是一种应用较为广泛的算法之一,有着较强的科学性,在立足于当前DTW语音识别算法应用的实际情况下,简略阐述了该课题的研究背景,并从预处理和特征参数提取以及DTW算法两方面着手对基于DTW算法的语音识别系统实现进行了探究,以此为基础展开了相应的仿真和分析,旨在为相关研究人员提供参考.

语音识别系统的典型原理框图如图1-1所示。从图中可以看出语音识别系统的本质就是一种模式识别系统,它也包括特征提取、模式匹配、参考模式库等基本单元。由于语音信号是一种典型的非平稳信号,加之呼吸气流、外部噪音、电流干扰等使得语音信号不能直接用于提取特征,而要进行前期的预处理。预处理过程包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。经过预处理的语音数据就可以进行特征参数提取。在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。后续的处理过程还可能包括更高层次的词法、句法和文法处理等,从而最终将输入的语音信号转变成文本或命令。

​本文所描述的语音识别系统(下称本系统)将对数字0~9共10段参考语音进行训练并建立模板库,之后将对多段测试语音进行识别测试。系统实现了上图中的语音输入、预处理、特征提取、训练建立模板库和识别等模块,最终建立了一个比较完整的语音识别系统。

2 部分代码

function [x,mn,mx]=melbankm(p,n,fs,fl,fh,w)%MELBANKM determine matrix for a mel-spaced filterbank [X,MN,MX]=(P,N,FS,FL,FH,W)%% Inputs:  p   number of filters in filterbank%    n   length of fft%    fs  sample rate in Hz%    fl  low end of the lowest filter as a fraction of fs (default = 0)%    fh  high end of highest filter as a fraction of fs (default = 0.5)%    w   any sensible combination of the following:%          't'  triangular shaped filters in mel domain (default)%          'n'  hanning shaped filters in mel domain%          'm'  hamming shaped filters in mel domain%%          'z'  highest and lowest filters taper down to zero (default)%          'y'  lowest filter remains at 1 down to 0 frequency and%         highest filter remains at 1 up to nyquist freqency%%           If 'ty' or 'ny' is specified, the total power in the fft is preserved.%% Outputs:  x     a sparse matrix containing the filterbank amplitudes%          If x is the only output argument then size(x)=[p,1+floor(n/2)]%          otherwise size(x)=[p,mx-mn+1]%    mn   the lowest fft bin with a non-zero coefficient%    mx   the highest fft bin with a non-zero coefficient%% Usage:  f=fft(s);      f=fft(s);%    x=melbankm(p,n,fs);    [x,na,nb]=melbankm(p,n,fs);%    n2=1+floor(n/2);    z=log(x*(f(na:nb)).*conj(f(na:nb)));%    z=log(x*abs(f(1:n2)).^2);%    c=dct(z); c(1)=[];%% To plot filterbanks e.g.  plot(melbankm(20,256,8000)')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   This program is free software; you can redistribute it and/or modify%   it under the terms of the GNU General Public License as published by%   the Free Software Foundation; either version 2 of the License, or%   (at your option) any later version.%%   This program is distributed in the hope that it will be useful,%   but WITHOUT ANY WARRANTY; without even the implied warranty of%   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the%   GNU General Public License for more details.%%   You can obtain a copy of the GNU General Public License from%   ftp://prep.ai.mit.edu/pub/gnu/COPYING-2.0 or by writing to%   Free Software Foundation, Inc.,675 Mass Ave, Cambridge, MA 02139, USA.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if nargin < 6  w='tz';  if nargin < 5    fh=0.5;    if nargin < 4      fl=0;    end  endendf0=700/fs;fn2=floor(n/2);lr=log((f0+fh)/(f0+fl))/(p+1);% convert to fft bin numbers with 0 for DC termbl=n*((f0+fl)*exp([0 1 p p+1]*lr)-f0);b2=ceil(bl(2));b3=floor(bl(3));if any(w=='y')  pf=log((f0+(b2:b3)/n)/(f0+fl))/lr;  fp=floor(pf);  r=[ones(1,b2) fp fp+1 p*ones(1,fn2-b3)];  c=[1:b3+1 b2+1:fn2+1];  v=2*[0.5 ones(1,b2-1) 1-pf+fp pf-fp ones(1,fn2-b3-1) 0.5];  mn=1;  mx=fn2+1;else  b1=floor(bl(1))+1;  b4=min(fn2,ceil(bl(4)))-1;  pf=log((f0+(b1:b4)/n)/(f0+fl))/lr;  fp=floor(pf);  pm=pf-fp;  k2=b2-b1+1;  k3=b3-b1+1;  k4=b4-b1+1;  r=[fp(k2:k4) 1+fp(1:k3)];  c=[k2:k4 1:k3];  v=2*[1-pm(k2:k4) pm(1:k3)];  mn=b1+1;  mx=b4+1;endif any(w=='n')  v=1-cos(v*pi/2);elseif any(w=='m')  v=1-0.92/1.08*cos(v*pi/2);endif nargout > 1  x=sparse(r,c,v);else  x=sparse(r,c+mn-1,v,p,1+fn2);end

3 仿真结果

4 参考文献

[1]吴晓平, 崔光照, 路康. 基于DTW算法的语音识别系统实现[J]. 信息化研究, 2004(07):17-19.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【语音识别】基于DTW算法实现0~9数字和汉字语音识别含Matlab源码相关推荐

  1. 【灰色神经预测】基于布谷鸟算法优化灰色神经网络模型实现数据回归预测含Matlab源码

    1 简介 人工神经网络已成功应用到许多领域,如模式识别.机器学习.信号处理和信息融合等,但是,如果神经网络的学习算法或拓扑结构选择不当,可能导致出现神经网络的预测准确度低的问题.为此,许多研究者开始将 ...

  2. 【风电功率预测】基于matlab帝国殖民竞争算法优化BP神经网络风电功率预测【含Matlab源码 1314期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [风电功率预测]基于matlab帝国殖民竞争算法优化BP神经网络风电功率预测[含Matlab源码 1314期] ⛄二.帝国殖民竞争算法简 ...

  3. 【路径规划】基于matlab DWA算法机器人局部避障路径规划【含Matlab源码 890期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[路径规划]基于matlab DWA算法机器人局部避障路径规划[含Matlab源码 890期] 获取代码方式2: 通过订阅紫极神光博客付费 ...

  4. 【多目标优化求解】基于matlab粘菌算法MOSMA求解多目标优化问题【含Matlab源码 2279期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[多目标优化求解]基于matlab粘菌算法MOSMA求解多目标优化问题[含Matlab源码 2279期] 点击上面蓝色字体,直接付费下载, ...

  5. 【多目标优化求解】基于matlab飞蛾扑火算法 (NSMFO)求解多目标优化问题 【含Matlab源码 2312期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[多目标优化求解]基于matlab飞蛾扑火算法 (NSMFO)求解多目标优化问题 [含Matlab源码 2312期] 点击上面蓝色字体,直 ...

  6. 【手写数字识别】基于matlab GUI BP神经网络单个或连续手写数字识别系统【含Matlab源码 2296期】

    ⛄一.手写数字识别技术简介 1 案例背景 手写体数字识别是图像识别学科下的一个分支,是图像处理和模式识别研究领域的重要应用之一,并且具有很强的通用性.由于手写体数字的随意性很大,如笔画粗细.字体大小. ...

  7. 【LSSVM回归预测】基于matlab人工蜂群算法优化最小二乘支持向量机LSSVM数据回归预测【含Matlab源码 2213期】

    ⛄一.人工蜂群算法优化最小二乘支持向量机LSSVM简介 1 最小二乘支持向量机 最小二乘支持向量机是支持向量机的一种改进算法[9,10],它将SVM算法中的不等式约束转化为等式约束,采用最小二乘线性系 ...

  8. 【语音去噪】基于最小二乘自适应滤波LMS和RLS实现语音去噪含Matlab源码

    1 简介 自适应信号处理的理论和技术已经成为人们常用滤波和去噪技术.文中讲述了自适应滤波的原理以及LMS算法和RLS算法两种基本自适应算法的原理及步骤.并用MATLAB分别对两种算法进行了自适应滤波仿 ...

  9. 【CV/Matlab系列】基于图像处理的苹果质量检测和分级系统【含Matlab源码】

    DATE: 2020.10.18 文章目录 前言 1.代码获取方式 2.效果展示 2.1.示例1 2.2.示例2 前言 在之前大学毕设时,设计了一种基于图像处理的苹果质量检测和分级系统.采用matla ...

最新文章

  1. java list 自定义类型转换_java – 可以从List生成平面XML结构的XStream自定义转换器?...
  2. 固态器件理论(11)超导设备
  3. Google Project Zero挖洞经验整理
  4. 谷歌推荐Data Binding实现MVVM模式(完整文档)
  5. 前端学习(2585):vue-cli创建项目
  6. OSI(Open System Interconnect)开放式系统互联
  7. 去除List集合中的重复元素,并保持原有数据的初始顺序
  8. 自定义View(四) ViewGroup 动态添加变长Tag标签 支持自动换行
  9. 【李宏毅2020 ML/DL】P13 Backpropagation | 神经网络反向传播到底是怎么计算的
  10. Julia : Some, something, Nothing
  11. java 1.6 jre 下载_jre1.6下载-Java环境 官方版 - 安下载
  12. 【026】国务院督查组莅临翼辉信息参观调研
  13. 消防信号二总线有没电压_消防主机总线电压偏低 消防二总线详解
  14. 微型计算机的最少配是,只有SD卡大小的微型电脑 配Atom处理器
  15. 加拿大办理电动自行车申请GCC认证
  16. echarts之柱状图(2)
  17. Java遍历list集合转换成PDF
  18. 计算机网络课程实验报告一
  19. pandas水平concat后出现NaN值
  20. c# InvokeRequired和Invoke

热门文章

  1. 线性表的顺序表示和实现 (创建,插入,删除,查找)数据结构 严蔚敏(C语言版)代码实现
  2. simulink+FlightGear飞行器建模仿真
  3. 【科普】之桌面操作系统
  4. 遗传算法的python实现(手撕python遗传算法)
  5. IDEA背景颜色设置问题
  6. Java代码防止被反编译的4中方法
  7. “第二名是头号输家”惯例下,“鱼虎斗”真的结束了吗?
  8. netty 系列之:netty 中常用的字符串编码解码器
  9. echarts——map
  10. 软件项目管理与素质拓展-2.3项目管理是残缺的美