ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:785.85KB ,
资源ID:12120015      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12120015.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于幅度调制的语音信号合成资料.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于幅度调制的语音信号合成资料.docx

1、基于幅度调制的语音信号合成资料课程设计说明书设计题目:基于幅度调制的语音信号合成专 业: 电子信息工程 班 级: 设计人: 学 号: 山 东 科 技 大 学山 东 科 技 大 学课 程 设 计 任 务 书 电子信息工程 专业一、 课程设计题目: 基于幅度调制的语音信号合成 二、 设计原始资料: MATLAB软件编程环境;PC机 三、 设计应解决下列各主要问题:1、选择合适的语音合成方法,并用 MATLAB实现; 2、选择合适的方法对语音信号进行分析处理; 3、利用幅度调制法进行语音合成。 四、 设计说明书应附有下列图纸: 五、命题发出日期: 2013-12-15 设计应完成日期: 2013-1

2、2-27 设计指导教师(签章) 教研室主任(签章) 指导教师对课程设计的评语 指导教师(签章): 年 月 日摘 要 语音信号处理是一门比较实用的电子信息工程专业课程,而语音是人类获取信息的的重要来源和利用信息的重要手段。通过语言相互传递信息是人类最重要的基本功能之一。语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。Matlab是一个数据分析和处理功能十分强大的工程实用软件。本文介绍了利用matlab软件实现驱动声卡采集语音信号和语音信号采集后的处理方法,并通过实例利用matlab分析了语音信号处理的过程

3、,并最终得到合成的语音信号。关键词:语音信号处理 语音合成 MATLAB 目 录1 绪论 52 设计与实现 62.1相关知识简介 6 2.2语音合成方法确定 82.2.1 LPC线性预测参数法 82.2.2 振幅调制法 10 2.3语音合成步骤 112.3.1 男声处理 112.3.2 女声处理 152.3.3 声音调幅载波 193 设计总结与心得体会214 附录22 4.1 参考文献22 4.2 程序代码231、绪 论 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常

4、用和最方便的交换信息形式。同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。语音合成技术和语音识别是实现人机语音通信,建立一个有听和讲能力的语音系统所必需的两项关键技术。使电脑具有类似于人一样的说话和听懂人说话的能力,是90年代信息产业的重要竞争市场。和语言识别相比,语言合成的技术相对说来要成熟一些,是该领域中近期最有希望产生突破并形成产业化的一项技术。 综观语言合成技术的研究,语音合成发展方向为:1.、提高合成语音的自然度;2、丰富合成语音的表现力;3、降低语音合成

5、技术的复杂度;4、多语种文语合成等,认真学习并研究语音信号的合成技术,对于我们开拓知识,提高能力,以及在后续课程的学习具有重要的意义。2、设计与实现2.1相关知识简介人发声的声波区间:男 80Hz-500Hz;女100Hz-1KHz,针对男女声音频率的不同,可以在频域上进行一些处理;共振峰:是指在声音的频谱中能量相对集中的一些区域,共振峰是音质的决定因素。因此可以通过此特点来提取声音的一些特性; 数字滤波器设计原理:数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。在信号的过滤、检测和参数的估计

6、等方面,经典数字滤波器是使用最广泛的一种线性系统。数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。 FFT:离散傅立叶变换的快速算法,可以将一个时域信号变换到频域来处理。比如:x=sin(2*pi*50*t)+sin(2*pi*100*t)+sin(2*pi*700*t)的图像与频谱如下,可以很直观的看到x的频率集中在50,100,700处。 分帧处理:语音信号可以认为是短时平稳的。在550ms的范围内,语音频谱特性和一些物理特性参数基本保持不变。我们将每个短时的语音称为一个分析帧。一般帧长取1030ms。可以看出分帧

