LPC语音合成实验报告
语音信号处理——基于线性预测下的语音信号合成论文

学院课程论文题目基于线性预测下的语音信号合成学生姓名学号系别专业电子信息工程指导教师基于线性预测分析的语音合成的研究摘要:语音合成是实现人机语言通信的关键技术,而线性预测(LPC)是语音信号处理中最有效的分析方法。
而最佳线性预测设计的核心是LPC系数的计算。
本文阐述了线性预测的基本原理,对提取LPC系数中的自相关解法中的莱文逊—杜宾递推算法做出了具体验算,并且给出相关MATLAB的实现以及其仿真结果,然后采用线性预测参数法合成语音。
关键词:线性预测;莱文逊—杜宾递推算法;语音合成;MATLAB目录1 绪论 (1)1.1 引言 (1)1.2 国内外研究现状 (1)1.3 研究的内容 (2)2 线性预测分析的基本原理 (2)2.1语音信号的预处理 (3)2.2基本原理 (3)2.3 LPC和语音信号模型的关系 (4)2.4 线性预测方程组的建立 (5)2.5 线性预测方程组解法 (7)2.6 LPC方程自相关解法的MATLAB实现 (14)3 线性预测参数合成法合成语音 (15)3.1 语音合成的基本原理 (15)3.2 参数合成方法 (16)3.3 线性预测合成法 (16)4 总结 (17)参考文献 (17)致谢 (17)附录 (18)1 绪论1.1 引言语音合成是人机语声通信的一个很重要组成部分,语音合成技术赋予机器“人工的嘴巴”的功能,解决让机器像人一样说话的问题。
让机器像人一样说话,建立可以仿照人的语言过程的模型,设想在机器中首先形成一个要讲的话语,它大多以表示信息的字符代码的形式存在,然后按照复杂的语音规则,将信息的字符代码形式转换成由基本发音单元组成的序列,同时检查话语的上下文,决定声调、重音、必要的停顿等韵律特性,以及陈述、命令、疑问等语气,最后给出相应的符号代码表示。
这样组成的字符代码序列相当于一种“言语码”。
从“言语码”出发,按照发音规则生成一组随机变化的字符代码序列,去控制语音合成器发出声音,犹如人脑中的神经命令,以电脉冲形式向发声器官发出指令,使舌、唇、声带、肺等部分的肌肉相互协调动作发出声音一样,这样一个完整的过程就是语音合成的含义。
基于LPC的语音信号特征参数提取算法研究

基于LPC的语音信号特征参数提取算法研究李亚文【摘要】提出了一种基于LPC的语音信号特征参数提取的算法思想,对原始的语音信号进行线性预测建模,估计预算模型参数,提取LPC系数,分析LPC倒谱并计算预测误差。
实验结果表明,该算法能较好的提取语音信号的特征参数,且预测重构的语音信号误差较小,易于建模的实现,为语音信号处理提供了一种特征参数提取的方法。
%An algorithm idea of linear predictive coding in speech feature coefficients extraction is proposed, with linear prediction modeling with the original speech signal,estimation of budget model parameters, extraction of linear predictive coding coefficient, analysis of linear predictive coding cepstrum and calculating of the predictive error. The experiment result snows that the proposed algorithm is invisible and maneuverable to extract the feature parameters, and precision of the reconstruction speech signal with the less prediction error, a new method of extracting the feature parameters is proposed for speech signal processing.【期刊名称】《商洛学院学报》【年(卷),期】2015(000)004【总页数】4页(P25-28)【关键词】LPC;系统函数;预测误差;倒谱系数【作者】李亚文【作者单位】商洛学院电子信息与电气工程学院,陕西商洛 726000【正文语种】中文【中图分类】TN912.3LPC(linear predictive coding)又称线性预测编码,随着计算技术和语音通信技术的不断发展,促使人们对语音信号处理技术的发展寄予更高的期望,而线性预测编码模型是低速高质量语音编码最常用的一种方法。
南邮通达语音时频参数的提取和应用和语音编码实验

