数字信号处理--变声器报告

合集下载

数字信号处理实验报告8

数字信号处理实验报告8

实验报告学院(系)名称:计算机与通信工程学院 姓名 学号 专业班级实验项目实验七 音乐信号处理课程名称 数字信号处理 课程代码实验时间2013年06月07日实验地点 主校区计算机基础实验室批改意见成绩教师签字:一,实验目的1、了解现代音乐信号制作时的时域处理方法。

2、了解现代音乐信号制作时的频域处理方法。

3、处理MATLAB 的常用函数来实现音乐信号的时域及频域的处理。

二,实验原理现代音乐的处理和加工基本上是采用数字处理技术来完成的,大概分以下几个步骤:首先在一个隔音的舞台上,把乐队中各个乐器的声音分别录制在一个多磁道的磁带中的各个独立的磁道上;然后再把各个磁道上的信号进行单独处理,即加入特定的声音效果;最后在一个混音系统中把这些信号进行合成,即录制在一个立体声的双磁道的磁带上。

这里简单地验证语音信号的时域处理方法和频域处理方法。

1. 时域处理方法在音乐厅中听到的悦耳音乐,主要是一次反射声音和混响造成的,而这两种声音实质上都是回声形成的。

在隔音舞台上录制的声音听起来会不自然,这时就需要用数字滤波器来人为地改变录制的信号,以增加回声,使其接近于音乐厅的效果。

回声可以用延迟单元来形成。

直接声音和它延迟了R 个周期的单个回声可以用如下的差分方程来表示:()()()y n x n x n R α=+-,1αp其中1αp 表示回声的衰减系数。

上述的差分方程的传递函数为:()1RH z z α-=+它可以作为一个FIR 滤波器来实现,它实际上是一个梳状的滤波器,其结构图如图4.3.1(a )所示。

为了生成间隔为R 个周期的多重回声,上式应该改写成: ()()12211...N RRRN H z zzzααα-----=++⋅++⋅=RNRN --•-•z1z -1αα 其结构图如图4.3.1(b )所示。

如果反射的次数很多,则N α→0,则多重回声可以用一个IIR 滤波器来实现。

