基本信息
文件名称:变声器设计方案.doc
文件大小:562.54 KB
总页数:6 页
更新时间:2025-05-31
总字数:约1.78千字
文档摘要

MATLAB变声器设计

序言

伴随生活水平提升,科技不停进步,很多人为了娱乐,从而期望改变自己声音;还有现在很多访问节目为了保护被访问者,都对声音进行了对应处理。本设计经过编写MATLAB程序,修改相关声音参数,使其频率发生对应改变,在输出时达成变声。

1变声原理

在进行性别变声时,关键考虑基音周期、基频和共振峰频率改变。其中男生、女生和和童声基频、共振峰关系如图1所表示;基音周期改变时,基频、共振峰同时改变,若伸展现有男变女、女变童,反之亦可。本试验是基于男生录制声音进行相关参数提取,修改靠近于女声,实现男声到女声变换。

人群

基频分布(Hz)

共振峰频率分布

男声

[50,180]

偏低

女声

[160,380]

童声

[400,1000]

偏高

图1

2提取参数

基于短时自相关法基音周期估值进行自相关计算,经过MATLAB编程采取自相关算法能够实现基音周期估值,即对语音信号进行低通滤波,然后进行自相关计算。在低通滤波时,采取巴特沃斯滤波器。

2.1.1构建巴特沃斯低通滤波器

依据人说话特征设定对应指标参数,对本段语音设计算出巴特沃斯模拟滤波器阶数N为5,3dB截止频率Ωc,Ωc=Ωp(100.1αp

Ga

其中b0=1.0000,b1

将将p=s/c带人G

H

依据设定滤波器编写MATLAB程序,当信号经过低通滤波器后,对原始信号滤波产生结果如图2所表示,低通滤波后,保留基音频率,然后再用2kHz采样频率进行采样,采样序列为x(n),后进行下一步自相关计算。

图2

2.1.2语音信号短时自相关函数

定义语音信号自相关函数以下:

R

其中k为信号延迟点数;xn(n)为语音信号;N为语音帧长度。经过低通滤波以后,取160个样点数,帧长取10ms,对每帧语音求短时自相关,取得自相关最大点数,自相关函数在基音周期处表现为峰值,这些峰值点之间间隔平均值就是基音周期,从而估量出基音周期,不过因为图中存在野点,编写MATLAB程序除去野点算出对应基音周期如图

声,设新为PT1;

图3

2.2LPC倒谱法提取共振峰

经过线性估计分析得到合成滤波器系统函数为:

H(z)=1

其中h(n)为冲击响应,ai

下面求h(n)倒谱h(n),首先依据同态分析方法有Hn=logH(z),因为H(z)是最小相位,即在单位圆内是解析,所以说H(z)能够展开成级数形式,即Hz=1∞

n=1

有(1-i=1paiz-i)(n=1∞

h

在本试验中,取估计阶数为10,语音样点数为160,根据上式可直接从估计系数{ai}求得倒谱hn,这个倒谱是依据线性估计模型得到,即称为LPC倒谱。编写

图4

3线性估计语音信号合成

依据线性估计基础思想,用过去M个样点值来估计现在或未来样点值:

y

yn为估计信号,ai为估计系数,y(n)为取样信号,估计误差

ε

这么就能够经过在某个准则下使估计误差εn达成最小值方法来决定唯一一组线性估计参数ai(i=1,2,?

把语音信号某一帧内短时均方估计误差定义为:

E{ε2(n)}=E{

为使E{ε2(n)}最小,对

E{[yn-i=1

上式表明采取最好估计系数时,估计误差ε(n)与过去样点值正交。因为语音信号短时平稳性,要分帧处理,对于每一个样点值记为y(n),...,y(n+N-1),这段语音记为Yn。

对于语音段Yn,并记?nj,i=E{y

Rn

依据Yule—walker方程,能够解出样值,用这种方法定时地改变激励参数u(n)和估计系数ai,并使用修改过后基因周期和共振峰参数,就能合成出语音,合成语音样本

S(n)=i=1

ai

4GUI界面设计

在MATLAB新建GUI,添加各部件。

打开一段男生录制声音,进行仿真实

验,效果以下图所表示。