毕业论文-基于matlab的语音处理语音合成说明书内容摘要:

利用 MATLAB 编程可以对语音信号进行各种处理。 由于 MATLAB 是一种面向科学和工程计算的高级语言,允许用数 5 学形式的语言编程,又有大量的库函数,所以编程简单、编程效率高、易学易懂,我们可以对信号进行加噪去噪、滤波、截取语音等,也可进行语音编码、语音识别、语音合成的处理 等。 总之,对于语音信号进行分析处理, MATLAB 软 件是当今比较高效的平台。 第二章 语音信号的特点与采集 语音信号的特点分析 语音信号的特点可以分为时域方面和频域方面。 6 在时域内,语音信号具有 “ 短时性 ” 的特点,即在总体上,语音信号的特征是随着时间而变化的,但在一段较短的时间间隔内,语音信号保持平稳。 在频域内,语音信号的频谱分量主要集中在 300~ 3400Hz的范围内。 利用这个特点,可以按 8kHz 的采样率对语音信号进行采样,得到离散的语音信号。 语音信号的这两种特点均可通过 MATLAB 软件表现出来 ,如图 和图 所示。 图 语音信号时域图 7 图 语音信 号频域分析 语音信号的采集 语音信号的量化编码采样 在将语音信号进行数字化前,必须先进行防混叠预滤波,预滤波的目的有两个,一是抑制输入信导各领域分量中频率超出 sf /2 的所有分量 ( sf 为采样频率 ),以防止混叠干扰;二是抑制 50Hz 的电源工频干扰。 这样,预滤波器 必须是一个带通滤波器,设其上、下截止颜率分别是 Hf 和 Lf ,则对于绝人多数语音编译码器, Hf =3400Hz、 Lf = 60~100Hz、采样率为 sf = 8kHz;而对于语音识别而言,当用于电话用户时,指标与语音编译码器相同。 当使用要求较高或很高的场合时 Hf = 4500Hz或 8000Hz、 Lf = 60Hz、 sf = 10kHz或 20kHz。 为了将原始模拟语音信号变为数字信号,必须经过采样和量化两个 步骤,从而得到时间和幅度上均为离散的数字语音信号。 采样也称抽样,是信号在时间上的离散化,即按照一定时间间隔 △ t 在模拟信号 x(t)上逐点采取其瞬时值。 采样时必须要注意满足奈奎斯特定理,即采样频率 sf 必须以高于受测信号的最高频率两倍以上的速度进行取样,才能正确地重建波它是通过采样脉冲和模拟信号相乘来实现的。 在采样的过程中应注意采样间隔的选择和信号混淆:对模拟信号采样首先要确定采样 8 间隔。 如何合理选择 △ t 涉及到许多需要考虑的技术因素。 一般而言,采样频率越高,采样点数就越密,所得离散信号就越逼近于原信号。 但过高的采样频率并不可取,对固定长度( T)的信号,采集到过大的数据量( N=T/△ t),给计算机增加不必要的计算工作量和存储空间;若数据量( N)限定,则采样时间过短,会导致一些数据信息被排斥在外。 采样频率过低,采样点间隔过远,则离散信号不足以反映原有信号波形特征,无法使信号复原,造成信号混淆。 根据采样定理,当采样频率大于信号的两倍带宽时,采样过程不会丢失信息,利用理想滤波器可从采样信号中不失真地重构原始信号波形。 量化是对幅值进行离散化,即将 振动幅值用二进制量化电平来表示。 量化电平按级数变化,实际的振动值是连续的物理量。 具体振值用舍入法归到靠近的量化电平上。 语音信号经过预滤波和采样后,由 A/D 变换器变换为二 进 制数字码。 这种防混叠滤波通常与模数转换器做在一个集成块内,因此目前来说,语音信号的数字化的质量还是有保证的。 市面上购买到的普通声卡在这方面做的都很好,语音声波通过话筒输入到声卡后直接获得的是经过防混叠滤波、 A/D 变换、量化处理的离 散的数字信号。 利用 Windows 录音器采集语音信号 在本次设计中,可以利用 Windows 自带的 录音机录制语音文件,图 是基于 PC 机的语音信号采集过程,声卡可以完成语音波形的 A/D 转换,获得 WAV 文件,为后续的处理储备原材料。 调节录音机保存界面的 “ 更改 ” 选项,可以存储各种格式的 WAV文件。 图 基于 PC 机的语音采集过程 Windows自带录音机 语音 麦克风 声卡 滤波 采样 A/D转换 WAV 9 第三章 语音信号的分析 语音信号的短时能量分析 一定时宽的语音信号,其能量的大小随时间有明显的变化。 清音信号和浊音信号之间的能量差别相当显著。 其中清音段(以清音为主要成份的语音段),其能量比浊音段小得多 [10]。 因此,对语音的短时能量进行分析,可以描述语音的这种特征变化情况。 定义短时能量为 如式( 31)所示。 212 )]()([)]()([ mnmxmnmxE nNnmmn     ( 31) 其中 N 为窗长。 特殊地,当采用矩形窗时,可简化为 如式( 32)所示。 )(2 mxEmn  ( 32) 也可以从另外一个角度来解释。 令 )(=)( 2 nωnh ( 33) 则 nE 可表示为 如式( 34)所示。 )()()()( 22 nhnxmnhmxEmn   ( 34) 可以理解为 , 首先语音信号各个样点值平方,然后通过一个冲击响应为 h(n)的滤波器,输出为由短时能量构成的时间序列。 短时能量的计算直接受冲击响应的选择即窗函数的选择的影响。 如果冲击响应的幅度是恒定的,它的序列长度 N(即窗长)会很长,将其等效为非常窄的低通滤波器,这时冲击响应对 )(2nx 产生的平滑的作用比较明显,使短时能量基本没有很大的变化,将不能表现出语音的时变的特性。 相反,如果冲击响应 的序列长度过于小,等效窗就不能提供出够用的平滑,以导致语音的振幅在瞬时的变化的许多细节仍被留了下来,进而不能看出振幅包络变化的规律,一般我们要求窗长是几个基音周期的数量级。 图 为采样率 8000kHZ, 16 位,单声道的一个语音信号(单词 “ earth” )在不同矩形窗长时的短时能量函数,我们会发现:语音信号的幅度变化在被短时能量所反映时,窗长的长短都有影响。 10 图 不同矩形窗长的短时能量函数 我们知道,单词 earth前半部分是浊音,后半部分是清音。 由以上分析结果可知,浊音部分的能量较之清音部分要大得 多,而清音部分的能量相当小,几乎为零。 对语音信号进行短时能量函数运算,可实现以下三点应用: ( 1)可用于区分清音段与浊音段。 En值大对应于浊音段, En值小对应于清音段。 ( 2)可用于区分浊音变为清音或清音变为浊音的时间(根据 En值的变化趋势)。 ( 3)对高信噪比的语音信号,也可以用来区分有无语音(语音信号的开始点或终 止点)。 无信号(或仅有噪声能量)时, En值很小,有语音信号时,能量显著增大。 短时自相关分析 对于确定性信号序列,自相关函数定义 如式 ( 35) 所示。   m kmxmxkR )()()( ( 35) 对于随机性信号序列或周期性信号序列,自相关函数的定义 如式( 36)所示。   m kmxmxNkR )()(121)( ( 36) 自相关函数具有以下几项性质: 11 (1)若序列是周期性的 , 假设序列周期为 pN ,那么其自相关函数也是具有相同周期的周期函 数, 即 )+(=)( PNkRkR (2)自相关函数是偶函数,即 R(k)=R(k); (3)当 k=0 时,自相关函数有极大值,即 )()0( kRR  ; (4)R(0)为随机性序列的平均功率或确定性信号序列的能量。 自相关函数的上述性质,完全可以适用于语音信号的时域分析中。 例如,浊音语音波形序列具有周期性,因此可用自相关函数求出这个周期,即是基音周期。 此外,自相关函数也可用在语音信号的线性预测分析 中。 短时自相关函数的定义如 式( 37)所示。   mn kmnkmxmnnxkR )()()()()(  ( 37) 令 mnm  ,并且   )( mm   ,可以得到 如下式子,如( 38)所示。 )]()()][()([)]()()][()([)(10kmkmnxmmnxkmkmnxmmnxkRkNmmn ( 38) 如 图 是在不同的矩形窗窗长条件下单词 earth的语音自相关的函数的波形。 对两图分析可得:清音信号的短时自相关函数的波形不具有周期性,也没有明显的峰值,且随着延时 k 的增大迅速变小,因此其接近于随机噪声;浊音是具有周期性的信号,浊音信号的周期为自相关函数的周期,由此可知,语音信号的性质是浊音还是清音,如果是浊音,还可以得出它的基音周期,它的基音周期可由自相关函数波形中的第一个峰值的位置来估计。 所以,自相关函数常用作一下两种作用: (1) 区分语音信号是清音还是浊音; (2) 估计浊音语音信号的基音周期 [4]。 12 图 不同的矩形窗窗长 下短时自相关 13 第 四 章 语音合成 语音合成技术概述 语音合成技术的意义 语音合成技术涉及声学、语言学、数字信号处理技术、多媒体技术等多个领域 , 是当今世界强国竞相研究的热门技术之一。 语音合成技术可分为参数合成和波形拼接两种方法。 早期的研究主要是采用参数合成方法 , 它是计算发音器官的参数 , 从而对人的发音进行直接模拟。 语音合成已 经在许多方面得到了实际应用,方便了人们的生活,创造了很好的经济效益和社会效益,如公共交通中的自动报站、各种场合的自动报警、电话自动查询服务、文本校对中的语音提示等 [8]。 本文主要利用载波调制技术进行语音合成。 基于载波调制的语音信号合成是以语音信号处理技术、数字信号处理技术为基础,依托于电子计算机、 Windows 操作系统、 MATLAB处理软件等工具将两个信号合成为一个信号。 具有较强的实用性、可操作性等特点。 基于载波调制语音合成的基本原理 语音信号合成是一个 “ 分析 — 存储 — 合成 ” 的过程。 一般是选择 合适的基本单元,将基本单元用一定的参数编码方式或波形方式进行存储,形成一个语音库。 合成时,根据待合成语音信号,从语音库中取出基本单元进行合成,并将其还原成语音信号。 在语音合成中,为了便于存储和后续分析,必须先将语音信号进行预分析、预处理、波形变换等一系列操作。 其中,基元是语音合成处理的最小单元,待合成的语音库就是所有语音基元的某中集合。 根据基元的选择方式以及其存储形式的不同,可以将合成方法笼统的分为波形合成方法和参数合成方法。 波形合成是一种相对简单的语音合成技术。 它把人的发音波形直接存储或者进行进行简单的 波形编码后存储,组成一个合成的语音库;合成时,根据待合成的信息,在语音库中取出相应单元的波形数据,拼接或编辑到一起,经过解码还原成语音。 该语音合成技术具有一定的局限和不足,但对语音信号具有数据量庞大的特点,这种误差在某种范围内是可以接受的。 基于载波调制的语音信号合成是基于信号的振幅调制原理而实现的。 将低频信号加载到高频载波信号的过程,或者说把信息加载到信息载体上以便传输的处理过程,称为调制。 所谓 “ 加载 ” ,其实质是使高频载波信号(信息载体)的某个特性参数随信息信号幅值的 14 大小程线性变化。 基于载波调制的语音信号 合成是以 语音一 信号作为调制信号, 语音二 信号为载波信号来进行合成一种以语音 二 信号声色表述语音 一 内容的新信号。 这种调制方式是用传递的低频信号(如代表语言、音乐、图像的电信号)去控制作为传送载体的高频振荡波(称为载波)的幅度,是已调波的幅度随调制信号的大小线性变化,而保持载波的角频率不变。 基于载波调制的语音合成基本知识 关键函数希尔伯特变换介绍 本文语音合成的设计思路是用一个语音信号的包络去调制另一个语音信号,实现语音的合成。 这就用到了一个关键的函数,希尔伯特变换。 在 数学 与 信号处理 的领域中,一个实值函数 的希尔伯特变换是将信号 s(t)与 1/(πt)做 卷积 ,以得到 s39。 (t)。 因此,希 尔伯特变换结果 s39。 (t)可以被解读为输入是 s(t)的 线性时不变系统 的输出,而此系统的脉冲响应为 1/(πt)。 这是一项有用的数学工具,用在描述一个以实数值载波做调制的信号 之复数包络,出现在通讯理论中发挥着重要作用 [9]。 希尔伯特变换的频域数学表达式 如式( 41)所示。 )sg n()(  iwH ( 41) 其中 F 是傅里叶变换, i 是虚数单位, ω 是角频 率。 希尔伯特变换等效于  π/2的相移,对正频率产生 π/2的相移,对负频率产生 π/2相移,或者说,在时域信号每一频率成分移位 1/4 波长,因此,希尔伯特变换又称为 90 度移相器。 MATLAB 提供了计算 Hilbert 变换的函数,其格式为 y=Hilbert(x)。 但需注意的是,该函数计算出的结果是序列的解析信号,其虚部才是序列的 Hilbert 变换。 希尔伯特变换在语音信号处理中具有两个性质: 序列 x(n)通过 Hilbert 变换器后,信号频谱的幅度不发生变化,这是因为 Hilbert 变换器是全通滤波器,引起频谱变。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。