其传递函数为:R z z H -•-=α11)(,|α|<1set(gcf,'color','w');%置图形背景色为白色从图中可以看出,调节K可以改变低频端幅度特性的提升程度,调节α则用来控制低频滤波器的边界频率。

数字信号处理报告

数字信号处理报告

《数字信号处理》课程设计报告设计一信号的基本运算【一】设计目的熟悉信号的基本运算,通过仿真结果加深理解。

【二】设计内容1.现有一段以采样频率8192Hz采样得到的语音数据x(k),为了模仿出回音的效果,可以对数据进行如下处理:x(k)=x(k)+a*x(k-d),其中d为时延,a为时延信号的衰减幅度。

根据上述原理,进行仿真实验,并演示回声的效果。

(参数:时延d=0.4秒,衰减幅度a=0.5)2.对上述语音信号进行时间反转x(-k)、上采样x(2k)、下采样x(k/2)操作,并演示这些运算的效果。

【三】设计过程,调试,分析。

数字信号处理的主要研究对象是语音信号和图像信号,语音信号的研究可以从时域和频域两个方面来进行。

其中时域的分析处理有两种方法: 一种是进行语音信号分析, 这属于线性处理的范畴,主要是通过信号的加减、时移、倍乘、卷积、求相关函数等来实现;另一种是生成和变换成各种调制信号, 这属于非线性的范畴,主要是对信号平均累加器的动态范围进行压缩扩张, 用门限方法对噪声的抑制。

对频域分析处理, 即对信号的频率特性在频谱中加以分析研究, 这拓展了信号分析的范围, 是对不确定信号分析的主要方法。

在实际应用中, 信号的时域频分析经常同时进行。

1 语音信号的采集与时频分析1. 1 语音信号的采集利用 PC 机上的声卡和WINDOWS操作系统可以进行数字信号的采集。

将话筒输入计算机的语音输入插口上, 启动录音机。

按下录音按钮, 接着对话筒说话/大家好0 ,说完后停止录音, 屏幕左侧将显示所录声音的长度。

点击放音按钮,可以实现所录音的重现。

以文件名/ dajiahao0 保存入 g:\MATLAB\ work中。

可以看到, 文件存储器的后缀默认wav。

在 Matlab 软件平台下可以利用函数wavread对语音信号进行采样,得到了声音数据变量x,同时把x的采样频率Fs= 8000Hz和数据位Nbits= 8Bit放进了MATALB的工作空间。

数字信号处理综合报告--数字音频信号的分析与处理

数字信号处理综合报告--数字音频信号的分析与处理

数字信号处理综合报告--数字音频信号的分析与处理数字信号处理实验题目数字音频信号的分析与处理班级姓名学号日期 2013.06.10-2013.06.24一、实验目的1.复习巩固数字信号处理的基本理论;2.利用所学知识研究并设计工程应用方案。

二、实验原理数字信号处理技术在音频信号处理中的应用日益增多,其灵活方便的优点得到体现。

分频器即为其中一种音频工程中常用的设备。

人耳能听到的声音频率范围为20Hz~20000Hz,但由于技术所限,扬声器难以做到在此频率范围内都有很好的特性,因此一般采用两个以上的扬声器来组成一个系统,不同的扬声器播放不同频带的声音,将声音分成不同频带的设备就是分频器。

下图是一个二分频的示例。

图8.1 二分频示意图高通滤波器和低通滤波器可以是FIR或IIR 类型,其中FIR易做到线性相位,但阶数太高, 不仅需要耗费较多资源,且会带来较长的延时;IIR阶数低,但易出现相位失真及稳定性问题。

对分频器的特性,考虑最多的还是两个滤波器合成的幅度特性,希望其是平坦的,如图8.2所示:图8.2 分频器幅度特性由于IIR的延时短,因此目前工程中大量应用的还是Butterworth、Bessel、Linkwitz-Riley 三种IIR滤波器。

其幅频特性如图8.3所示:图8.3 三种常用IIR 分频器的幅度特性巴特沃斯、切比雪夫、椭圆等类型的数字滤波器系数可通过调用MATLAB 函数很方便的计算得到,但Bessel 、Linkwitz-Riley 数字滤波器均无现成的Matlab 函数。

并联系统的系统函数为l h h l l h()()()()()()()()()()()()()()()B=conv(B ,A )+conv(B ,A )A=conv(A ,A )l h l h l h l h h l l h B z B z H z H z H z A z A z B z A z B z A z B z A z A z A z =+=++==⎧⇒⎨⎩级联系统的系统函数为宁可瑞滤波器(Linkwitz-Riley ),由两个巴特沃斯滤波器级联而成。

数字信号处理实验报告

数字信号处理实验报告

数字信号处理实验报告引言数字信号处理(Digital Signal Processing,DSP)是一门研究数字信号的获取、分析、处理和控制的学科。

在现代科技发展中,数字信号处理在通信、图像处理、音频处理等领域起着重要的作用。

本次实验旨在通过实际操作,深入了解数字信号处理的基本原理和实践技巧。

实验一:离散时间信号的生成与显示在实验开始之前,我们首先需要了解信号的生成与显示方法。

通过数字信号处理器(Digital Signal Processor,DSP)可以轻松生成和显示各种类型的离散时间信号。

实验设置如下:1. 设置采样频率为8kHz。

2. 生成一个正弦信号:频率为1kHz,振幅为1。

3. 生成一个方波信号:频率为1kHz,振幅为1。

4. 将生成的信号通过DAC(Digital-to-Analog Converter)输出到示波器上进行显示。

实验结果如下图所示:(插入示波器显示的正弦信号和方波信号的图片)实验分析:通过示波器的显示结果可以看出,正弦信号在时域上呈现周期性的波形,而方波信号则具有稳定的上下跳变。

这体现了正弦信号和方波信号在时域上的不同特征。

实验二:信号的采样和重构在数字信号处理中,信号的采样是将连续时间信号转化为离散时间信号的过程,信号的重构则是将离散时间信号还原为连续时间信号的过程。

在实际应用中,信号的采样和重构对信号处理的准确性至关重要。

实验设置如下:1. 生成一个正弦信号:频率为1kHz,振幅为1。

2. 设置采样频率为8kHz。

3. 对正弦信号进行采样,得到离散时间信号。

4. 对离散时间信号进行重构,得到连续时间信号。

5. 将重构的信号通过DAC输出到示波器上进行显示。

实验结果如下图所示:(插入示波器显示的连续时间信号和重构信号的图片)实验分析:通过示波器的显示结果可以看出,重构的信号与原信号非常接近,并且能够还原出原信号的形状和特征。

这说明信号的采样和重构方法对于信号处理的准确性有着重要影响。

DSP男女声变换报告

DSP男女声变换报告

DSP课程设计实验报告——男女声变换学院:电子信息工程学院成员:指导教师:钱满义目录男女声变换实验 (3)一、实验目的 (3)二、设计要求及目标 (3)三、实验内容 (3)四、设计方案、算法原理说明 (4)1、频谱变换 (4)2、男女声变换 (6)3、本实验DMA使用情况 (8)五、程序设计 (8)六、参考文献 (11)男女声变换实验一、实验目的1、掌握DSP集成开发环境CCS的使用和调试方法;2、掌握DSP片上资源和片外资源访问的基本方法;3、通过对DSP信号处理器及D/A和A/D转换器的编程,培养学生C语言编程能力以及使用DSP硬件平台实现数字信号处理算法的能力;4、掌握男女声音调变换系统的DSP设计可使学生将数字信号处理算法与工程实践相结合,提高学生系统地思考问题和解决实际问题的能力;二、设计要求及目标基本部分:(1) 利用DSP的DMA方式对外部信号进行实时采集、传输与处理。

(2) 使用C语言编写并实现男女生声音的实时变换。

发挥部分:(1) 能够智能识别男女声音。

(2) 通过算法中参数值的选择,调整信号频率变化的程度,实现男女声音相互转化程度可变。

三、实验内容本实验以DMA与McBSP相结合的方式,实现实时的男女生声音变换。

主要包括以下几方面:(1)对DMA进行初始化;(2)对McBSP进行初始化(3)对A/D、D/A进行初始化;(4)编写DMA中断服务程序;编写快速傅里叶变换(FFT)算法程序,获得输入信号频谱,并对频谱的峰值频率进行比较实现男女声自动识别;频率变换算法程序,使用内插或抽取,实现男女生声音的实时变换;四、设计方案、算法原理说明1、频谱变换将gBufferRcvPing左声道的512个点(即偶数个点)抽出放在长度为1024的temp 的偶数点中,看作复数的实部,在temp的奇数点插0值,看作复数的虚部,temp经过cfft后,得到相应频谱,所得的频谱中心对称,以实部,虚部交替存储。

数字信号处理实验报告

数字信号处理实验报告

一、实验目的1. 理解数字信号处理的基本概念和原理。

2. 掌握离散时间信号的基本运算和变换方法。

3. 熟悉数字滤波器的设计和实现。

4. 培养实验操作能力和数据分析能力。

二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。

本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。

2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。

3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。

4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。

三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。

(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。

2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。

(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。

3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。

(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。

4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。

(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。

四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。

DSP(数字信号处理)实验报告2

DSP(数字信号处理)实验报告2

本科学生实验报告学号124090314 姓名何胜金学院物电学院专业、班级12电子实验课程名称数字信号处理(实验)教师及职称杨卫平开课学期第三至第四学年下学期填报时间2015 年 3 月 1 9 日云南师范大学教务处编印2.产生幅度调制信号x[t]=cos(2t)cos(200t),推导其频率特性,确定抽样频率,并会出波形。

程序: clc,clear,close all t=[0:0.01:5];x=cos(2*pi*t).*cos(200*pi*t); plot(t,x);clc,clear,close allt0=0:0.001:0.1;x0=0.5*(cos(202*pi*t0)+cos(198*pi*t0)); plot(t0,x0,'r') hold on fs=202;t=0:1/fs:0.1;x=0.5*(cos(202*pi*t)+cos(198*pi*t)); stem(t,x);3.对连续信号x[t]=cos(4t)进行抽样以得到离散序列,并进行重建。

(1)生成信号x(t),时间为t=0:0.001:4,画出x(t)的波形。

程序clc,clear,close all t0=0:0.001:3; x0=cos(4*pi*t0); plot(t0 ,x0,'r');(2)以faam=10HZ对信号进行抽样,画出在0≤t≤1范围内的抽样序列,x[k],利用抽样内插函数恢复连续时间信号,画出重逢信号的波形。

程序:clc,clear,close all t0=0:0.001:3; x0=cos(4*pi*t0); plot(t0,x0); hold onfs=10;t=0:1/fs:3; x=cos(4*pi*t); stem(t,x);4.若x[k]是对连续信号x(t)=cos(0.5t)以samf=2Hz抽样得到的离散序列,如何通过在抽样点之间内插,恢复原连续时间信号x(t)?程序:clc,clear,close all t=0:0.0001:4; x=cos(0.5*pi*t); plot(t,x); Figure1:clc,clear,close allt=0:0.0001:4; x=cos(0.5*pi*t); subplot(2,1,1); plot(t,x);t0=0:0.5:4;x0=cos(0.5*pi*t0); subplot(2,1,2); stem(t0,x0);5.已知序列x[k]={1,3,2,-5;k=0,1,2,3},分别取N=2,3,4,5对其频谱X(e j)进行抽样,再由频域抽样点恢复时域序列,观察时域序列是否存在混叠,有何规律?k=[0,1,2,3]; x=[1,3,2,-5]; n=100;omega=[0:n-1]*2*pi/n;X0=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,1);stem(k,x);title('原序列');subplot(3,4,2);plot(omega./pi,abs(X0));title('序列的频谱 N=100');N=2;omega=[0:N-1]*2*pi/N;X1=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,5);stem(omega./pi,abs(X1));title('频域抽样 N=2');rx1=real(ifft(X1)); subplot(3,4,9);stem(rx1);title('时域恢复');N=3;omega=[0:N-1]*2*pi/N;X2=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,6);stem(omega./pi,abs(X2));title('频域抽样 N=3');rx2=real(ifft(X2)); subplot(3,4,10);stem(rx2);title('时域恢复');N=4;omega=[0:N-1]*2*pi/N;X3=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,7);stem(omega./pi,abs(X3));title('频域抽样 N=4');rx3=real(ifft(X3)); subplot(3,4,11);stem(rx3);title('时域恢复');。

【精品】DSP实验报告

【精品】DSP实验报告

【精品】DSP实验报告一、实验目的1.探究数字信号处理器(DSP)的功能和应用。

2.熟悉DSP软件、硬件设计实验环境。

3.掌握DSP的基本编程方法。

4.实现数字信号的变换。

二、实验原理DSP是一种基于数字信号处理器的技术,是数码信号处理器技术和信号处理技术的一种应用。

DSP硬件处理器可以对数字信号进行滤波、基带处理和解调等。

DSP软件编程极为常见,可以设计各种数字信号处理算法、信号处理系统和软件运行环境。

使用DSP软件,我们可以过滤和处理模拟信号,包括声音和图像等。

三、实验器材和器件1.TMS320C5416数字信号处理器。

2.折标器。

3.信号源和信号处理器。

4.电器安全器材。

5.计算机和开发环境工具包。

四、实验步骤1.安装开发工具包,启动环境配置,并初始化DSP开发板和相关环境工具。

2.编写程序,加入滤波、处理和变换算法,提取有用信号和滤除噪声信号。

3.建立计算机接口和控制模块,并调试程序,验证结果。

五、实验结果本次实验结果如下:1.对于模拟信号输入,DSP通过滤波、变换等算法,进行信号分析和处理,有效提取信号,并消除噪声信号。

2.DSP的数字信号处理使得信号的提取和分析更加精确和高效,可以用于音频、视频、遥感等领域的处理。

3.当信号处理效果不佳时,需要调整算法和变换参数,重新调整信号滤波、变换和输出的参数,以获得更好的处理效果。

六、问题和分析在实验中,我们遇到了一些问题。

例如,信号处理的时候,出现了滤波不足,噪声信号无法完全滤除的情况。

我们通过调整算法和参数,进行重新优化,并在重新调整参数之后再次进行了测试,发现信号处理效果显著提高。

七、实验心得体会数字信号处理在现代信息技术领域是非常重要的,因此我们必须掌握DSP的理论原理和编程方法。

本次实验中,我们实际操作了DSP平台,并编写程序艇筏和优化算法,有效地提取信号,其结果是很有收获的。

通过本次实验,我们不仅学习了DSP的基本特性,还成功应用该技术处理信号数据,建立了初步的实践能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字信号处理--变声器报告1项目目标:把自己(男)的声音分别变成小孩的声音、女人的声音和老人的声音。

2变声原理:语音科学家将人类发声过程视作一个由声门源输送的气流经以声道、口、鼻腔组成的滤波器调制而成的。

人类语音可分为有声语音和无声语音,前者是由声带振动激励的脉冲信号经声腔调制变成不同的音,它是人类语言中元音的基础,声带振动的频率称为基频。

无声语音则是声带保持开启状态,禁止振动引发的。

一般来说,由声门振动决定的基频跟说话人的性别特征有关,如下表,而无声语音则没有体现这个特征。

说话人的个性化音色和语音的另外一个声学参数——共振峰频率的分布有关。

儿童由于声道短,其共振峰频率高于成年人,成年女性的声道一般短于成年男性,所以女性的共振峰频率一般高于男性。

表男声、女声和童声基频、共振峰频率关系表由上可知,在进行性别变声时,主要考虑基频和共振峰频率的变化。

当基频伸展,共振峰频率也同时伸展时,可由男声变成女声,女声变成童声;反之,基频收缩,共振峰频率也同时收缩时,则由童声变女声,女声变男声。

为了获得自然度、真实感较好的变声效果,基频和共振峰频率通常必须各自独立地伸缩变化如图1。

V1 男声变童声V2 男声变女声图1 基频和共振峰频率分布的变化共振峰频率的改变是基于重采样实现的,从重采样原理知道,这也同时引发了基频的变化,为保证基频变化和共振峰频率变化的独立、互不相关,在基频移动时必须考虑抵消重采样带来的偏移,理论上只要基频检测足够精确,确实可以保证基频改变和共振峰频率改变间的互不相关。

3设计方案:1录入自己(小孩、女人、老人)的一段声音 2用MATLAB 做fft得到其频谱 3做fft频谱分析 4搬移和改变基频、语速,实现变声4程序流图5程序清单:元语音信号[s,fs,nbits] = wavread(‘wo.wav’); % 载入语音s s = s/max(s); %归一化L = length(s); % 读入语音长度S=fft(s,L);pigureubplot(2,1,1);plot(s);title(‘原语音信号波形’);ubplot(2,1,2);plot(abs(S));title(‘原语音信号频谱’);变声:小孩的声音clear all,close all, clc;% 定义常数FL =80; % 帧长WL = 240; % 窗长P = 10; % 预测系数个数[s,fs,nbits] = wavread('wo.wav'); % 载入语音ss = s/max(s); %归一化L = length(s); % 读入语音长度FN = floor(L/FL)-2; % 计算帧长% 预测和重建滤波器exc = zeros(L,1); % 激励信号zi_pre = zeros(P,1); % 预测滤波器的状态s_rec = zeros(L,1); % 重建语音zi_rec = zeros(P,1);% 变调不变速滤波器exc_syn_t = zeros(L,1); % 合成的激励信号s_syn_t = zeros(L,1); % 合成语音last_syn_t = 0; %存储上一个(或多个)段的最后一个脉冲的下标zi_syn_t = zeros(P,1); % 合成滤波器的状态hw = hamming(WL); % 汉明窗% 依次处理每帧语音for n = 3:FN% 计算预测系数s_w = s(n*FL-WL+1:n*FL).*hw; %汉明窗加权后的语音[A E] = lpc(s_w, P); %用线性预测法计算P个预测系数% A是预测系数,E会被用来计算合成激励的能量s_f = s((n-1)*FL+1:n*FL); % 本帧语音,下面就要对它做处理% (4) 用filter函数s_f计算激励,注意保持滤波器状态[exc1,zi_pre] = filter(A,1,s_f,zi_pre);exc((n-1)*FL+1:n*FL) = exc1; %计算得到的激励% (5) 用filter函数和exc重建语音,注意保持滤波器状态[s_rec1,zi_rec] = filter(1,A,exc1,zi_rec);s_rec((n-1)*FL+1:n*FL) = s_rec1; %计算得到的重建语音% 注意下面只有在得到exc后才会计算正确s_Pitch = exc(n*FL-222:n*FL);PT = findpitch(s_Pitch); % 计算基音周期PTG = sqrt(E*PT); % 计算合成激励的能量G% (13) 将基音周期减小一半,将共振峰频率增加7000Hz,重新合成语音PT1 =floor(PT/2); %减小基音周期poles = roots(A);deltaOMG = 700*2*pi/8000;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);endendA1=poly(poles);tempn_syn_t = [1:n*FL-last_syn_t]';exc_syn1_t = zeros(length(tempn_syn_t),1);exc_syn1_t(mod(tempn_syn_t,PT1)==0) = G; %某一段算出的脉冲exc_syn1_t = exc_syn1_t((n-1)*FL-last_syn_t+1:n*FL-last_syn_t);[s_syn1_t,zi_syn_t] = filter(1,A1,exc_syn1_t,zi_syn_t);exc_syn_t((n-1)*FL+1:n*FL) = exc_syn1_t; %计算得到的合成激励s_syn_t((n-1)*FL+1:n*FL) = s_syn1_t; %计算得到的合成语音last_syn_t = last_syn_t+PT1*floor((n*FL-last_syn_t)/PT1);endS=(s_syn_t,L)%变调不变速figure;subplot(2,1,1), plot(exc_syn_t), xlabel('n (samples)'), ylabel('Amplitude'), title('合成高调激励信号') ,XLim([0,length(exc_syn_t)]);subplot(2,1,), plot(abs(S))), title('合成高调语音信号频谱'), XLim([0,length(s_syn_t)]);sound(s_syn_t);女人的声音把上面程序中的(deltaOMG = 700*2*pi/8000;)改为(deltaOMG = 100*2*pi/8000;)老人的声音clear all,close all, clc;% 定义常数FL =80; % 帧长WL = 240; % 窗长P = 10; % 预测系数个数[s,fs,nbits] = wavread('wo.wav'); % 载入语音ss = s/max(s); %归一化L = length(s); % 读入语音长度FN = floor(L/FL)-2; % 计算帧数% 预测和重建滤波器exc = zeros(L,1); % 激励信号zi_pre = zeros(P,1); % 预测滤波器的状态s_rec = zeros(L,1); % 重建语音zi_rec = zeros(P,1);% 变速不变调滤波器v=.38;exc_syn_v = zeros(v\L,1); % 合成的激励信号s_syn_v = zeros(v\L,1); % 合成语音last_syn_v = 0; %存储上一个(或多个)段的最后一个脉冲的下标zi_syn_v = zeros(P,1); % 合成滤波器的状态hw = hamming(WL); % 汉明窗% 依次处理每帧语音for n = 3:FN% 计算预测系数(不需要掌握)s_w = s(n*FL-WL+1:n*FL).*hw; %汉明窗加权后的语音[A E] = lpc(s_w, P); %用线性预测法计算P个预测系数% A是预测系数,E会被用来计算合成激励的能量s_f = s((n-1)*FL+1:n*FL); % 本帧语音,下面就要对它做处理% (4) 用filter函数s_f计算激励,注意保持滤波器状态[exc1,zi_pre] = filter(A,1,s_f,zi_pre);exc((n-1)*FL+1:n*FL) = exc1; %计算得到的激励% (5) 用filter函数和exc重建语音,注意保持滤波器状态[s_rec1,zi_rec] = filter(1,A,exc1,zi_rec);s_rec((n-1)*FL+1:n*FL) = s_rec1; %计算得到的重建语音% 注意下面只有在得到exc后才会计算正确s_Pitch = exc(n*FL-222:n*FL);PT = findpitch(s_Pitch); % 计算基音周期PT(不要求掌握)G = sqrt(E*PT); % 计算合成激励的能量G(不要求掌握)% (11) 不改变基音周期和预测系数,将合成激励的长度增加一倍,再作为filter% 的输入得到新的合成语音,听一听是不是速度变慢了,但音调没有变。