南京邮电大学通达学院实验报告实验名称语音时频参数的提取和应用实验语音编码实验课程名称信息处理技术专业综合实验班级学号姓名开课时间2016/2017 学年, 第二学期实验一 语音时频参数的提取和应用一、实验目的熟悉基本的语音时频参数提取方法,观察并比较各类参数采用不同提取方法的效果,了解这些时频参数在语音处理中的应用。
二、实验内容1、编写并调试语音时域参数提取程序,包括短时功率、短时过零率等函数。
2、编写并调试语音频域参数提取程序,包括频谱、语谱图、基音频率、共振峰等。
3、利用提取出的时频参数对语音信号进行静/清/浊音的划分。
三、实验原理语音信号具有短时平稳性,需对其进行分段(帧)处理(帧长一般取10至30ms 之间)。
根据激励方式的不同,语音信号可以分成浊音和清音两大类:浊音:激励源可模拟成准周期性的脉冲串。
该周期称为基音周期,其倒数就是基音频率,基音频率一般在几百赫兹以内。
清音:激励源可模拟成随机白噪声。
简化的语音生成数学模型如图所示:对语音时\频波形进行绘制与观察,有助于了解语音的清/浊音等特性。
对基音周期等声门参数和共振峰等声道参数进行提取与分析,是语音处理与应用的重要内容。
对于时变语音信号)(n x ,可以计算它的短时功率)(m P x 和短时过零率)(m Z x 。
第m 帧(帧长为N 个样点)的功率计算公式为:21)(1)(∑+-==mN m n x n x Nm P过零率计算公式为:∑+-=--=mN m n x n x sign n x sign Nm Z 12)}1({)}({1)(对于浊音语音,可以利用其频谱)(ωX 具有丰富的谐波分量的特点,求出其谐波乘积谱,计算公式为:∏==Rr r X HPSx 1)()(ωω式中,R 一般取为5。
在谐波乘积谱中,基频分量变得很大,更易于估计基音周期。
四、实验方法及程序1. 调用matlab 中的wavread 和wavplay 读入并播放语音文件。
信息技术综合实验-实验二-语音编码实验

实验报告实验名称语音编码实验课程名称信息处理技术专业综合实验实验二 语音编码一、实验目的熟悉语音基本压缩编码的方法,观察语音压缩效果,加深对语音线性预测编码(LPC )的理解。
二、实验内容1、编写并调试语音LPC 参数提取程序。
2、编写并调试语音基音周期提取程序。
3、编写并调试语音LPC 合成程序。
三、实验原理语音信号中含有大量的冗余信息,采用各种信源编码技术减除语音信号的冗余度,并充分利用人耳的听觉掩蔽效应,就可以将其编码速率压缩很多倍,而仍能提供可懂语音。
LPC 声码器是一种比较简单实用的语音压缩方法,其基本原理是:根据语音生成模型,将语音看作激励源通过一个线性时不变系统产生的输出,利用线性预测分析对声道参数进行估值,将求得的线性预测系数,结合基音周期等少量参数进行传输,就可以在接收端利用合成滤波器重构语音信号。
线性预测系数的估计方法为:假设语音的当前样值可以用过去的M 个语音样值来进行预测()()()()()∑=-=-++-+-=Mi i M i n x a M n x a n x a n x a n x 12121~式中{}i a 即为线性预测系数。
实际值和预测值之间的均方误差可表示为()()()∑∑∑⎪⎭⎫ ⎝⎛--===n Mi i n i n x a n x n E 212ε 要求均方误差总和最小,将E 关于i a 的偏导数设置为零,可以得到()()()01=⎪⎭⎫ ⎝⎛---∑∑=Mi i n i n x a n x k n x通过采用自相关法、协方差法或格形法求解该方程,即可得到最优的{}i a 。
四、实验方法及程序1. 调用xcorr命令计算一帧语音的自相关函数。
2. 调用toeplitz命令形成该帧语音的自相关矩阵。
3. 调用durbin命令,采用杜宾递推算法计算该帧语音的线性预测系数。
4. 编写lpcauto.m函数,求取一句语音信号的线性预测系数及预测残差。
选择设当的窗函数对语音信号进行分幀。
声音合成实验报告总结(3篇)

第1篇一、实验背景声音合成是现代音乐制作、音频处理等领域中非常重要的技术之一。
通过声音合成,我们可以模拟出各种不同的声音效果,如乐器音色、自然音效等。
本次实验旨在通过搭建一个简单的声音合成系统,探究声音合成的原理和方法,并验证实验结果。
二、实验目的1. 了解声音合成的原理和方法;2. 掌握使用软件实现声音合成的操作步骤;3. 通过实验验证不同参数对合成声音的影响;4. 分析实验结果,总结声音合成的技巧。
三、实验原理声音合成的基本原理是将复杂的音色分解成若干个简单的音色元素,然后通过调整这些音色元素的参数,合成出所需的音色。
常见的声音合成方法包括:1. 波表合成:通过查找预先录制的音色样本,合成所需的音色;2. FM合成:利用频率调制技术,模拟出各种乐器的音色;3. 波形合成:通过改变波形参数,合成出各种音色。
四、实验步骤1. 准备实验设备:电脑、音频软件(如Cubase、FL Studio等)、音频接口、麦克风等;2. 选择合适的音色库:根据实验需求,选择合适的音色库;3. 设置合成参数:根据实验要求,设置波形合成、FM合成或波表合成的参数;4. 进行实验:使用音频软件合成所需音色,并进行调整;5. 采集实验数据:记录不同参数下合成声音的音色、音质等信息;6. 分析实验结果,总结声音合成的技巧。
五、实验结果与分析1. 波形合成实验:(1)通过调整波形参数,可以合成出各种音色,如钢琴、吉他、鼓等;(2)改变波形振幅、频率、相位等参数,可以调整音色的高低、强弱、音色纯度等;(3)实验结果表明,波形合成在音色合成方面具有较好的表现。
2. FM合成实验:(1)通过调整频率调制参数,可以模拟出各种乐器的音色;(2)改变调制指数、频率比等参数,可以调整音色的高低、音色纯度等;(3)实验结果表明,FM合成在模拟乐器音色方面具有较好的表现。
3. 波表合成实验:(1)通过查找音色库中的样本,可以合成出各种音色;(2)调整音色样本的播放速度、音量等参数,可以调整音色的高低、强弱等;(3)实验结果表明,波表合成在音色合成方面具有较好的表现。
声音合成的实验报告

声音合成的实验报告引言声音合成是一种通过模拟自然声音或生成人工声音的技术,通过使用声音合成器或数字信号处理器来生成声音信号。
声音合成在多个领域有着广泛的应用,包括音乐产业、语音合成、游戏设计等。
本实验旨在探究声音合成技术的原理和应用。
实验目的1. 了解声音合成的基本原理;2. 掌握声音合成的常用方法和技术;3. 熟悉声音合成器的使用;4. 分析声音合成的应用领域。
实验过程1. 声音合成的基本原理声音合成的基本原理是通过调节频率、振幅、持续时间和波形等参数来模拟声音信号。
常用的声音合成方法包括加法合成、减法合成和物理模拟等。
加法合成是通过将多个简单的波形叠加在一起来生成复杂的声音。
这些简单的波形包括正弦波、方波、锯齿波等。
通过调节每个波形的频率、振幅和相位,可以产生丰富多变的声音。
减法合成是通过从复杂波形中减去一些成分来生成声音。
这种方法常用于合成乐器音色、人声等。
物理模拟是通过模拟物体的振动和共鸣特性来产生声音。
这种方法常用于合成真实乐器的声音。
2. 声音合成器的使用在实验中,我们使用了一款声音合成器软件来生成声音信号。
该软件提供了丰富的合成方法和参数调节选项。
首先,我们选择了加法合成方法,并设置了频率、振幅和波形参数。
通过调节这些参数,我们可以听到不同的声音效果。
接下来,我们尝试了减法合成方法。
选择了复杂的波形作为基准波形,并减去一些成分来调整声音的特性。
通过逐步调整减去的成分,我们成功合成了近似真实的人声。
最后,我们尝试了物理模拟方法。
通过模拟琴弦振动的特性,我们成功合成了类似于钢琴音的声音。
3. 声音合成的应用领域声音合成在音乐产业、语音合成、游戏设计等领域有着广泛的应用。
在音乐产业中,声音合成被广泛用于合成器、音频插件和音乐软件中,用于创作和演奏各种音乐作品。
在语音合成中,声音合成技术能够将文字转化为语音,广泛应用于语音助手、自动应答系统和阅读辅助设备等。
在游戏设计中,声音合成技术可以为游戏角色和特效音效提供丰富多样的声音效果,增强游戏的沉浸感和真实感。
语音编码LPC

输出带宽: 2.4 kbps
54 比特/帧 44.44 帧/秒 (22.5ms)
浊音/清音检测
浊音:
振值大 能量高
浊 音 语音
清音:
频率高 过零率高
振幅
清 音 语音
0
50
100
150
200
时 间 (样 点 )
浊音/清音检测(2)
LPC-10中,输入信号通过1kHz低通滤波器
另外,人的声道形状及其变化规律是有限的 按一定的 时间段(帧)来计算声道滤波器的参数或语音谱包络
语音信号的短时功率谱
浊音
清音
语音信号产生的数字模型
基音周期 脉冲序列 发生器 清/浊转换 x(n) LPC系数
⊗
u(n)
声道模拟 滤波器
输出语音s(n)
随机噪声 发生器
增益
激励模型:
浊音:周期脉冲信号 清音:随机噪声
线性预测声码器器(Linear predictive Coder, LPC) 码激励线性预测(Code excited linear prediction, CELP) 正弦声码器 混合激励线性预测(mixed excitation linear prediction, MELP)
线性预测声码器(LPC)
i 5. 计算a (ji ) = a (ji −1) + ki ai(−−j1) , for i = 1, 2,...., i − 1;
R为Toeplitz矩阵,可用Levinson-Durbin算法求解:
6. 计算Ei = (1 − ki2 ) Ei −1 ; 7. if i < M , 转第2步。
声道模型:M阶全极点滤波器/AR模型 M M
LPC语音合成实验报告

LPC语音合成实验报告LPC (Linear Predictive Coding) 语音合成是一种基于线性预测编码的语音合成方法。
LPC语音合成算法对语音信号进行建模,通过预测当前样本点的值,利用已知的前期样本点和预测误差来合成语音。
本实验主要研究LPC语音合成的原理以及实现方法,并通过实验评估其合成效果。
一、LPC语音合成原理1.数据准备:从语音信号中提取出一段合适的语音样本。
通常情况下,音频数据需要进行预加重和帧分析处理。
2.参数提取:将每一帧的语音信号进行分析,并提取出LPC参数。
LPC参数的计算过程包括自相关函数的计算、Levinson-Durbin递推算法的运用以及LPC系数的计算。
3.预测误差计算:利用LPC参数对当前样本点进行预测,并得到预测误差。
通过对预测误差进行重建和合成,得到合成语音。
二、LPC语音合成方法1.线性预测编码方法提供了一种对语音信号建模的思路。
通过线性滤波器对语音信号进行预测,得到预测信号和预测误差。
然后利用已知的前期语音样本点和预测误差来合成语音。
2.LPC语音合成方法的关键是参数提取。
通过对语音信号进行分析,可以从每一帧语音信号中提取出LPC系数。
这些LPC系数可以用于预测当前样本点的值,并得到预测误差。
3.采用Levinson-Durbin算法可以高效地计算出LPC系数。
Levinson-Durbin算法是一种递推算法,利用前一个阶数的LPC系数计算出当前阶数的LPC系数,直到求得所需阶数的LPC系数为止。
三、实验结果及分析本实验利用MATLAB软件实现了LPC语音合成算法,并进行了合成效果的评估。
在实验中,首先从语音信号中选取一段合适的语音样本,并进行预处理和帧分析。
然后,利用Levinson-Durbin算法计算出LPC系数,并对语音信号进行合成。
最后,通过主观听觉评估和客观评价指标评估合成语音的质量和相似度。
实验结果表明,LPC语音合成算法可以实现对不同语音信号的合成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语音合成实验报告李飞王江为袁晓杰陈新依王永胜一、应用Matlab实现语音合成的背景语音合成技术的研究已有两百多年的历史,但真正具有实用意义的近代语音合成技术是随着计算机技术和数字信号处理技术的发展而发展起来的,主要是让计算机能够产生高清晰度、高自然度的连续语音。
在语音合成技术的发展过程中,早期的研究主要是采用参数合成方法,后来随着计算机技术的发展又出现了波形拼接的合成方法。
参数合成的特点:调节灵活,但音质较差。
21世纪的通信应在人与人之间、人与机器之间提供高质量的无缝的信息交换手段。
无论何时、何地,以任何方式通信,语音通信将是最基本、最重要的方式之一。
声音信号的处理和通信领域联系密切,掌握音频信号的压缩编码、频谱分析和合成的原理与方法,对通信领域工作的开展具有重要意义。
Matlab是由MathWorks公司于1984年推出的一套科学计算软件。
Matlab具有强大的计算功能和诸多的工具箱,并且提供了COM接口,能方便地与VC等程序开发平台对接。
使用Matlab来实现语音合成能够减少工作量,我们无需关心某些函数的实现,只需知道函数的作用和使用什么函数就够了,这就使Matlab成为科学研究和分析利器。
二、使用Matlab实现语音合成的目的1.熟悉Matlab的使用2.了解语音合成的原理和过程3.重点学习参数合成法的实现三、语音合成的原理1.语音生成模型通过对声管的研究,发现它可以用若干段级连的不等截面积均匀管道进行描述,一般称作级连无损声管模型。
采用流体力学的方法可以证明每一截均匀管道的频响能够用一个但极点模型来近似,这样N 段管道组成的声管就可以用一个N 阶全极点滤波器表述,即:111()1(1)NNkk k k k GG V z a z p z --====--∑∏ (9.1)对于典型的男声,N=10,所有的极点ip 要分别构成共轭对以保证{}i a 系数都是实数。
在综合考虑清音信号,就可以得到产生语音信号的离散语音模型,如图所示:对上述模型进行充分简化。
首先去掉随机信号激励部分,认为激励信号是一个脉冲序列,不考虑有无周期。
其次去掉声门脉冲模型和口唇的辐射模型,因而得到如图所示最简单的语音模型:假设激励信号用e(n)表示,语音信号用s(n)表示,根据全极点模型表达式,有:1()()()Nk k s n a s n k Ge n ==-+∑ (9.2)从而可以用声管模型对激励信号进行滤波得到语音信号。
图2:简化的语音生成图1:产生语音信号的离散时域模2. 语音预测模型假设已经知道了系数{ai},那么将图2的输入和输出对换,就构成了语音的预测模型,即语音信号s(n)送入预测滤波器,得到预测残差e(n)1()()()Nk k e n s n a s n k ==--∑ (9.3)假设信号的发端和收端都知道预测系数{ai},那么发端只需要把误差e(n)传到收端即可,因为收端可以用e(n)作为上述差分方程的激励得到重建语音。
在发端,语音s(n)是滤波器的输入,而误差e(n)是输出。
事实上,系数{ai}当然也需要从发端传到收端,但因为语音具有短时平稳性,即在短时间内(比如10ms ),系数{ai}可以认为不发生变化,所以也不必太频繁地传输,因而采用预测技术后,总是可以大幅度地降低语音的带宽。
这种通过现行预测方法压缩语音数据量的技术称为线性预测编码。
3. 语音重建模型如果知道激励信号x(n)和滤波器系数{a i },就可以利用激励生成重建语音了和语音生成模型的公式完全相同1()()()Nk k s n x n a s n k ∧∧==--∑ (9.4)但这个模型被称为语音重建模型,为了同生成模型区分开,s ∧称为重建语音,如果x(n)正好等于e(n),那么重建语音就会和原始语音s(n)完全相同。
语音的非平稳性(虽然短时平稳)导致预测系数{a i }是时变的,一般每10~20ms 就会发生一些变化以产生不同的音节。
在这种情况下,滤波过程也要分段进行,即每次用不同的滤波器系数,但相邻两次滤波必须要保持滤波器的状态不发生变化。
4. 谐振和共振峰频率语音生成模型的每一对共轭极点都对应一个衰减的正弦信号的特征响应。
例如一对共轭极点j i p e ±Ω在时域冲激响应中的贡献是cos()ni A P n ϕΩ+。
其中极点幅度决定衰减速度,幅角决定振荡频率。
对语音合成,用数字的正弦信号表示抽样后的连续正弦信号。
在这种情况下,模拟频率和数字频率的关系是Ω=wT,其中T表示抽样间隔,w表示模拟频率(弧度),对应的ƒ =w/2π称为共振频率,它定义了声道的谐振频率。
当模型参数变化时,共振峰频率也随着变化,从而产生不同的声调。
四、分析与合成语音分析和合成系统如图3所示。
图3 分析和合成语音的系统框图首先要分析一段(一般是10ms)语音得到它的最佳{ai}系数。
给定这些系数后,就可以适当的输入来合成语音。
对于浊音信号,一种可取的激励模型就是以特定频率重复的单位样值序列,这个频率就是基音频率。
对清音,最好选择随机噪声或者白噪声作为输入。
但在不做清浊判决的情况下,全部采用周期激励的合成质量也可以接受。
分析过程如下:首先,抽样的语音信号被分成10ms长的段;然后,对每段数据进行统计分析,计算相邻样点的相关性并最终得到最佳预测系数。
合成过程就是利用这些预测系数,以及周期的单位样值序列作为输入,依次得到每段合成语音。
1、变速不变调所谓变速不变调,是指声音播放时,速度的改变不会导致音调的变化。
为了实现变速不变调,首先需要将表示“调”的内容从语音中分离出来,由前述语音预测模型,表示“调”的有两个部分,一是共振峰频率,即预测模型的参数;二是基音周期,即激励信号的参数。
接下来的工作就是在不改变这两种参数的前提下改变数据长度。
即将10ms的80个样点的激励变成20ms160个样点(注意保持单位样值的周期不变),在这20ms内保持预测模型系数不变,就合成了20ms语音了。
新语音的声调和原有语音是完全相同的,只不过时间变长了而已。
2、 变调不变速如前所述,可以考虑将激励信号的频率增加(注意不改变信号长度),同时将共振峰频率也相应增大一些(即极点的幅角绝对值增大,或者说上半平面的极点逆时针旋转,下半平面的极点顺时针旋转,但注意两者都要旋转相同角度而且不要转过负实轴),这样得到的合成语音频率将变高。
五、 语音合成的实现1. 基础部分 给定12()()(1)(2)e n s n a s n a s n =----,假设e(n)是输入信号,s(n)是输出部分,求滤波器的传递函数如果a1=1.3789,a2=-0.9506,求共振峰频率,并用zplane,freqz,impz 分别绘出零,极点分布图,频率响应和单位样值相应,用filter 绘出单位样值响应,比较和impz 的是否相同。
程序如下:clcclear all close all fs=8000;P=[1,-1.3789,0.9506]; Z=[1];[z,p,k]=tf2zp(Z,P) %求零点,极点和增益 f=abs(angle(p)*fs/(2*pi)) %求共振峰频率f=w/(2*pi) figure;subplot(221);zplane(Z,P) %画零极点图 title('零极点图'); B=Z;A=P;[H,W]=freqz(B,A); % 求频率响应 subplot(222);plot(W/pi ,abs(H));xlabel('频率\omega(x\pi rad/sample)') title('幅度谱图'); subplot(223);plot(W/pi,angle(H));xlabel('频率\omega(x\pi rad/sample)') title('相位谱图');h=impz(B,A); %计算系统单位序列响应 figure(2); subplot(211);stem(h);title('impz函数求系统冲激图');k=0:400;n=0;x=[(k-n)==0];Y=filter(Z,P,x); %x为单位序列,求系统的冲击响应subplot(212)stem(Y);title('filter函数求系统冲激图');运行结果f=999.9447用impz和filter求出的单位样值相应是一样的,因为这里的输入是单位序列,所以impz 求出的单位冲击相应与用filter求出的是一样。
2 将共振峰频率增加150HZ后,求a1和a2.f=round(f)+150;f=f(1); %共振峰频率增加150p1=f*2*pi/8000; %求模拟频率omegap2=abs(p);p0=p2*exp(j*p1);p0=p0(1);p00=p2*exp(-j*p1);p00=p00(1);p3=[p0;p00]; %已知模值和相角求极点[Z,P]=zp2tf(z,p3,k) %计算系数通过运行函数求出a1=1.2072,a2=-0.95063. 语音合成的实现3.1.常量定义与分配内存空间clcclear allclose all(1)定义常数:% dd和cc是用于变调和变速的参数,可以进行修改。
dd=0; %这个用于变调,值大则高cc=1; %这个用于变速,值大则慢FL = 80; % 帧长WL = 240; % 窗长,即汉明窗的长度P = 30; % 预测系数个数,增加预测系数可以提高音质s=wavread('voice.wav'); %读取语音L = length(s); % 读入语音长度FN = floor(L/FL)-2; % 计算帧数fs=8000; %抽样频率FL_v=cc*FL; %改变帧长度可以变速,用于变速不变调(2)分配内存空间% 预测和重建滤波器(初始化空间)exc = zeros(L,1); % 激励信号(预测误差)excc = zeros(L,1); % 人工合成的冲击信号,即激励信号s_rec = zeros(L,1); % 重建语音hw = hamming(WL); % 汉明窗fze=zeros(1,30); %用于保持滤波器状态不变fzs=zeros(1,30); %用于保持滤波器状态不变A=zeros(FN,(P+1)); %预测系数,也是声道模型的分母部分E=zeros(FN);pp=0; %生成激励的初始相位=03.2语音预测部分这部分对原始语音进行预测处理的目的是取得预测系数A,基音周期PT和能量E。
% 依次处理每帧语音for n = 3:FN %从第三帧到最后一帧% 计算预测系数(不需要掌握)s_w = s(n*FL-WL+1:n*FL).*hw; %汉明窗加权后的语音,用来预测[A(n,:),E((n-1)*FN)] = lpc(s_w, P); %用线性预测法计算P个预测系数% A是预测系数,E会被用来计算合成激励的能量。