语音修正的短时自相关的实现

合集下载

语音信号的短时时域分析

语音信号的短时时域分析
6

x=linspace(0,100,10001); h=zeros(10001,1); h(1:2001)=0; h(2002:8003)=1; h(8004:10001)=0; figure(1); subplot(1,2,1) plot(x,h,'k');
黑色 title('矩形窗时域波形'); xlabel('样点数'); ylabel('幅度'); axis([0,100,-0.5,1.5]) line([0,100],[0,0]) w1=linspace(0,61,61); w1(1:61)=1; w2=fft(w1,1024); w3=w2/w2(1) w4=20*log10(abs(w3)); w=2*[0:1023]/1024; subplot(1,2,2); plot(w,w4,'k') axis([0,1,-100,0]) title('矩形窗幅度特性'); xlabel('归一化频率 f/fs'); ylabel('幅度/dB');
H ( z ) 1 z 1
设 n 时刻的语音采样值为 x(n) ,经过预加重处理后的结果为:
y (n) x(n) x(n 1)
高通滤波器的幅频特性和相频特性如下:
图1 预加重前和预加重后的一段语音信号时域波形:
2
图2 预加重前和预加重后的一段语音信号频谱:
图3 例一:语音信号预加重
x=linspace(20,80,61); h=hamming(61); figure(1); subplot(1,2,1); plot(x,h,'k'); title('Hamming窗时域波形'); xlabel('样点数'); ylabel('幅度'); w1=linspace(0,61,61); w1(1:61)=hamming(61); w2=fft(w1,1024); w3=w2/w2(1); w4=20*log10(abs(w3)) w=2*[0:1023]/1024; subplot(1,2,2) plot(w,w4,'k') axis([0,1,-100,0]) title('Hamming窗幅度特性'); xlabel('归一化频率 f/fs'); ylabel('幅度/dB能量 %定义画图数量和布局 %画 N=50 时的语音能量图 %横坐标 %纵坐标 %曲线标识 %定义横纵坐标范围

修后-基于短时自相关法的周期估值+(1)

修后-基于短时自相关法的周期估值+(1)

基于短时自相关法的基音周期估值【摘要】MATLAB是一种科学计算的软件,其具有处理数据的重要作用。

且MATLAB运用的形式是矩阵形式。

另外,MATLAB把性能的数值计算与可视化集合为一个整体,还提供了大量的内置函数。

也正是因为如此,它在当代科学计算工作、系统控制以及处理信息等领域得到广泛的应用和研究。

【关键词】清音;浊音;基音周期;自相关函数;研究随着现代语音处理技术的快速发展以及检测方法的进一步提高,其在实施过程中,想要去除声音的刺激是否是完整的周期脉冲,与声道的影响是十分困难的。

照此一来,基音周期就进行定位的定位间距是不可能的,或者具有相当大的困难。

除此之外,加上基音周期的变化范围比较广,因此,其个人发音的习惯、性别、年龄、发音力度以及发音时情感等多重因素都对基音周期定量具有严重的影响,并且不能够准确确定。

照此一来,在这样的前提下,其健壮和准确的特性就起不到应有的作用。

直至今日,还未发现任何一种万能方法,能够确保其在任何情况下都能准确地、可靠地估计出基音的周期。

根据调查发现,当前运用的主要方法主要有基于传统的语音模型,最具代表性的就是自相关法、平均幅度差函数法、线性预测分析方法、小波变换法及在四种算法上的基础上的衍生算法等。

此外,由于语言的本身的语音声学性能,加上语言的自然性,其成为当前人类传播的最有效,最方便的一种方式。

在当前信息化盛行的现代,其针对语音处理技术内容所做的研究不仅具有现代意义,同时还有助于其更有效的生产,运输,存储,访问应用程序以及储存语音信息,更重要的一点是还推动了社会发展,具有不可替代的重要作用。

因此,有必要对基音周期估计量进行研究。

一般情况下,信号与系统中MATLAB应用的方式是通过用符号运算和数值计算进行仿真分析的。

加上信号与系统课程中的许多内容大都是基于公式而进行演算,此外,MATLAB又是借助数学符号工具箱来为工作提供的运算功能的,这在一定程度上基本满足设计的实际需求。

语音信号的自相关基音周期检测

语音信号的自相关基音周期检测

语音信号的自相关基音周期检测语音信号是一种人类最基本的交流方式,它包含人声的频率、强度和时间三个方面的信息。

语音信号的自相关和基音周期是语音信号分析中的重要技术,对于语音信号分析、识别、合成等应用有着积极的作用。

一、语音信号的自相关语音信号的自相关是指语音信号的样本与样本之间的相关性。

在语音信号中,相邻的样本之间一般都具有相关性,该相关性可以通过计算信号的自相关函数获得。

自相关函数描述了语音信号在不同延迟情况下的相似程度,也就是说,自相关函数可以反映语音信号的周期特征和基音周期。

二、语音信号的基音周期检测语音信号的基音周期是指人语中相邻两个基音周期之间的时间长度。

基音周期检测是一项关键的语音信号分析技术,在音素识别、语音合成、语音编码等领域应用广泛。

基音周期检测方法主要有三种:自相关法、FFT法和LP法。

自相关法是指通过计算信号与自身在不同延迟下的相似度,判断语音信号的基音周期。

具体来说,自相关法首先将语音信号进行预加重和分帧处理,然后计算每一帧的自相关函数,最后采用模板匹配的方法找到最强的周期峰值,从而得到基音周期。

FFT法则是将分帧后的语音信号进行傅里叶变换,提取频谱信息,并通过在频域滑动一个窗口,检测周期性的能量最大值,确定基音周期数。

LP法是通过线性预测,将语音信号分解成具有不同频率的谐波分量,然后利用实验数据验证模型,得到基音周期。

总的来说,不同的基音周期检测方法有其各自的优缺点。

自相关法较为简单但在噪声环境下准确度不高,FFT法可以检测到非周期性的基音,但精度不如自相关法,LP法精度较高但计算复杂度较大。

作为一门复杂的反演问题,语音信号的自相关和基音周期检测一直是语音处理研究中的重要问题,目前的研究主要集中在解决语音信号分析和识别中的实际问题和应用,为提高语音合成、语音编码等方面的应用水平提供技术支持。

短时自相关函数法基音检测

短时自相关函数法基音检测
专业班级08级信息工程组别
成员
1、引言
人在发浊音时,气流通过声门使声带产生张弛振荡式振动,产生一股准周期脉冲气流,这一气流激励声道就产生浊音,又称有声语音,它携带着语音中的大部分能量。这种声带振动的频率称为基频,相应的周期就称为基音周期( Pitch) ,它由声带逐渐开启到面积最大(约占基音周期的50% )、逐渐关闭到完全闭合(约占基音周期的35% )、完全闭合(约占基音周期的15% )三部分组成。
xlabel('帧数(n)');ylabel('周期(ms)');title('各帧基音周期');
运行结果如下
图3
5、设计中遇到的问题与心得
(1)设计中遇到的问题:
由于每一帧做短时自相关时,Rm(k)开始的几个点的值比第一个周期的峰值还大,因此无法正常提取出第一个峰值对应的点。开始程序的运行结果如下:
图4
于是经过和同学讨论之后决定舍弃Rm开始几个值较大的点,于是运行结果就正常了
图5
(2)心得体验:
短时自相关函数法基音检测的主要原理是通过比较原始信号和它移位后的信号之间的类似性来确定基音周期,如果移位距离等于基音周期,那么两个信号具有最大类似性。基于自相关函数的算法是基音周期估计的常用方法,特别适用于噪声环境下的基音提取。自相关函数在基音周期处表现为峰值,相邻两个峰值之间的间隔即为一个基音周期。
但是短时自相关函数法也存在以下缺点:
倍频现象
通常情况下,基波分量往往不是最强的分量,丰富的谐波成分使语音信号的波形变得非常复杂,给基音检测带来了困难,经常发生基频估计结果为其实际基音频率的二次倍频或二次分频的情况。加之还有清浊混杂等情况,使基音检测成为一大难题。
如图5( a)是一帧语音信号,图4( b)是这帧语音信号的自相关函数,可以看出自相关函数在基音周期处表现为峰值,这些峰值点之间的间隔的平均值就是基音周期,如图6( b)所示可以看出自相关函数检测出的基音周期是原始信号基音周期的一半,这是由于谐波峰值点(箭头所示)的影响,这就是上述缺点中所说的倍频现象。

语音信号处理实验讲义

语音信号处理实验讲义
sum=0;
for m=1:N
sum=sum+b1(m)*b1(m+k-1);
end
A(k)=sum;
end
for k=1:320
A1(k)=A(k)/A(1);
end
%画图
figure(1)
subplot(3,1,1)
plot(A1);
xlabel('延时k')
ylabel('R(k)')
legend('N=320')
e=fra(256,128,x);
ee=e(20,:);
subplot(2,2,1)
ee1=ee/max(ee);
plot(ee1)
xlabel('样点数')
ylabel('幅度')
title('原始语音')
axis([0,256,-1.5,1.5])
%矩形窗傅立叶变换
r=fft(ee,1024);
axis([0,320,-0.5,1])
图2-2 修正的自相关函数(参加自相关运算的点数N取不同值)
四、思考题
1、自相关函数的作用是什么?互相关函数的作用是什么?
2、浊音信号分别加矩形窗和汉明窗时自相关函数有什么不同?
3、清音信号的自相关函数和浊音信号的有什么区别?
实验三语音信号频域特征分析
一、实验目的
plot(s2)
title('一帧语音信号');
xlabel('样点数');
ylabel('幅度');
axis([0,320,-1,1]);
subplot(3,1,2)

请描述短时自相关函数在语音信号时域处理的应用

请描述短时自相关函数在语音信号时域处理的应用

请描述短时自相关函数在语音信号时域处理的应用短时自相关函数(Short-term autocorrelation
function,STAF)是描述语音信号时域特征的一种重要工具,通常用于分析语音信号的波形结构、频率特性等信息。

下面是STAF在语音信号时域处理中的应用:
1. 语音信号的频谱分析:通过计算短时自相关函数,可以确定语音信号在不同频率上的成分个数和强度分布情况。

这对于语音信号的频谱分析具有重要的参考意义。

2. 语音信号的滤波器设计:通过计算STAF,可以确定语音信号在不同频率上的系数,为语音信号的滤波器设计提供参考。

例如,使用快速傅里叶变换(FFT)进行频域分析,然后使用适当的滤波器来实现语
音信号的降噪、去基线等处理。

3. 短时功率谱密度分析(Short-term power spectrum density,SPD):通过计算短时自相关函数,可以得到语音信号在不同
频率上的功率谱密度分布情况。

这对于语音信号的功率谱分析具有重要的参考意义,可以用于语音信号的功率谱估计、功率限制等任务。

4. 语音信号的短时特征提取:通过计算短时自相关函数,可以得到语音信号的短时特征。

这些特征可以用于识别不同的说话人、区分不同的语音信号等任务。

例如,可以使用一些基于短时特征的语音分类算法,如基于语音谱聚类的算法。

短时自相关函数是语音信号时域处理中重要的工具,可以用于分析语音信号的波形结构、频率特性、滤波器设计、功率谱密度分析、
短时特征提取等任务,为语音信号的处理提供更好的参考和支持。

《语音信号处理》实验2-基音周期估计

《语音信号处理》实验2-基音周期估计

华南理工大学《语音信号处理》实验报告实验名称:基音周期估计姓名:学号:班级:10级电信5班日期:2013年5 月15日1.实验目的本次试验的目的是通过matlab编程,验证课本中基音周期估计的方法,本实验采用的方法是自相关法。

2. 实验原理1、基音周期基音是发浊音时声带震动所引起的周期性,而基音周期是指声带震动频率的倒数。

基音周期是语音信号的重要的参数之一,它描述语音激励源的一个重要特征,基音周期信息在多个领域有着广泛的应用,如语音识别、说话人识别、语音分析与综合以及低码率语音编码,发音系统疾病诊断、听觉残障者的语音指导等。

因为汉语是一种有调语言,基音的变化模式称为声调,它携带着非常重要的具有辨意作用的信息,有区别意义的功能,所以,基音的提取和估计对汉语更是一个十分重要的问题。

由于人的声道的易变性及其声道持征的因人而异,而基音周期的范围又很宽,而同—个人在不同情态下发音的基音周期也不同,加之基音周期还受到单词发音音调的影响,因而基音周期的精确检测实际上是一件比较困难的事情。

基音提取的主要困难反映在:①声门激励信号并不是一个完全周期的序列,在语音的头、尾部并不具有声带振动那样的周期性,有些清音和浊音的过渡帧是很难准确地判断是周期性还是非周期性的。

②声道共振峰有时会严重影响激励信号的谐波结构,所以,从语音信号中直接取出仅和声带振动有关的激励信号的信息并不容易。

③语音信号本身是准周期性的(即音调是有变化的),而且其波形的峰值点或过零点受共振峰的结构、噪声等的影响。

④基音周期变化范围大,从老年男性的50Hz到儿童和女性的450Hz,接近三个倍频程,给基音检测带来了一定的困难。

由于这些困难,所以迄今为止尚未找到一个完善的方法可以对于各类人群(包括男、女、儿童及不向语种)、各类应用领域和各种环境条件情况下都能获得满意的检测结果。

尽管基音检测有许多困难,但因为它的重要性,基音的检测提取一直是一个研究的课题,为此提出了各种各样的基音检测算法,如自相关函数(ACF)法、峰值提取算法(PPA)、平均幅度差函数(AMDF)法、并行处理技术、倒谱法、SIFT、谱图法、小波法等等。

声音的特征提取方法

声音的特征提取方法

声音的特征提取方法声音是日常生活中不可或缺的一部分,每个人的声音都有其独特的特征。

声音的特征提取在语音识别、情感识别、人声合成等领域中有着重要的应用。

本文将介绍几种常见的声音特征提取方法。

1. 短时能量短时能量是指在一段时间内声音的能量大小。

通常以毫瓦为单位衡量。

计算方法为将声音分为若干个等长的时间段,然后计算每个时间段内声音信号的平方和,再取平均值。

通过计算短时能量,可以判断声音的强度和音频片段的节奏性。

2. 频谱特征频谱特征是指声音信号在频域上的特征。

常见的频谱特征有频率、幅度、相位等。

其中,频率是指声音信号中各个频率成分的大小;幅度是指声音信号各个频率成分的振幅大小;相位则是指各个频率成分相对于参考信号的相位差。

频谱特征的提取可以通过FFT(快速傅里叶变换)算法实现。

3. 梅尔频率倒谱系数梅尔频率倒谱系数(MFCC)是一种常用的声音特征提取方法。

它模拟人耳对声音的感知方式,将声音信号从时域转换到频域。

MFCC的提取过程可以分为以下几步:首先,将声音信号分帧;然后,对每一帧进行FFT变换,并计算出梅尔频率谱;接着,对梅尔频率谱进行离散余弦变换,得到MFCC系数。

MFCC系数可以用于声音识别、语音合成、情感识别等领域。

4. 过零率过零率是指声音信号在时域上穿过零点的次数。

过零率可以反映声音信号的频率和音调。

通常,过零率越高,声音的高音部分越多。

过零率可以用于声音识别、语音合成、音乐处理等领域。

5. 短时自相关函数短时自相关函数(STACF)是指声音信号在时域上的自相关性。

它可以反映声音信号的周期性和谐波结构。

计算方法为将声音分帧,并计算每一帧内各个时刻的自相关系数。

通过STACF,可以提取出声音的基频信息,用于声音合成和语音识别。

总结声音的特征提取是一项重要的任务,它可以帮助我们从声音信号中提取出有用的信息。

本文介绍了几种常见的声音特征提取方法,包括短时能量、频谱特征、MFCC、过零率以及STACF。

语音信号短时分析.ppt

语音信号短时分析.ppt
❖ 如果窗的起点是n=0,短时过零率Z为
Z01 2N n 0 1Sg (Sw n (n) )Sg (Sw n (n1))
将Z应用于语音信号分析中
❖ 发浊音时,声带振动,因而声门激励是以此音调频 率为基频来使声道共振;尽管有若干个共振峰,但 其能量的分布集中于低于3KHz的频率范围内。
❖ 发清音时声带不振动,声道某部分阻塞产生类白噪 声激励,通过声道后其能量集中在比浊音时更高的 频率范围内。
0
-50
-100
-150 0
0.2
0.4
0.6
0.8
Normalized Frequency ( rad/sample)
Frequency domain 40
30
20
10
0
-10
-20 0
0.2
0.4
0.6
0.8
Normalized Frequency ( rad/sample)
语音信号的短时能量(语音信号强度 的度量参数)
❖ 在语音识别中正确的决定所要识别语音的起点、终 点对于提高识别率往往是重要的。
❖ 对于数字移动通信的手持机编译码器,在较长的无 声段应降低发射功率以节约其电池的消耗。
Hale Waihona Puke 语音有声和无声❖ 对于已经判定为语音段的部分,尚需决定其清音或 浊音,无论对于语音识别还是低速语音编译码器这 都是很重要的。这些问题可以概括为无声/有声判决 以及更细致的S/U/V判决。
N 1
Hann
w (n ) 0 .5 (1 c 2 os n( )0 ) ,n N 1 N 1
❖ 不同的窗口选择(形状、长度),将决定短时平均能量的性质。什么 样的窗口,其短时平均能量才能更好的反映语音信号的振幅变化哪?

短时自相关函数

短时自相关函数

短时自相关函数短时自相关函数短时自相关函数(Short-Time Autocorrelation Function,STA)是一种用于分析信号的工具,它可以描述信号在时间上的变化以及信号中存在的周期性特征。

本文将介绍短时自相关函数的基本概念、计算方法以及应用场景。

一、基本概念1. 自相关函数自相关函数是一个描述信号与其自身在不同时间点之间的相似度的函数。

它可以用来刻画信号中存在的周期性特征以及噪声等随机成分。

自相关函数可以定义为:$$R(\tau)=\int_{-\infty}^{\infty}s(t)s(t+\tau)dt$$其中,$s(t)$是原始信号,$\tau$表示时间延迟。

2. 短时自相关函数短时自相关函数是对整个信号进行局部处理得到的结果。

它可以用来分析信号在不同时间段内的周期性特征以及变化情况。

短时自相关函数可以定义为:$$R_{STA}(n,\tau)=\sum_{k=-\infty}^{\infty}x(n+k)x(n+k+\tau)w(k)$$其中,$x(n)$是原始信号,在$n$时刻处采样得到;$\tau$表示时间延迟;$w(k)$是窗口函数。

二、计算方法1. 窗口函数窗口函数是用来对原始信号进行局部处理的一种方法。

它可以使得信号在局部范围内变得平滑,并且可以减小信号的频谱泄漏。

常见的窗口函数有矩形窗、汉宁窗、汉明窗等。

2. 计算步骤(1)选择一个合适的窗口函数,并将原始信号分段。

(2)对每一段信号进行加窗处理,得到加权后的信号。

(3)计算每一段加权后的信号的自相关函数,得到短时自相关函数。

(4)将所有短时自相关函数拼接起来,得到整个信号的短时自相关函数。

三、应用场景1. 语音识别短时自相关函数可以用于语音识别中。

在语音识别中,需要将语音信号分成小段,并提取出每一段中存在的特征。

短时自相关函数可以描述每一段语音信号中存在的周期性特征,从而帮助识别出不同说话人之间存在的差异。

第三章_语音信号的特征分析

第三章_语音信号的特征分析
浊音时能量集中于较低频率段内,具有较低的过 零率,而清音时能量集中于较高频率段内,具有 较高的过零率。
浊音和清音情况下典型的平均过零率的直方图
直方图的分布形状与高斯分布很吻合,而且浊音时 的短时平均过零率的均值为14过零/10ms,清音时 短时过零率的均值为47过零/10ms。注意到浊音和 清音有一个交叠区域,此时很难分清是浊音还是清 音,尽管如此,平均过零率仍可以粗略的判断清音 和浊音。
35语音信号的短时自相关函数假设一段加窗语音信号非零区间为n0n1的自相关函数称为语音信号的短时自相关函数自相关函数是偶函数在l0处取得最大值且值为短时能量如果sn是周期的则rl也是周期的且周期等于sn的周期36浊音和清音的自相关函数图浊音浊音清音37半周期错误2倍周期错误由自相关函数图判断浊音的周期38为了减少这种错误可以先将语音信号进行中心削波处理再求自相关函数39中心削波处理前后的语音信号及其自相关函数40短时自相关函数的特点浊音是周期信号浊音的短时自相关函数也呈现明显的周期性自相关函数的周期就是浊音信号的周清音接近于随机噪声请音的短时自相关函数不具有周期性且随着l的增大迅速减小
0
-50
-100
-150 0
40 30 20 10
0 -10 -20
0
0.2
Fre0q.u4ency do0m.6ain
0.8
Normalized Frequency ( rad/sample)
0.2
0.4
0.6
0.8
Normalized Frequency ( rad/sample)
不同的窗选择,将决定短时语音分析结果的好坏
数据率(kB/s) (未压缩)
频率范围
8
300~3400 Hz

短时能量函数,短时过零率,短时平均幅度

短时能量函数,短时过零率,短时平均幅度

上次贴出的matlab数值分析没想到那么多人搜索,下面贴出语音分析的部分,调试都可以通过,WO.wav是用录音软件录的。

加矩形窗的短时能量函数:a=wavread('F:\WO.wav');subplot(6,1,1),plot(a);N=32;for i=2:6h=linspace(1,1, (i-1)*N);%形成一个矩形窗,长度为NEn=conv(h,a.*a);%求卷积得其短时能量函数Ensubplot(6,1,i),plot(En);if(i==2) legend('N=32');elseif(i==3) legend('N=64');elseif(i==4) legend('N=128');elseif(i==5) legend('N=256');elseif(i==6) legend('N=512');endend加hamming窗的短时能量函数:把h=linspace(1,1, (i-1)*N);改为h1=hamming((i-1)*N);加矩形窗的短时平均幅度:a=wavread('F:\WO.wav');subplot(6,1,1),plot(a);N=32;for i=2:6h=linspace(1,1,(i-1)*N);%形成一个矩形窗,长度为NEn=conv(h,abs(a));%求卷积得其短时能量函数Ensubplot(6,1,i),plot(En);if(i==2) legend('N=32');elseif(i==3) legend('N=64');elseif(i==4) legend('N=128');elseif(i==5) legend('N=256');elseif(i==6) legend('N=512');endend短时过零率:a=wavread('F:\WO.wav');n=length(a);N=320;subplot(3,1,1),plot(a);h=linspace(1,1,N);%形成一个矩形窗,长度为NEn=conv(h,a.*a);%求卷积得其短时能量函数Ensubplot(3,1,2),plot(En);for i=1:n-1if a(i)>=0b(i)= 1;elseb(i) = -1;endif a(i+1)>=0b(i+1)=1;elseb(i+1)=-1;endw(i)=abs(b(i+1)-b(i));end%求出每相邻两点符号的差值的绝对值k=1;j=0;while (k+N-1)<nZm(k)=0;for i=0:N-1;Zm(k)=Zm(k)+w(k+i);endj=j+1;k=k+160; %每次移动半个窗endfor w=1:jQ(w)=Zm(160*(w-1)+1)/640;%短时平均过零率endsubplot(3,1,3),plot(Q);对语音信号分析的最自然最直接的方法是以时间为自变量进行分析。

基于短时自相关及过零率的语音端点检测算法

基于短时自相关及过零率的语音端点检测算法

基于短时自相关及过零率的语音端点检测算法
纪振发;杨晖;李然;金银超
【期刊名称】《电子科技》
【年(卷),期】2016(029)009
【摘要】传统的基于短时能量端点检测算法,在高信噪比环境下可以比较准确地检测出语音端点,但在低信噪比环境下检测效果不理想.文中提出了基于短时自相关最大值与短时过零率之积的改进算法.利用短时自相关最大值可以有效地区分出语音段和噪音段,利用短时过零率可有效地检测出清音信号,将两参数相结合可有效地检测出低信噪比语音信号的端点.实验证明,在低信噪比环境下该改进算法相比短时能量算法减小了检测误差,可以有效地检测出语音端点.
【总页数】4页(P52-55)
【作者】纪振发;杨晖;李然;金银超
【作者单位】上海理工大学光电信息与计算机工程学院,上海200093;上海理工大学光电信息与计算机工程学院,上海200093;上海理工大学光电信息与计算机工程学院,上海200093;上海理工大学光电信息与计算机工程学院,上海200093
【正文语种】中文
【中图分类】TN912.34
【相关文献】
1.基于短时能量和短时过零率的VAD算法及其FPGA实现 [J], 李昱;林志谋;黄云鹰;卢贵主
2.基于短时能量加过零率的实时语音端点检测方法 [J], 吕卫强;黄荔
3.基于短时平均能量和短时过零率的藏语语音端点检测研究 [J], 卓嘎;边巴旺堆;姜军
4.基于短时平均幅度和短时平均过零率的藏语语音端点检测研究 [J], 武光利;戴玉刚;马宁
5.一种结合短时过零率的快速语音端点检测算法 [J], 蔡萍
因版权原因,仅展示原文概要,查看原文内容请购买。

基于短时自相关函数法的基音周期检测

基于短时自相关函数法的基音周期检测
for i=1 : vsl % 只对有话段数据处理
ixb=vseg(i).begin;
ixe=vseg(i).end;
ixd=ixe-ixb+1;% 求取一段有话段的帧数
for k=1 : ixd % 对该段有话段数据处理
u=y(:,k+ixb-1); % 取来一帧数据
ru= xcorr(u, 'coeff'); % 计算归一化自相关函数
ru = ru(wlen:end);% 取延迟量为正值的部分
[tmax,tloc]=max(ru(lmin:lmax)); % 在基音频率范围内寻找最大值
period(k+ixb-1)=lmin+tloc-1; % 给出对应最大值的延迟量
end
end
4.2.4实验结果
图4端点检测的语音信号
图5有话段的基音周期
图2图中实线代表语音起始点,虚线代表语音终点
2.2.5结果分析
基音周期是语音信号的重要参数之一,它描述了语音激励源的一个重要特征。语音的头、尾部并不能具有声带振动那样的周期性,也就是检测不到相应的基音周期。如果要进行基音周期的计算,首要的必然是检测语音端点,将有话段从整段语音中分离出来,才能开始对语音的基音周期进行计算.
Esum(i) = sum(Sp.*Sp); % 计算能量值 (能量放入Esum里)
prob = Sp/(sum(Sp));% 计算概率
H(i) = -sum(prob.*log(prob+eps)); % 求谱熵值(eps表示很小的数,避免为零)(谱熵放入H里)
end
hindex=find(H<0.1);%(find返回非零元素,hindex放入,即谱熵值小于0.1的索引)

基于短时自相关及过零率的语音端点检测算法

基于短时自相关及过零率的语音端点检测算法

基于短时自相关及过零率的语音端点检测算

语音端点检测是计算机语音处理领域的一种常见应用,它主要用于语音识别、拼写校正以及声纹分析等语音处理技术中。

基于短时自相关(Short-Time Auto/orrelation, STAC)和过零率(Zero-Crossing Rate, ZCR)的语音端点检测算法是当前检测语音端点所使用的一种常用方法。

通常情况下,该算法的实现步骤如下:首先,将语音信号拆分为多小片段,每块片段的长度一般以毫秒为单位(通常取20ms),并将片段之间用某种滤波器连接;接着计算每块片段的自相关系数,并在计算结果中检测端点;最后,计算每个片段的ZCR,用相邻两个片段之间的ZCR变化来确定语音端点,其中该变化值还可以决定端点的类型—开始点或结束点。

检测完语音端点后,即可实现对语音信号的分割及识别。

现有的STAC-ZCR算法效果较为理想,其特点是计算量小、易于实现,因此深受人们的欢迎并发展至今。

语音实验(语音短时平均能量的实现)

语音实验(语音短时平均能量的实现)

现代科技学院学院名称专业班级通信0802 学号实验成绩学生姓名同组人姓名实验日期课程名称语音信号处理实验题目实验一语音短时平均能量的实现一、实验目的1、熟悉Matble基本程序的运用。

2、充分理解取不同窗长时的语音短时平均能量的变化情况。

3、熟悉Matble编程语言在语音信号处理中的作用。

4、能够实现程序的重新编制。

二、实验要求1、实验前自己用Cool Edit音频编辑软件录制声音“我到北京去”,并把它保存为.txt文件。

2、编程实现不同矩形窗长N=50、100、400、800的短时平均能量。

3、用Matlab画出不同窗长的短时平均能量的图形。

4、写出实验报告,分析实验结果。

三、实验步骤1、用Cool Edit读入语音“我到北京去”。

设置采样率为8kHz,16位,单声道。

2、将读入的语音wav文件保存为txt文件。

3、把保存的文件speech.txt读入Matlab。

四、程序及运行结果fid=fopen('zqq.txt','rt');x=fscanf(fid,'%f');fclose(fid);s=fra(50,50,x);s2=s.^2;energy=sum(s2,2);subplot(2,2,1);plot(energy);xlabel('帧数');ylabel('短时能量Ea');legend('N=50');axis([0,1500,0,2*10^10]);s=fra(100,100,x);s2=s.^2;energy=sum(s2,2);subplot(2,2,2);plot(energy);实验室名称指导老师签名学院名称现代科技学院专业班级学号实验成绩学生姓名同组人姓名实验日期课程名称实验题目实验一xlabel('帧数');ylabel('短时能量Eb');legend('N=100');axis([0,750,0,4*10^10]);s=fra(400,400,x);s2=s.^2;energy=sum(s2,2);subplot(2,2,3);plot(energy);xlabel('帧数');ylabel('短时能量Ec');legend('N=400');axis([0,190,0,1.5*10^11]);s=fra(800,800,x);s2=s.^2;energy=sum(s2,2);subplot(2,2,4);plot(energy);xlabel('帧数');ylabel('短时能量Ed');legend('N=800');axis([0,95,0,3*10^11]);实验室名称指导老师签名学院名称 现代科技学院 专业班级学号实验成绩学生姓名 同组人姓名 实验日期课程名称实验题目实验一-20020040060080010001200051015x 109帧数短时能量 E aN=50-200-100010020030040050001234x 1010帧数短时能量 E bN=1005010015002468101214x 1010帧数短时能量 E cN=4000204060800.511.522.53x 1011帧数短时能量 E dN=800五、思考题1、通过改动不同的窗长和窗移,观看短时平均能量的变化。

语音信号处理(一)语音常见参数

语音信号处理(一)语音常见参数
1
j
只考虑Xˆ (e j )的实部:c(n) F [ln X (e ) ]
c(n)是序列x(n)对数幅度谱的傅里叶逆变换,c(n)称为“倒
频谱”或简称为“倒谱”,有时也称“对数倒频谱”。
31
实例分析
(a)
(c)
(b)
窗 长 为
15ms ,
fs=10kHz ,
因此共包
括150个语
音样点。
这段语音
变化很小,不能反映语音信号的幅度变化,信号的变化细节
就看不出来;反之,窗长太小时,滤波器的通带变宽,随时
间有急剧的变化,不能得到平滑的能量函数。
标准:一帧内含有1~7个基音周期,10kHz取样下,M
取100~200点。
8
Example
Speech x(n):
/What she said/
9
短时平均幅度分析
N n M 1
2
[
s
(
m
)
w
(
m

n

M
)]

m n M
2
[
s
(
m
)
w
(
n

m
)]


m

2
2
s
(
m
)
h
(
n

m
)

s
(n ) h(n )

m
h(n ) w 2(n )
5
典型的窗函数
矩形窗:
1
w(n )

0 n M 1
0
其它
汉宁窗:
0.5 0.5 cos(2n /(M 1))

短时自相关函数

短时自相关函数

短时自相关函数(Short-Term Autocorrelation Function)定义短时自相关函数(Short-Term Autocorrelation Function,以下简称STACF)是一种用于分析时间序列数据的统计工具。

它衡量了时间序列信号在不同时间点上的自相关性,即信号在不同时间点上与其自身之间的相似程度。

STACF可以帮助我们理解信号中的重复模式和周期性,并且在许多领域中都有广泛的应用,如金融市场预测、语音识别、图像处理等。

用途STACF主要用于以下几个方面:1.周期性分析:通过计算STACF可以确定信号中存在的周期性模式。

这对于预测未来数值、检测异常值以及理解数据背后的规律非常重要。

例如,在金融市场中,我们可以使用STACF来确定股票价格或汇率变动是否存在周期性。

2.滤波器设计:在信号处理中,滤波器常常用于去除噪声、提取特定频率成分等。

通过分析STACF,可以了解信号中不同频率成分的相互关系,从而选择合适的滤波器类型和参数。

3.时间序列预测:基于过去的观测数据,我们可以使用STACF来预测未来的数值。

通过分析STACF的衰减速度和周期性,可以选择合适的预测模型,如自回归移动平均模型(ARMA)或自回归积分滑动平均模型(ARIMA)。

4.信号识别:在语音识别、图像处理等领域,我们经常需要从复杂的信号中提取有用的信息。

通过计算STACF,可以找到信号中重要的时间点和周期性特征,从而更好地理解和识别信号。

工作方式STACF的计算方式基于自相关函数(Autocorrelation Function,简称ACF)。

ACF 衡量了一个时间序列与其在不同时间点上滞后版本之间的相关性。

在实际应用中,为了研究信号在不同时间段上的特性,我们通常将整个时间序列分成多个窗口,并对每个窗口内的数据进行ACF计算。

具体来说,假设我们有一个长度为N的时间序列x(n),其中n表示时间点。

为了计算STACF,在每个窗口内选取m个连续样本(m<N),并对这m个样本计算其自相关函数。

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

语音修正的短时自相关的实现
一.实验目的
1、熟悉语音修正自相关的意义。

2、充分理解取不同窗长时的语音的修正自相关的变化情况。

3、熟悉Matlab编程语音在语音信号处理中的作用。

4、能够实现程序的重新编制。

二.实验原理
对于语音来说,采用短时分析方法,语音短时自相关函数为
但是,在计算短时自相关时,窗选语音段为有限长度N,而求和上限为N-1-k,因此当k增加时可用于计算的数据就越来越少了,从而导致k增加时自相关函数的幅度减小。

为了解决这个问题,提出了语音修正的短时自相关。

修正的短时自相关函数,其定义如下:
三.实验要求
1、实验前自己用Cool Edit 音频编辑软件录制声音,并把它保存为.txt文件。

2、编程时间不同矩形窗长N=320,160,70的短时修正自相关。

3、用Matlab画出短时修正自相关的图形。

4、写出实验报告,分析实验结果。

四.实验步骤
1、用Cool Edit 读入浊音语音,设置采样率为8kHz,16位,单声道。

2、将读入的语音wav文件保存为txt文件。

3、读入Matlab中,并且对照取不同矩形窗长N的短时修正自相关函数,画出图形。

五.实验程序及数据
fid=fopen('voice.txt','rt')
b=fscanf(fid,'%f');
b1=b(1:320);
N=160; 此处N变为160
A=[];
for k=1:160;
sum=0;
for m=1:N;
sum=sum+b1(m)*b1(m+k-1);
end
A(k)=sum;
end
for k=1:160
A1(k)=A(k)/A(1);
end
figure(1)
subplot(3,1,1)
plot(A1);
xlabel('延时k')
ylabel('R(k)')
legend('N=320')
axis([0,180,-0.5,1]);
b2=b(1:160);
N=80; N变为80
B=[];
for k=1:80;
sum=0;
for m=1:N;
sum=sum+b2(m)*b2(m+k-1);
end
B(k)=sum;
end
for k=1:80
B1(k)=B(k)/B(1);
end
figure(1)
subplot(3,1,2)
plot(B1);
xlabel('延时k') ylabel('R(k)') legend('N=80')
axis([0,180,-0.5,1]); b3=b(1:120);
N=60; N 变为60 C=[];
for k=1:60; sum=0; for m=1:N;
sum=sum+b3(m)*b3(m+k-1); end
C(k)=sum; end
for k=1:60
C1(k)=C(k)/C(1); end
figure(1)
subplot(3,1,3) plot(C1);
xlabel('延时k') ylabel('R(k)') legend('N=70')
axis([0,180,-0.5,1]);
20
40
60
80100120
140
160180
-0.5
00.51延时k
R (k )
20
40
60
80100120
140
160180
-0.5
00.51延时k
R (k )
20
40
60
80100120
140
160
180
-0.5
00.51
延时k
R (k )。

相关文档
最新文档