FL_v = floor(FL/v);tempn_syn_v = [1:n*FL_v-last_syn_v]';exc_syn1_v = zeros(length(tempn_syn_v),1);exc_syn1_v(mod(tempn_syn_v,PT)==0) = G; %某一段算出的脉冲exc_syn1_v = exc_syn1_v((n-1)*FL_v-last_syn_v+1:n*FL_v-last_syn_v);[s_syn1_v,zi_syn_v] = filter(1,A,exc_syn1_v,zi_syn_v);last_syn_v = last_syn_v+PT*floor((n*FL_v-last_syn_v)/PT);exc_syn_v((n-1)*FL_v+1:n*FL_v) =exc_syn1_v; %计算得到的加长合成激励s_syn_v((n-1)*FL_v+1:n*FL_v) = s_syn1_v; %计算得到的加长合成语音endS=fft(s_syn_v,L);%变速不变调figure;subplot(2,1,1), plot(s_syn_v), xlabel('n (samples)'), ylabel('Amplitude'), title('合成慢速语音信号'),subplot(2,1,2), plot(abs(S)), title('合成慢速语音信号频谱'),sound(s_syn_v);6操作界面操作说明操作界面如上图(1)点击按钮“录音”表示开始录音;“原声”按钮表示播放录入的声音;(2)“小孩的声音”按钮表示把录入的声音变成小孩的声音;(3)“女人的声音”按钮表示把原声变成女人的声音;(4)“老人的声音”按钮表示把原声变成老人的声音。

相关文档
最新文档