加权同步叠接相加的语音重构
加权同步叠接相加的语音重构
论文首先介绍了语音信号处理相关的基础知识,其次阐述了叠接相加法(OLA)改变语速的原理,在此基础上深入研究了加权同步叠接相加(WSOLA)算法原理,并完成了算法的程序设计,最后利用MATLAB2009对程序进行仿真实验,并对算法的实验结果进行分析对比。
关键词:语音变速;叠接相加法(OLA);加权同步叠接相加法(WSOLA);语音重构;MATLAB HM000083
4.1.1 MATLAB开发环境
MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。它是一个集成的 用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。 查看完整请+Q:351916072获取
4.1.2语音信号处理常用函数
(1) wavread()函数:读取语音文件(文件头为.wav)
(2) round()函数:对变量进行四舍五入
(3) floor()函数:对变量向下取整
(4) max()函数:求最大值
(5) fft()函数:对变量进行快速傅里叶变换
(6) ifft()函数:对变量进行快速傅里叶逆变换
(7)length()函数:求变量长度
(8)zeros()函数:产生全零矩阵
(9) enframe()函数:分帧
(10)wavwrite()函数:保存语音文件
4.2叠接相加法的MATLAB编程实现与仿真结果
4.2.1具体实现
1、读取语音信号f1_16,语音信号的文件格式为“.wav”;
2、每次帧移的点数为L=300;
3、FFT点数n_fft=1024;
4、窗长N=600;
5、加窗,先加汉明窗win=hamming(w),后依次加汉宁窗、矩形窗;
6、比例因子a,改变a可以改变语速的快慢,设置当a=1时输出为原始语速。
7、建立语音信号的STFT矩阵,具体实现为:
y=zeros(1,N+(n_frame-1)*L);
y((N-L)+1:(N-L)+length(n))=x;
A=zeros(n_fft,n_frame);
for i=1:n_frame
z=y((i-1)*L+1:(i-1)*L+N);
z=z.*win';
Z=fft(z,n_fft);
A(:,i)=Z;
end
8、调用函数OLA_L以抽取因子M重建原始信号。
[x_n]=OLA(A,N,a,M,n_fft,n_frame);
9、OLA函数,具体实现为:
function [x_n]=OLA(A,N,M,L,n_fft,n_frame)
x_n=zeros(w+(n_frame/M-1)*L*M,n_frame);
for i=1:2:n_frame-1
x_n(((i-1)/2)*L*M+1:((i-1)/2)*L*M+n_fft,i)=ifft(A(:,i));
end
x_n=sum(x_n,2)*M;
10、保存并播放输出语音wavplay(x_n,44100);
摘 要 III
ABSTRACT IV
第一章 绪论 1
1.1引言 1
1.2课题简介 1
1.2.1课题研究背景与发展现状 1
1.2.2课题的主要内容 2
1.2.3论文章节安排 2
第二章 基础理论知识介绍 3
2.1语音信号处理的基础知识 3
2.1.1语音信号模型 3
2.1.2语音信号的预处理 5
2.2语音信号短时频域分析 7
2.2.1傅里叶变换的解释 8
2.2.2滤波器的解释 9
2.3基音同步叠加法PSOLA 12
2.3.1基音同步叠加PSOLA原理 12
2.3.2基音同步叠加PSOLA算法实现步骤 15
第三章 OLA及WSOLA原理 17
3.1叠接相加法(OLA)原理 17
3.2加权同步叠接相加法(WSOLA)原理 21
第四章 编程实现与仿真结果 25
4.1 MATLAB软件平台介绍 25
4.1.1 MATLAB开发环境 25
4.1.2语音信号处理常用函数 26
4.2叠接相加法的MATLAB编程实现与仿真结果 26
4.2.1具体实现 26
4.2.2仿真结果 27
总结 32
参考文献 33
致谢 34
附录 35
论文首先介绍了语音信号处理相关的基础知识,其次阐述了叠接相加法(OLA)改变语速的原理,在此基础上深入研究了加权同步叠接相加(WSOLA)算法原理,并完成了算法的程序设计,最后利用MATLAB2009对程序进行仿真实验,并对算法的实验结果进行分析对比。
关键词:语音变速;叠接相加法(OLA);加权同步叠接相加法(WSOLA);语音重构;MATLAB HM000083
4.1.1 MATLAB开发环境
MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。它是一个集成的 用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档。
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。 查看完整请+Q:351916072获取
4.1.2语音信号处理常用函数
(1) wavread()函数:读取语音文件(文件头为.wav)
(2) round()函数:对变量进行四舍五入
(3) floor()函数:对变量向下取整
(4) max()函数:求最大值
(5) fft()函数:对变量进行快速傅里叶变换
(6) ifft()函数:对变量进行快速傅里叶逆变换
(7)length()函数:求变量长度
(8)zeros()函数:产生全零矩阵
(9) enframe()函数:分帧
(10)wavwrite()函数:保存语音文件
4.2叠接相加法的MATLAB编程实现与仿真结果
4.2.1具体实现
1、读取语音信号f1_16,语音信号的文件格式为“.wav”;
2、每次帧移的点数为L=300;
3、FFT点数n_fft=1024;
4、窗长N=600;
5、加窗,先加汉明窗win=hamming(w),后依次加汉宁窗、矩形窗;
6、比例因子a,改变a可以改变语速的快慢,设置当a=1时输出为原始语速。
7、建立语音信号的STFT矩阵,具体实现为:
y=zeros(1,N+(n_frame-1)*L);
y((N-L)+1:(N-L)+length(n))=x;
A=zeros(n_fft,n_frame);
for i=1:n_frame
z=y((i-1)*L+1:(i-1)*L+N);
z=z.*win';
Z=fft(z,n_fft);
A(:,i)=Z;
end
8、调用函数OLA_L以抽取因子M重建原始信号。
[x_n]=OLA(A,N,a,M,n_fft,n_frame);
9、OLA函数,具体实现为:
function [x_n]=OLA(A,N,M,L,n_fft,n_frame)
x_n=zeros(w+(n_frame/M-1)*L*M,n_frame);
for i=1:2:n_frame-1
x_n(((i-1)/2)*L*M+1:((i-1)/2)*L*M+n_fft,i)=ifft(A(:,i));
end
x_n=sum(x_n,2)*M;
10、保存并播放输出语音wavplay(x_n,44100);
摘 要 III
ABSTRACT IV
第一章 绪论 1
1.1引言 1
1.2课题简介 1
1.2.1课题研究背景与发展现状 1
1.2.2课题的主要内容 2
1.2.3论文章节安排 2
第二章 基础理论知识介绍 3
2.1语音信号处理的基础知识 3
2.1.1语音信号模型 3
2.1.2语音信号的预处理 5
2.2语音信号短时频域分析 7
2.2.1傅里叶变换的解释 8
2.2.2滤波器的解释 9
2.3基音同步叠加法PSOLA 12
2.3.1基音同步叠加PSOLA原理 12
2.3.2基音同步叠加PSOLA算法实现步骤 15
第三章 OLA及WSOLA原理 17
3.1叠接相加法(OLA)原理 17
3.2加权同步叠接相加法(WSOLA)原理 21
第四章 编程实现与仿真结果 25
4.1 MATLAB软件平台介绍 25
4.1.1 MATLAB开发环境 25
4.1.2语音信号处理常用函数 26
4.2叠接相加法的MATLAB编程实现与仿真结果 26
4.2.1具体实现 26
4.2.2仿真结果 27
总结 32
参考文献 33
致谢 34
附录 35
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/dzkxyjs/2288.html