【语音识别】基于小波变换DWT 0-9数字语音识别附matlab代码

简介: 【语音识别】基于小波变换DWT 0-9数字语音识别附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

语音识别是一门交叉学科,它与语音学,语言学,数字信号处理,模式识别,最优化理论,计算机科学等众多学科紧密相连,是一门既有理论价值又有实际意义的学科.语音识别发展了几十年,取得了很大的进步.语音识别在某些方面还是存在一些问题:如对自然语言的识别和理解还属于初级阶段;语音信息量大不易存储;语音的模糊性;单个字母或词,字的语音特性受上下文的影响,以致改变了重音,音调,音量和发音速度等;环境噪声和其它干扰对语音识别有严重影响,致使识别率低.因此,解决以上问题是语音识别发展的重点.

⛄ 部分代码

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)')

%



%      Copyright (C) Mike Brookes 1997

%      Version: $Id: melbankm.m,v 1.3 2005/02/21 15:22:13 dmb Exp $

%

%   VOICEBOX is a MATLAB toolbox for speech processing.

%   Home page: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%   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

 end

end

f0=700/fs;

fn2=floor(n/2);

lr=log((f0+fh)/(f0+fl))/(p+1);

% convert to fft bin numbers with 0 for DC term

bl=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;

end

if any(w=='n')

 v=1-cos(v*pi/2);

elseif any(w=='m')

 v=1-0.92/1.08*cos(v*pi/2);

end

if nargout > 1

 x=sparse(r,c,v);

else

 x=sparse(r,c+mn-1,v,p,1+fn2);

end

⛄ 运行结果

⛄ 参考文献

[1] 李法强. 基于小波变换的语音识别的研究和应用[D]. 桂林理工大学, 2011.

[2] 邹蓬, 张鹏, 陈艳. 一种基于小波变换的数字水印技术[J]. 中国民航大学学报, 2005.

[3] 金小华. 基于DWT的数字视频水印技术[J]. 苏州市职业大学学报, 2009.

[4] 杨雄. 基于小波变换的数字图像水印研究[D]. 华中师范大学.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
2月前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
2天前
|
算法 计算机视觉 异构计算
基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证
```markdown ## FPGA 仿真与 MATLAB 显示 - 图像处理的 FFT/IFFT FPGA 实现在 Vivado 2019.2 中仿真,结果通过 MATLAB 2022a 展示 - 核心代码片段:`Ddddddddddddddd` - 理论:FPGA 实现的一维 FFT/IFFT,加速数字信号处理,适用于高计算需求的图像应用,如压缩、滤波和识别 ```
|
10天前
|
传感器 算法
ANC主动降噪理论及Matlab代码实现
ANC主动降噪理论及Matlab代码实现
|
17天前
|
API 语音技术 Python
【python的魅力】:教你如何用几行代码实现文本语音识别
【python的魅力】:教你如何用几行代码实现文本语音识别
|
17天前
|
机器学习/深度学习 算法
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
```markdown 探索烟草香型分类:使用Matlab2022a中的BP神经网络结合小波变换。小波分析揭示香气成分的局部特征,降低维度,PCA等用于特征选择。BP网络随后处理这些特征,以区分浓香、清香和中间香型。 ```
|
2月前
|
算法 数据安全/隐私保护 C++
基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真
该内容是关于一个图像水印算法的描述。在MATLAB2022a中运行,算法包括水印的嵌入和提取。首先,RGB图像转换为YUV格式,然后水印通过特定规则嵌入到Y分量中,并经过Arnold置乱增强安全性。水印提取时,经过逆过程恢复,使用了二维CS-SCHT变换和噪声对比度(NC)计算来评估水印的鲁棒性。代码中展示了从RGB到YUV的转换、水印嵌入、JPEG压缩攻击模拟以及水印提取的步骤。
|
2月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于DCT变换和位平面分解的数字水印嵌入提取算法matlab仿真
这是一个关于数字水印算法的摘要:使用MATLAB2022a实现,结合DCT和位平面分解技术。算法先通过DCT变换将图像转至频域,随后利用位平面分解嵌入水印,确保在图像处理后仍能提取。核心程序包括水印嵌入和提取,以及性能分析部分,通过PSNR和NC指标评估水印在不同噪声条件下的鲁棒性。
|
2月前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)