1、专业课程设计实验报告new 数字信号处理 课程设计报告 课设题目: 语音信号变声处理系统 院 系: 计算机科学系 专 业: 通信工程 小组成员: 郑昌栋 杭嘉琪 杜天送 刘 洋 周 俊 颜全稳 指导教师: 方荟 闽 江 学 院 2013年 12月 26日 摘要 我们每个人的声音不同,源于我们的每个人的音色和音调不同,我们所说的男中音、男高音,就是音调的不同,而即便音调一致,我们依然能区分出两个不同人的声音,或不同乐器的声音,这就是音色的不同。变声器,正是
2、借助对声音音色和音调的双重复合改变,实现输出声音的改变。 在进行性别变声时,主要考虑基频和共振峰频率的变化。当基频伸展,共振峰频率也同时伸展时,可由男声变成女声,女声变成童声;反之,基频收缩,共振峰频率也同时收缩时,则由童声变女声,女声变男声。为了获得自然度、真实感较好的变声效果,基频和共振峰频率通常必须各自独立地伸缩变化。 本次课程设计就是运用我们所学到的理论知识,用MATLAB软件来实现对语音信号的变声处理,理论联系实际,从而更好地掌握以及运用所学习的知识。 目录 目录 3 第一章
3、课程设计任务 4 第二章 变声器原理及设计方案 5 2.1基本原理 5 第三章 变声器的实现及分析 7 3.1信号变声器的实现 7 3.2设计过程 7 3.3仿真结果及分析 10 第四章 课设总结 14 4.1小组总结 14 4.2个人总结 15 参考文献 16 附录: 17 第一章 课程设计任务 电视台经常针对某些事件的知情者进行采访,为了保护知情者,经常改变说话人的声音,利用所学的知识,将其实现。 1) 自己录制一段正常的声音文件,或者通过菜单选择的方式选择一段正常声音文件; 2) 能
4、够播放该文件; 3) 对语音信号进行处理,要求处理后的语音信号基本不影响正常收听与理解; 5) 对处理参数能够通过matlab界面进行调节,以对比不同处理效果; 6) 能够对处理后的声音文件与原始声音文件的频谱进行观察、分析。 7) 编制GUI用户界面。 任务分配: 代码编写及运行调试:郑昌栋,杭嘉琪 实验报告整理与编写:杜天送 相关资料查询及整理:刘 洋 实验方案设计与编写:周 俊 Gui界面设计及制作:颜全稳 第二章 变声器原理及设计方案 2.1基本原理 语音科学家将人类发声过程视作一个由
5、声门源输送的气流经以声道、口、鼻腔组成的滤波器调制而成的。人类语音可分为有声语音和无声语音,前者是由声带振动激励的脉冲信号经声腔调制变成不同的音,它是人类语言中元音的基础,声带振动的频率称为基频。无声语音则是声带保持开启状态,禁止振动引发的。一般来说,由声门振动决定的基频跟说话人的性别特征有关,如下表,而无声语音则没有体现这个特征。说话人的个性化音色和语音的另外一个声学参数——共振峰频率的分布有关。儿童由于声道短,其共振峰频率高于成年人,成年女性的声道一般短于成年男性,所以女性的共振峰频率一般高于男性。 表2.1 男声、女声和童声基频、共振峰频率关系表 人群 基频分布
6、Hz 共振峰频率分布 男声 [50, 180] 偏低 女声 [160, 380] 中 童声 [400, 1000] 偏高 由上可知,在进行性别变声时,主要考虑基频和共振峰频率的变化。当基频伸展,共振峰频率也同时伸展时,可由男声变成女声,女声变成童声;反之,基频收缩,共振峰频率也同时收缩时,则由童声变女声,女声变男声。为了获得自然度、真实感较好的变声效果,基频和共振峰频率通常必须各自独立地伸缩变化。 共振峰频率的改变是基于重采样实现的,从重采样原理知道,这也同时引发了基频的变化,为保证基频变化和共振峰频率变化的
7、独立、互不相关,在基频移动时必须考虑抵消重采样带来的偏移,理论上只要基频检测足够精确,确实可以保证基频改变和共振峰频率改变间的互不相关。 ·2.2设计方案 1:选取需要变声的原始语音信号; 2: 得到原始语音信号的基音周期长度; 3: 根据基音周期长度定位整个原始语音信号的每一个基音周期的位置; 4: 在原始语音信号中的基音周期之间删除/插入基音周期,得到缩短/伸长的语音信号; 5: 将缩短/伸长的语音信号线性伸长/压缩至与原始语音信号一致的长度,得到变声后的语音信号。 第三章 变声器的实现及分析 3.1信号变声器的实现 进行频谱分析 实现快、慢放
8、 频率 语音信号读入 改变基频变声 进行滤波处理 语音信号恢复 图2.2语音处理实现框图 实现步骤: 1)语音信号的录制与读入。 2)语音信号的频谱分析。 3)实现慢录快放和快录慢放功能 4)设计数字滤波器和画出其频率响应。 5)用滤波器对信号进行滤波。 6)比较滤波前后语音信号的波形及频谱。 7)通过搬移、改变基波频率实现变声。 8)语音信号恢复。 9)在MATLAB下绘制出各个部分的输出波形,前后对比。 3.2设计过程 3.2.1 分帧处理 对语音信号加Hamming窗处理,
9、方法是用窗序列沿着语音样点值序列逐帧从左向右移动。 Hamming窗的窗函数如下: =(4.1) 确定了窗函数以后,对语音信号的分帧处理,实际上就是对各帧进行某 帧进行某种变换或运算。 3.2.2 计算预测系数 3.2.3 计算激励信号 对每帧语音信号s(n),和预测模型系数{},用filter函数计算激励信号e(n)。此时应该注意在系数变化的情况下连续滤波,需要维持滤波器的状态不变,要利用filter函数的和参数。 这里要利用_pre,利用_pre作为初始状态得到最终状态,本次循环得到的最终状态作为下次循环的初始状态,并把每次循环得到的激励保存下来。 3.2.4 重建语
10、音 用计算得到的激励信号e(n)和预测模型系数{},用fliter函数计算重建语音。同样要注意维持滤波器的状态不变。 这里我们由激励得到语音,并且要利用_rec,利用_rec作为初始状态的到最终状态,本次循环得到的最终状态作为下次循环的初始状态,并且把每次循环得到的重建语音保存下来。 3.2.5 基音周期 基音周期是表征语音信号本质特征的参数,属于语音分析的范畴,只有准确分析并且提取出语音信号的特征参数,才能够利用这些参数进行语音合成处理。 如果x(n)是一个周期为P的信号,则其自相关函数也是周期为P的信号,且在信号周期的整数倍处,自相关函数取最大值。语音的浊音信号具有准周期性,其自
11、相关函数在基音周期的整数倍处取最大值。计算两相邻最大峰值间的距离,就可以估计出基因周期。MTWE601-003006-FLSC0 3.2.6 合成激励的能量 根据线性预测分析的原理可知,求解p个线性预测系数的依据,是预测误差滤波器的输出方均值或输出功率最小。可称这一最小方均误差为正向预测误差功率,即 =E{e(n)[s(n)- s(n-1)]} =E[e(n)s(n)]-E[e(n)s(n-i)] (4.2) 由于上式第二项为0,又:
12、 e(n)=s(n)-=s(n)- s(n-i) (4.3) 将(4.3)代入(4.2)得: =E[e(n)s(n)]=E[s(n)s(n)]-E[s(n)s(n-i)]=R(0)-R(i) (4.4) 根据式(4.4)可以求得增益常数G。 =R(0)-R(i) (4.5) 从而可以得到: = (4.6) 由前面计算预测系数的代码 可以得到(代码里用E表示),和计算得到的
13、基音周期联立可以得到增益G。 程序代码如下: 3.2.7 变声处理 变声的过程的实现思路与前面合成语音的思路基本相同,只是在两个地方有所不同:系统参数b,a不同,这里的b和a是要用经改变后的极点算出来的;生成激励信号时,用floor(PT/2)作为这里的PT。 在变声的时候我们采用女生,小孩时变调不变速的滤波器: 老人采用变速不变调滤波器: 3.3仿真结果及分析 3.3.1波形及频谱 (1)原始信号波形及频谱: 采集到的男子声音信号大都分布在较低的频段上,即男子话音的基频较低 (2)男生信号合成女生信号后波形及频谱:
14、 变声前后,音频信号的时域波形被压缩,总体形状无太大变化。 改变信号的基频可以实现语音的变调。零频和35000附近的信号被削弱,而对应于【10000,25000】频点部分的信号得到加强 (3)男生信号合成小孩信号后波形及频谱: 变声前后,音频信号的时域波形被压缩,总体形状无太大变化。 改变信号的基频可以实现语音的变调。零频附近的信号被削弱,而对应于 【10000,24000】频点部分的信号得到加强 (4)男生信号合成老人信号后的波形及频谱: 男声变老人声前后,音频的时域波形被展宽,
15、总体形状变化不大。 男声变老人声前后【0,15000】频点对应的信号和【25000,30000】频点对应的信号则被削弱 3.3.2调试分析 1、在对处理后的语音文件获取预测系数的时候一直为NaN 将对语音文件的采样率改为22KHz后,能正常获取数据。 2、用wavread读取48M的wav音频文件时一直读取不到。 改为读取只有几十K的文件后就能正常运行,猜测可能是文件太大。 第四章 课设总结 4.1小组总结 此次课设题目为数字变声器设计,要求我们利用所学的信号处理、MATLAB知识完成任务。综合了过去三年所学的重要专业知识,可谓是对过去所学知识的一次全面考察。变声
16、器的原理是通过改变输入声音频率,进而改变声音的音色、音调,使输出声音在感官上与原声音不同。变声器是借助对声音音色和音调的双重复合改变,实现输出声音的改变。通过自己发声,共振峰频率的改变是基于重采样实现的。接到课题后,我便积极准备,到图书馆查阅相关书籍,上网搜索有关内容,利用MATLAB实现仿真,并及时向指导老师回报进度,听取老师的意见和建议。最终,顺利完成了此次课设任务。 采集到的男子声音信号大都分布在较低的频段上,而女子的声音信号大都分布在较高的频段上。即男子话音的基频较低,女子的话音基频较高。信号经过滤波器处理后,保留了有效的频率成分,一定程度上去除了干扰信号。对于男子的声音影响较小,原
17、因为男子的话音有用信号大都分布在较低的频段上,通过低通滤波器后,噪声等无用信号被滤除。改变信号的基频可以实现语音的变调。变声前后,音频的时域波形基本变化不大,而信号的频域波形发生较大变动。男声变女声后信号的频谱被搬到较高的频带上,男声变童音后,信号的频谱被搬移到更高的地方。女声变男声则反过来。通过改变输出频率,可以实现声音的提速或减速播放。将频率乘以大于一的数后,可以实现减速播放效果。将频率乘以(0,1)内的数后,可以实现减速播放效果。男声变老人的声音可以通过变速实现,变速不变调。改变输出速度而不用改变声音频率。 通过这次课设,我对理论知识的掌握更加牢固,而且把理论与实践联系在一起,提高了自
18、己的实践能力。而且我认识到了同学之间的相互合作的重要性,还提高了自己如何在众多的资料中找到对自己有用的信息。要想把所学的内容融会贯通,只学好课本知识是不够的,要把所学习的知识加以利用,这次课设就给了我们很好的机会,让我们不仅巩固了课本知识,还从理论上升到了实际。 从课题的中心来看,课题是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音的处理。作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其进行处理了。 在这里,用到了处理数字信号的强有力工具MATLAB,通过MATLAB里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间
19、搭了一座桥。 通过这次的课程设计,熟悉并掌握了MATLAB 中有关语音信号的读取,频谱分析,频谱的搬移和基频、语速的改变来实现变声,分析其频谱,并与原始信号频谱进行比较。 4.2个人总结 郑昌栋:通过本次课程设计,我在代码编写过程中认识到认真,严谨的重要性;以及调试过程中需要极大的耐心,最重要的是团队协作,也学习到了matlab的基本使用和编程的一些技巧。 颜全稳: 通过对于gui界面的设计制作,更加熟悉掌握matlab软件,同时温习数字信号处理这么课程。 杜天送:在本次课程设计中,我负责课程设计报告的整理与编写。通过整理报告,我对于matlab的基本编程方式以及基本运用有了
20、新的认识,我的分析能力、独立思考能力都得到了一定程度的提高。 杭嘉琪:通过这次课程设计,我知道到了matlab的基本编程方式以及方法的基本运用,因为我是负责代码一块的,所以深刻体会到了一个好的方案是编好程序的前提。在编写的过程中认识到了很多以前都不知道的方法,同时对matlab有了深刻的了解。 刘 洋:在本次课程设计当中,主要负责找资料。遇到问题在网上或者相关书籍寻找解决方法。通过这次课程设计。提高了自己的耐心以及细心。 周 俊:通过这次课程设计,我明白了良好的设计方案更能有助于课程设计的进展,而且方案并不是一成不变的,从问题中不断改进更加有利于我们理解问题;同时在本次中我也
21、更近一步理解了matlab的运用。 参考文献 [1] 高西全、丁玉美编著.数字信号处理.西安:西安电子科技大学出版社,2008. [2] 刘树棠译.数字信号处理——使用MATLAB.西安:西安交通大学出版社,2002. [3] 孙卓、岳振军,一种汉语语音变换技术,电声技术,2007. [4] 罗军辉等编著.MATLAB7.0在数字信号处理中的应用.北京:机械工业出版社,2005. [5] 陈怀琛等编著.MATLAB及在电子信息课中的应用.北京:电子工业出版社,2002. [6] 胡广书编著.数字信号处理―
22、―理论、算法与实现.北京:清华大学出版社,2002. [7] 梁虹等编.信号与线性系统分析――基于MATLAB的方法与实现.北京:高等教育出版社,2006. [8] 刘卫国主编.MATLAB程序设计与应用(第二版). 北京:高等教育出版社,2006. 附录: global music; music=0; [s,fs,nbits] = wavread('录音.wav'); s = s/max(s); L = length(s); S=fft(s,L); axes(handles.a
23、xes1); plot(s);title('原语音信号波形'); axes(handles.axes2); plot(abs(S));title('原语音信号频谱'); music=audioplayer(s,fs); play(music); % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata
24、 reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global music; music=0; [s,fs,nbits] = wavread('录音.wav'); FL = 80; WL = 240; P = 10; s= s/max(s); L = lengt
25、h(s); FN = floor(L/FL)-2; Ec = zeros(L,1); ZiPre = zeros(P,1); Sre = zeros(L,1); ZiPre = zeros(P,1); EcS= zeros(L,1); Ssn = zeros(L,1); LastSn = 0; ZiSn = zeros(P,1); EcSnT = zeros(L,1); SsnT = ze
26、ros(L,1); LastSnT = 0; ZiSn_t = zeros(P,1); v=.5; EcSnV = zeros(v\L,1); SsnV = zeros(v\L,1); LastSnV = 0; ZiSnV = zeros(P,1); hw = hamming(WL); for n = 3:FN SW = s(n*FL-WL+1:n*FL).*hw; [A E] = lpc(SW, P); SF = s((n-1)*FL+1:n*FL);
27、 [Ec1,ZiPre] = filter(A,1,SF,ZiPre); Ec((n-1)*FL+1:n*FL) = Ec1; [Sre1,ZiPre] = filter(1,A,Ec1,ZiPre); Sre((n-1)*FL+1:n*FL) = Sre1; s_Pitch = Ec(n*FL-222:n*FL); PT = findpitch(s_Pitch); G = sqrt(E*PT); TempSn = [1:n*FL-LastSn]'; E
28、cSn1 = zeros(length(TempSn),1); EcSn1(mod(TempSn,PT)==0) = G; EcSn1 = EcSn1((n-1)*FL-LastSn+1:n*FL-LastSn); [Ssn1,ZiSn] = filter(1,A,EcSn1,ZiSn); EcSn((n-1)*FL+1:n*FL) = EcSn1; Ssn((n-1)*FL+1:n*FL) = Ssn1; LastSn = LastSn+PT*floor((n*FL-LastSn)/PT); PT1 =floor(PT/2
29、); poles = roots(A); deltaOMG =150*2*pi/fs; for p=1:10 if imag(poles(p))>0 poles(p) = poles(p)*exp(j*deltaOMG); elseif imag(poles(p))<0 poles(p) = poles(p)*exp(-j*deltaOMG); end end A1=poly(poles); TempSnT = [1:n*FL-LastSnT]'; EcSn1T = zeros(leng
30、th(TempSnT),1); EcSn1T(mod(TempSnT,PT1)==0) = G; EcSn1T = EcSn1T((n-1)*FL-LastSnT+1:n*FL-LastSnT); [Ssn1T,ZiSn_t] = filter(1,A1,EcSn1T,ZiSn_t); EcSnT((n-1)*FL+1:n*FL) = EcSn1T; SsnT((n-1)*FL+1:n*FL) = Ssn1T; LastSnT = LastSnT+PT1*floor((n*FL-LastSnT)/PT1); end
31、 S=fft(SsnT,L); axes(handles.axes3); plot(SsnT),title('合成女生信号波形') ,XLim([0,length(EcSnT)]); axes(handles.axes4); plot(abs(S)), title('合成女生信号频谱'), XLim([0,length(SsnT)]); music=audioplayer(SsnT,fs); play(music); County continuation records has examined and approved the draft, spirit, believe, comprehensive Yearbook of zhuanglang already prepared draft, entered the phase of evaluation. Civil air defense work20
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818