7、后一帧声音信号具有明显的周期性。窗函数:加窗函数来减小数据采样时带来的谱间泄漏。Hanning窗在大多数场合很有效,它具有良好的频率分辨率,并降低了频率泄漏。分帧时配合使用Hanning窗可以很好的对信号去噪,提取包络等处理。MATLAB音频文件相关函数:wavrecord(fs*t,fs):以fs为采样率录音,录音时长为t;wavwrite(y,fs,16,luyin.wav):将luyin文件储存;wavread(yuyin.wav):读取yuyin文件;sound(a*y,b*fs):以a倍振幅,b倍频率试听y文件。2.2语音合成方法确定2.2.1 LPC线性预测参数法1.语音生成模型通

8、过对声管的研究,发现它可以用一个N阶全极点滤波器表述,即: 对于典型的男声,N=10,所有的极点要分别构成共轭对以保证系数都是实数。就可以得到产生语音信号的离散语音模型,如图所示:假设激励信号用e(n)表示,语音信号用s(n)表示,根据全极点模型表达式,有: 从而可以用声管模型对激励信号进行滤波得到语音信号。2. 语音预测模型假设已经知道了系数ai,那么生成模型的输入和输出对换,就构成了语音的预测模型,即语音信号s(n)送入预测滤波器,得到预测残差e(n) 发端需要把误差e(n)传到收端,收端可以用e(n)作为上述差分方程的激励得到重建语音。在发端,语音s(n)是滤波器的输入,而误差e(n)是

9、输出。系数ai也需要从发端传到收端,但因为语音具有短时平稳性,即在短时间内(比如10ms),系数ai可以认为不发生变化,所以也不必太频繁地传输,同时采用预测技术后,可以大幅度地降低语音的带宽。这种通过现行预测方法压缩语音数据量的技术称为线性预测编码。3. 语音重建模型如果知道激励信号x(n)和滤波器系数ai,就可以利用激励生成重建语音了和语音生成模型的公式完全相同 但这个模型被称为语音重建模型,为了同生成模型区分开,称为重建语音,如果x(n)正好等于e(n),那么重建语音就会和原始语音s(n)完全相同。语音的非平稳性(虽然短时平稳)导致预测系数ai是时变的,一般每1020ms就会发生一些变化以

10、产生不同的音节。在这种情况下,滤波过程也要分段进行,即每次用不同的滤波器系数,但相邻两次滤波必须要保持滤波器的状态不发生变化。4. 分析与合成语音首先,抽样的语音信号被分成10ms长的段;然后,对每段数据进行统计分析,计算相邻样点的相关性并最终得到最佳预测系数。合成过程就是利用这些预测系数,以及周期的单位样值序列作为输入,依次得到每段合成语音。通过以上理论分析发现,LPC线性预测参数法的特点:虽然原理清晰,调节灵活,但实现过程较复杂,步骤较多,同时得到的音质较差。因此我们采取下一种方法:振幅调制法。振幅调制法相比于LPC线性预测参数法较易实现。2.2.2 振幅调制法 振幅调制法相比于LPC线性

11、预测参数法较简单,易于实现,同时步骤较少,因此可以减少积累误差。振幅调制法的原理如下:男声信号输入女声信号输入时频域分析处理时频域分析处理提取包络提取音色频率振幅调制得到合成声音时频域分析处理下面具体介绍振幅调制法的具体过程以及如何用MATLAB实现,同时将设计过程及其中遇到的问题和解决办法列写出来。2.3语音合成步骤2.3.1 男声处理男声信号最关键的操作是提取频谱包络。语音包络携带了语音信号的语义和个性化信息,准确提取频谱包络是语音分析的一项重要任务。在许多科学领域的信号处理中,都需要提取信号的包络信息,因此现在有许多成熟的信号包络提取方法。目前最常用的方法就是希尔伯特变换。同时近年又兴起

12、一种新的时频分析方法小波变换,由于它具有良好的时频局部化特性和多尺度分析的功能,应用日益广泛。利用小波变换(采用己调高斯小波)提取信号包络的效果比希尔伯特变换更好。但是由于对于语音信号处理方面的知识储备不足,而且由于现在没有成型的小波变换模型供参考,因此本设计最终采用的是基于希尔伯特变换的包络提取。同时在设计的过程中由于对包络的概念理解不清,也走了不少弯路,不过也取得了一些意外的效果。在数学与信号处理的领域中,一个实值函数的希尔伯特变换是将信号s(t)与1/(t)做卷积,以得到s(t)。因此,希尔伯特变换结果s(t)可以被解读为输入是s(t)的线性时不变系统的输出,而此系统的脉冲响应为1/(t

13、)。这是一项有用的数学工具,用在描述一个以实数值载波做调制的信号之复数包络,出现在通讯理论中发挥着重要作用。希尔伯特变换的数学表达式:s(t)=H(s)= s(n)h(t-n)dn=(1/)(s(n)/(t-n)dn其中h(t)=1/(t)Hilbert变换具有两个性质:性质1 序列x(n)通过Hilbert变换器后,信号频谱的幅度不发生变化,这是因为Hilbert变换器是全通滤波器,引起频谱变化的只是其相位。性质2 序列x(n与其Hilbert变换是正交的。MATLAB提供了计算Hilbert变换的函数,其格式为y=Hilbert(x)。但需注意的是,该函数计算出的结果是序列的解析信号,其虚

14、部才是序列的Hilbert变换。 我们首先对采集到的语音信号进行预处理,截取片段,滤除其中的噪声。对采集语音信号分析其频谱后,发现其含有一定的高频噪声,因此决定设计一个低通滤波器对其进行滤波。 设计的低通滤波器(设计为子程序)如下:对采集到的信号选取的参数为:通带频率:400Hz。阻带频率:420Hz。试听有较好的效果。处理过程及结果如下: 其次我们对信号进行分帧处理。由于语音信号的短时平稳特性,可以将平稳过程的处理方法和理论引入到语音信号的短时处理中,将语音信号划分为很多短时的语音段,每个短时的语音段称为一个分析帧。这样,对一帧语音信号进行处理就相当于对特征固定的持续信号进行处理。在处理时,

15、按帧取数据,处理完后再取下一帧。前一帧和后一帧的交叠部分称为帧移。帧移与帧长的比值一般取为0.20.5。设计的分帧算法如下,考虑到调试方便特设计为子函数的形式,方便调用调试:然后我们就可以按帧对信号进行处理,通过不断的尝试调试,最终发现最优的处理方法为:1、每一帧进行加窗处理(Hanning窗);2、对每一帧进行希尔伯特变换;3、帧合并;4、从中抽取出处理后的语音信号。至此,男声语音包络提取完毕。波形图如下:2.3.2 女声处理 对于女声,我们主要想提取其音色及频率,然后用其与男声的包络进行幅度调制。但是最终的提取效果总是不是太好,尝试了很多种办法,都不能达到理想的效果。因此最终决定直接用女声

16、信号来调制男声信号,发现总体能取得较能接受的效果。虽然效果不佳,但是在整个过程中收货颇多。下面将所进行的尝试过程列写下来,总结原因,希望以后有机会还能再进一步进行优化处理。 首先分析人的发音特性。众所周知,一切物体发声的原理都是振动出声,由空气传出,那在物体振动的时候出来的频率都是一个波形,这个波总可以分解为一系列不同频率正弦波的叠加,含一个基波和许多谐波,即内含各种频率成分,音色的不同,就是这些谐波的含量都不相同。因此我们可以根据这个特性来提取这些谐波成分,然后加到男声包络上,可能会有不错的结果。 通过上面这两张图片可以看出短时内的基波谐波分布,并呈现出周期特性。并可以看到短时内声音主要频率

17、都是集中分布的,因此我们可以用一个带阻滤波器来把“基波”滤除掉,然后依次把得到的“谐波”加到包络上。 方法如下:设计的带阻滤波器子函数:处理前声音特效:处理后声音特效:对比发现差别不是很明显,并未达到预期的效果。而且加载到男声的包络上后并没有明显的效果。原因可能是滤波器的选取不合适。这里用的是切比雪夫型滤波器。带阻滤波器的设计及参数选择都是一个不好把握的问题。用FIR滤波器还是IIR滤波器;用椭圆滤波器还是切比雪夫型滤波器还是其他类型滤波器;脉冲响应不变法以及双线性变换法的在使用中区别;是否进行加窗处理;参数选取多少合适等等一系列问题待解决。因此最终没有达到较好的效果。但是在处理这些问题的过程

18、中,真正把数字信号处理课程中的内容做到学以致用。最后决定对女声信号不进行音色提取处理,直接加载到包络上,最终得到的结果可以接受。最终女声处理素材如下:截取李娜的青藏高原的高潮部分,并进行相应的低通滤波去噪处理。 可见声音频率集中在1500Hz以上,不愧为“华语第一女高音”,李娜的声音已经可以在三个八度的音域内自由驰骋,她的歌唱技艺已达到了一种自由王国的境界。特怀着崇拜的心情来对这段语音信号进行处理。2.3.3 声音调幅载波信号调制:信号调制主要有三种基本调制方法,分别为幅度调制(AM),频率调制(FM)和相位调制(PM)。信号调制原理是将低频信号加载到高频载波信号的过程,或者说把信息加载到信息

19、载体上以便传输的处理过程,称为调制。所谓“加载”,其实质是使高频载波信号(信息载体)的某个特性参数随信息信号幅值的大小程线性变化。基于调幅调制的语音信号合成是以男生信号作为调制信号,女生信号为载波信号来合成一种以女生语音信号声色表述男生语音内容的新信号。这种调制方式是用传递的低频信号去控制作为传送载体的高频振荡波的幅度,是已调波的幅度随调制信号的大小线性变化,而保持载波的角频率不变。本设计采用的是幅度调制的方法,用采集到的男生信号去对女生信号进行幅度调制,实现语音合成的目的。幅度调制的原理如下(以正弦信号为例): 有了以上的例子我们就可以对男女声信号进行调制了,实现过程如下:可见合成信号的时域

20、波形与男声的时域波形较为相像,频率与女生信号的相差无几,合成信号的特征取得较满意的效果。3、设计总结与心得体会在这两个周的课程设计中,我学到了很多平常在书本上学不到的东西,比如未曾接触过得语音信号的处理以及MATLAB软件的大规模应用,这让我收获颇多。同时设计过程中遇到许多问题,有的已经解决,有的还待优化。同时,我们通过向老师请教,查阅大量资料,与同学激烈探讨,将本来不懂的设计课题变为了一个个明确编程任务,分工合作,最终完成了本次课程设计。由于时间和知识水平的限制,虽然课程已经完毕,但我们的设计还是存在很多不足,比如设计方法还有很多没尝试,具体步骤还能优化等等。设计中遇到很多问题,和别的课题的

21、同学交流获得了巨大的收获,这在以前的设计中是没有的,因此增加了以后处理大课题的信心。4、附录 4.1参考文献1 高西全 数字信号处理(第三版) 西安电子科技大学出版社2 陈怀琛 MATLAB及在电子信息课程中的应用(第三版) 电子工业出版社3 王卫东 高频电子电路(第2版) 电子工业出版社4 韩纪庆 语音信号处理(第2版) 清华大学出版社5 语音信号的合成及其matlab_GUI实现 燕山大学课程设计6 王猛 基于分帧平稳小波变换的语音干扰效果定量评估 电子对抗2008年第3期7 张绪省 信号包络提取方法-从希尔伯特变换到小波变换 电子科学学刊1997年第1期4.2 程序代码男声信号录入及滤波

22、程序:clc;close all;clear all;yy=wavrecord(44100*6,44100);wavwrite(yy,44100,16,luyin.wav);x,fs=wavread(luyin.wav); x=x(1:90000);%片段截取figure;subplot(411)plot(x);title(原始信号)sound(x,fs);y=fft(x);y=y(1:1000);subplot(412);plot(abs(y);title(原始信号的频谱)a=lvbo(180,220,fs,x);%低通滤波器参数选择a=a(3639:93638);%片段截取,消除位移sub

23、plot(413)plot(a);title(低通滤除噪声后的信号)y=fft(a);y=y(1:1000);subplot(414);plot(abs(y);title(低通滤除噪声后的频谱)sound(10*a,fs);wavwrite(a,44100,16,LPFlvbo.wav);男声包络提取程序:clc;close all;clear all;% yy=wavrecord(44100*6,44100);% wavwrite(yy,44100,16,luyin.wav);% hc,fs=wavread(luyin.wav);hc=wavread(LPFlvbo.wav);hc=hc(1

24、:90000);fs=44100;t=0:1/fs:(length(hc)-1)/fs;figure(1)subplot(211)plot(hc);title(纯语音波形); %-进行分帧,加窗处理framelength=256; %窗长framemove=80; %帧移y_frame=fenzhen(hc,framelength,framemove,90000); subplot(212)plot(y_frame);title(对纯语音分帧看结果);% 求帧数,size返回矩阵的行数和列数nf=size(y_frame,1); w=hamming(framelength);% 汉明窗y_wi

25、ndow=; %忽略第一个for k=1:nf y_row=y_frame(k,:).*w ; % 加汉明窗 y_row=hilbert(y_row); %对每一帧进行希尔伯特变换取包络y_row=(abs(y_row);y_window=y_window;y_row ; end figuresubplot(411)plot(w);title(窗函数); subplot(412)plot(y_window);axis(0 300 0 1)title(对每帧加窗看结果);%-谱减系数设定 及噪声谱估计a=2; b=1; % 2=a=4,1=b=7 是系数的可调范围 a=2,b=1时是基本谱减法n

26、_noise=10; % 取前十帧语音作为背景噪声 y_noise=mean(y_window(1:10,:); noise_amplitude=abs(fft(y_noise); % 噪声的谱估计y_fft=fft(y_window);y_amplitude=abs(y_fft) ; %fft后y的幅度 y_angle=angle(y_fft) ; % fft后y的相位 % figuresubplot(413)plot(y_amplitude);title(窗的幅度); subplot(414)plot(y_angle);title(窗的相位);% 谱减过程y_enhanced_amplit

27、ude=; for k=1:nf y_temp=y_amplitude(:,k).a-b*noise_amplitude.a; % 谱相减y_temp0=y_temp.(1/a); y_enhanced_amplitude=y_enhanced_amplitude y_temp;%得到处理后的幅度矩阵end y_enhanced_fft=y_enhanced_amplitude.*exp(i*y_angle); % 恢复原来的相位 y_enhanced=real(ifft(y_enhanced_fft); % fft反变换求得增强后的分帧语音,取的是实部y_output=; for k=1:n

28、f-1 y_output=y_output y_enhanced(k,1:80); % 从增强后的分帧语音中抽取出最终的语音序列 end y_output=y_output y_enhanced(k,:); figuresubplot(211)plot(hc);title(纯语音波形); subplot(212)plot(y_output); title(分帧处理后的包络);%-做出处理前后图形,给出直观对比sound(hc,fs)sound(y_output,fs)wavwrite(y_output,44100,16,y_output.wav);声音合成程序:clc;close all;clear all;y,fs= wavread(y_output.wav);sound(y,fs);y=lvbo(180,220,fs,y);y=y(1:80000);figuresubplot(211);plot(1:length(y),y);title(男生信号包络);%g,fs=wavread(青藏高原);fssubplot(212);g1=g(1:80000);%截取片段xxx1:90000plot(g1);title(女声信号片段);g1=g1%z1=g1.*y;for i=1:80000; z(i)=4*z1(i);%增大幅度endfigurea=fft(z

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2