Praat 使用及语音信号处理算法基础 任务一:声学参数任务二:发音与听觉感知总结 利用 Praat 完成如下任务,熟悉 Praat 的基本操作,利用 Praat

Praat 使用及语音信号处理算法基础

任务一:声学参数任务二:发音与听觉感知总结

利用 Praat 完成如下任务,熟悉 Praat 的基本操作,利用 Praat 对语音信号的基频、时长、谱参数等进行分析,对语音信号的基频、时长、谱参数等有进一步理解。

下载地址

参考手册

任务一:声学参数

加载“GuoL/40004.wav”音频,在此基础上进行以下操作并回答如下问题:

显示和查看波形waveform、语谱图spectrogram、音强intensity、基音轮廓pitch contour、共振峰 formant 和脉冲 pulses。

图1-1 波形waveform

图1-2 语谱图spectrogram

图1-3 音强intensity

图1-4 基音 pitch contour

图1-5 共振峰 formant

图1-6 脉冲 pulses

更改每个声学参数的计算/提取的设置参数,并观察比较不同设置参数对应的结果差别。

音强 Intensity analysis

视野范围

图1-7 音强设置参数

标准设置为 50 到 100 dB。如果对背景噪声的功率感兴趣,可以将其设置为 0 到 100 dB 的范围,与之前默认参数结果对比如下图所示。

图1-8 视野范围设置为0到100dB与默认参数音强对比

平均法 如果进行时间选择(而不是将光标设置在单一时间),就会出现平均化。强度等值线左侧或右侧的绿色数字(dB)将显示选择中的平均强度。从 "强度 "菜单中选择 "获取强度 "时,会得到同样的数值。可以选择强度的三种平均方法中的一种来获取平均值,或者选择选区中的中值。

例如对于以下选区:

图1-9 进行时间选择

不同方法进行平均的结果如下所示: median: 53.29dB(

μ

\mu

μ.5) mean energy: 58.81dB(

μ

\mu

μE) mean sones: 57.02dB(

μ

\mu

μS) mean dB: 56.21dB(

μ

\mu

μ)

共振峰 Formant analysis

可以使用Formant菜单来设置formant的分析参数。对于女声,最大频率一般设置为5500赫兹;对于男声,则设置为5000赫兹。

图1-10 共振峰设置参数

图1-11 最大频率为5000赫兹与默认参数共振峰对比

基音 Pitch analysis

图1-12 基音设置参数

基因范围是对音高分析最重要的设置。标准范围是75到500赫兹,即音高分析法只能找到75到500赫兹之间的数值。应该将这个范围设置为适合扬声器的数值,但一个问题是,扬声器的音高范围有很大的不同。对于许多低音调(如一般的男声)的声音,一般把下限设置为75Hz,上限设置为300Hz;对于许多高音调(如一般的女声)的声音,一般设置为100-500Hz的范围。在高音的方面,一些儿童在大喊大叫时可以达到近2000赫兹;在低的方面,咯吱咯吱的声音可以低至40赫兹;因此,对于正在研究的声音来源,可以尝试不同的设置设置。

以下是你必须提供这些设置的原因。如果音高底线是75Hz,音高分析方法需要一个40毫秒的分析窗口,也就是说,为了测量例如0.850秒时间的F0,Praat需要考虑从0.830到0.870秒的一部分声音。这40毫秒对应着3个最大的音高周期(3/75=0.040)。如果你把音高底限设置为25赫兹,分析窗口将增长到120毫秒(也是3个最大音高周期),也就是说,0.790到0.910秒之间的所有时间都将被考虑。这样就不太容易看到快速的F0变化。

设置音高范围的下限是对音高分析的一个技术要求。如果你把它设置得太低,你会错过非常快的

F

0

F_0

F0​变化,如果把它设置得太高,你会错过非常低的

F

0

F_0

F0​值。对于儿童的声音,通常可以使用200赫兹,尽管75赫兹仍然可以让你获得与低音调声音相同的时间分辨率。

图1-13 标准范围为400-500赫兹与默认参数音高对比

此外,Unit参数的设置决定了垂直音阶的单位,如下图所示,一般采用以赫兹为单位的音高范围。

图1-14 垂直音阶单位设置

语谱 Spectral analysis

图1-15 语谱图设置参数

解释上述设置参数的含义。

音强 Intensity

最小间距(赫兹):信号中的最小周期性频率。如果设置的太高,最终会得到一个音高同步的强度调制。如果设置得太低,强度轮廓可能会显得模糊不清,所以如果想要一个尖锐的轮廓,应该把它设置得与信号所允许的一样高。时间步长(s):产生的强度轮廓的时间步长。如果把它设置为零,时间步长将被计算为有效窗口长度的四分之一,即0.8/(最小间距)。

pitch 进行音高分析,对语音进行优化。

时间步长(s)(标准值:0.0):测量间隔(帧持续时间),以秒为单位。如果提供0,Praat将使用0.75/(音高底线)的时间步长,例如,如果音高底线是75Hz,则为0.01秒,即Praat每秒钟计算100个音高值。音高下限(Hz)(标准值:75Hz):低于这个频率的声音将不被接受。这个参数决定了分析窗口的长度:它将是3个最长的周期,也就是说,如果音高下限是75Hz,窗口将是3/75=0.04秒。注意,如果把时间步长设置为零,连续测量的分析窗口将明显重叠。Praat总是在一个窗口长度内计算4个音高值,也就是说,超采样程度是4。音高上限(Hz)(标准值:600Hz):超过这个频率的声音将被忽略。静音阈值(标准值:0.03):不包含振幅超过这个阈值(相对于全局最大振幅)的帧,可能是无声的。发声阈值(标准值:0.45):相对于最大可能的自相关而言,未发声的声音强度。要增加未发声的绝对数量,就要增加这个值。倍频成本(标准值:0.01/倍频):相对于最大可能的自相关而言,对高频候选人的青睐程度。这是必要的,因为即使(或:特别是)在一个完全周期性的信号的情况下,F0的所有暗调都是与F0本身同样强大的候选者。为了更有力地支持对高频候选人的招募,增加这个值。倍频程跳跃成本(标准值:0.35 相对于最大可能的自相关而言,不利于音高变化的程度。为了减少大频率跳跃的数量,增加这个值。与文章中描述的不同,这个值将对时间步长进行修正:乘以0.01秒/时间步长,就可以得到文章中公式中使用的值。有声/无声的成本(标准值:0.14 相对于最大可能的自相关而言,不利于有声/无声转换的程度。要减少有声/无声转换的数量,就要增加这个值。与文章中描述的不同,这个值将被修正为时间步长:乘以0.01秒/时间步长,就可以得到文章中公式中使用的值。

语谱 Spectral analysis

查看范围(Hz) 需要显示的频率范围。标准是下限为0 Hz,上限为5000 Hz。如果这个最大频率高于声音的奈奎斯特频率(即采样频率的一半),频谱图中的一些值将是零,而较高的频率将被画成白色。如果以44100Hz的频率录制声音,并将视图范围设置为0Hz至25000Hz,就可以看到这种情况。窗口长度 分析窗口的持续时间。标准状态为0.005秒,Praat在每一帧中使用位于该帧中心前0.0025秒和后0.0025秒之间的声音部分(对于高斯窗口,Praat实际上使用比这多一点)。窗口的长度决定了频谱分析的带宽,也就是纯正弦波的频谱图中水平线的宽度(见下文)。对于高斯窗,-3dB带宽是2sqrt(6ln(2))/(π*窗长),或1.2982804/窗长。要得到一个 "宽带 "频谱图(带宽260赫兹),保持标准窗长为5毫秒;要得到一个 "窄带 "频谱图(带宽43赫兹),将其设置为30毫秒(0.03秒)。其他窗口形状给出的数值略有不同。动态范围(dB) 所有低于最大动态范围以上的值(也许是在动态压缩之后,见高级频谱设置…)都将以白色绘制。介于两者之间的数值有适当的灰色阴影。因此,如果频谱图中的最高峰高度为30dB/Hz,而动态范围为50dB(这是标准值),那么低于-20dB/Hz的值将以白色绘制,而介于-20dB/Hz和30dB/Hz之间的值将以各种灰色绘制。

解释 Praat 提取音强 intensity、音高 pitch 和语谱图 spectrogram 的原理与算法。

音强 intensity 返回值 空气中的强度,以相对于听觉阈值的dB表示。 算法 声音中的值首先被平方,然后与高斯分析窗口(Kaiser-20;侧音低于-190 dB)进行卷积。这个分析窗口的有效时间是3.2 / (minimum_pitch),这将保证一个周期性信号被分析为具有不大于0.00001dB的音高同步强度波纹。空气中声音的强度定义为

10

log

⁡

10

{

1

/

(

T

P

0

2

)

∫

d

t

x

2

(

t

)

}

10 \log _{10}\left\{1 /\left(T P_{0}^{2}\right) \int d t x^{2}(t)\right\}

10log10​{1/(TP02​)∫dtx2(t)} 其中

x

(

t

)

x(t)

x(t)是以

P

a

\text Pa

Pa(帕斯卡)为单位的声压,

T

T

T是声音的持续时间,

P

0

=

2

⋅

1

0

−

5

P

a

P_0=2\cdot 10^{-5} \text Pa

P0​=2⋅10−5Pa是听觉阈值压力。

pitch 该算法在准确的自相关方法的基础上进行声学周期性检测,如Boersma(1993)所述。这种方法比基于倒频谱的方法或原始的自相关方法更准确、更抗噪、更稳健。其他方法存在的原因,是没有认识到这样一个事实:如果想在窗口信号的基础上估计一个信号的短期自相关函数,应该把窗口信号的自相关函数除以窗口的自相关函数。

r

x

(

τ

)

≈

r

x

w

(

τ

)

/

r

w

(

τ

)

r_{x}(\tau) \approx r_{x w}(\tau) / r_{w}(\tau)

rx​(τ)≈rxw​(τ)/rw​(τ) 语谱图 spectrogram 声音傅里叶变换在Praat中的时间域被忽略了。相反,它的时域被认为是从t=0到t=T,其中t=0被认为是与第一个采样点对齐,T是采样的总时间,即

N

Δ

t

NΔt

NΔt,其中

N

N

N是采样点的数量和

Δ

e

t

Δet

Δet是采样周期。因此,最后一个采样点位于

t

=

T

−

Δ

t

t=T-Δt

t=T−Δt。

对于一个声音

x

(

t

)

x(t)

x(t),定义在域

(

0

,

T

)

(0,T)

(0,T)中的所有时间

t

t

t,对于任何频率f的复数频谱

X

(

f

)

X(f)

X(f)是

x

(

t

)

x(t)

x(t)的正向傅里叶变换,有一个负的指数。

X

(

f

)

=

∫

0

T

X

(

t

)

e

−

2

π

i

f

t

d

t

X(f)=\int_{0}^{T} X(t) e^{-2 \pi i f t} d t

X(f)=∫0T​X(t)e−2πiftdt

如果声音的单位是帕斯卡

Pa

\text{Pa}

Pa,那么频谱的单位是

Pa-s

\text{Pa-s}

Pa-s,或

Pa/Hz

\text{Pa/Hz}

Pa/Hz。由于频谱对象只能包含有限数量的频率样本,它只对

Δ

f

=

1

/

T

Δf=1/T

Δf=1/T的倍数的频率进行计算。这些频率的数量是由声音的样本数

N

N

N决定的。

如果

N

N

N是奇数,将有

N

N

N个频率样本。例如,如果声音有

20457

20457

20457个样本,频谱将在频率

−

10228

Δ

f

-10228Δf

−10228Δf,

−

10227

Δ

f

-10227Δf

−10227Δf, …,

−

Δ

f

-Δf

−Δf,

0

0

0,

+

Δ

f

+Δf

+Δf, …,

+

10227

Δ

f

+10227Δf

+10227Δf,

+

10228

Δ

f

+10228Δf

+10228Δf计算出来。如果我们假设一个频率样本代表一个宽度为

Δ

f

Δf

Δf的频率,我们可以看到频率样本跨越了相邻的频率范围,例如第一个样本从

−

10228.5

Δ

f

-10228.5Δf

−10228.5Δf到

−

10227.5

Δ

f

-10227.5Δf

−10227.5Δf,第二个从

−

10227.5

Δ

f

-10227.5Δf

−10227.5Δf到

−

10226.5

Δ

f

-10226.5Δf

−10226.5Δf。这些频率样本一起跨越了频谱的频域,即从

−

F

-F

−F到

+

F

+F

+F,其中

F

=

10228.5

Δ

f

F=10228.5Δf

F=10228.5Δf。可以看到,这个频率等于原始声音的采样频率的一半。

F

=

10228.5

Δ

f

=

10228.5

/

T

=

10228.5

/

(

20457

Δ

t

)

=

0.5

/

Δ

t

F = 10228.5Δf = 10228.5/T = 10228.5/(20457Δt) = 0.5/Δt

F=10228.5Δf=10228.5/T=10228.5/(20457Δt)=0.5/Δt。这就是所谓的奈奎斯特频率。

如果

N

N

N是偶数,将有

N

+

1

N+1

N+1个频率样本。例如,如果声音有

32768

32768

32768个样本,频谱将在频率

−

16384

Δ

f

-16384Δf

−16384Δf,

−

16383

Δ

f

-16383Δf

−16383Δf, …,

−

Δ

f

-Δf

−Δf,

0

0

0,

+

Δ

f

+Δf

+Δf, …,

+

16383

Δ

f

+16383Δf

+16383Δf,

+

16384

Δ

f

+16384Δf

+16384Δf计算出来。同样,频率样本跨越了相邻的频率范围,但第一个和最后一个样本只有其他样本的一半宽,即第一个样本从

−

16384

Δ

f

-16384Δf

−16384Δf到

−

16383.5

Δ

f

-16383.5Δf

−16383.5Δf,第二个从

−

16383.5

Δ

f

-16383.5Δf

−16383.5Δf到

−

16382.5

Δ

f

-16382.5Δf

−16382.5Δf,最后一个从

+

16383.5

Δ

f

+16383.5Δf

+16383.5Δf到

+

16384

Δ

f

+16384Δf

+16384Δf。这些频率样本再次跨越了频谱的频域,即从

−

F

-F

−F到

+

F

+F

+F,其中

F

=

16384

Δ

f

=

0.5

/

Δ

t

F=16384Δf=0.5/Δt

F=16384Δf=0.5/Δt,是奈奎斯特频率。

在频谱对象中,Praat分别存储复数频谱的实部和虚部。实部等于余弦变换。

re

X

(

f

)

=

∫

0

T

x

(

t

)

cos

⁡

(

2

π

f

t

)

d

t

\text {re} X(f)=\int_{0}^{T} x(t) \cos (2 \pi f t) d t

reX(f)=∫0T​x(t)cos(2πft)dt

虚数部分等于正弦变换的反向。

im

⁡

X

(

f

)

=

−

∫

0

T

x

(

t

)

sin

⁡

(

2

π

f

t

)

d

t

\operatorname{im} X(f)=-\int_{0}^{T} x(t) \sin (2 \pi f t) d t

imX(f)=−∫0T​x(t)sin(2πft)dt

复数频谱可以从实部和虚部重建,如下所示。

X

(

f

)

=

re

⁡

X

(

f

)

+

i

im

⁡

X

(

f

)

X(f)=\operatorname{re} X(f)+i \operatorname{im} X(f)

X(f)=reX(f)+iimX(f)

由于余弦是t的对称函数,正弦是t的反对称函数,所以负的频率的复数光谱是相应的正的频率的复数光谱的复共轭。

X

(

−

f

)

=

re

X

(

−

f

)

+

i

i

m

X

(

−

f

)

=

re

X

(

f

)

−

i

im

⁡

X

(

f

)

=

X

∗

(

f

)

X(-f)=\text { re } X(-f)+i \mathrm{im} X(-f)=\text { re } X(f)-i \operatorname{im} X(f)=X^{*}(f)

X(−f)= re X(−f)+iimX(−f)= re X(f)−iimX(f)=X∗(f) 这些值被计算为Spectrum的实部和虚部的平方之和。

共振峰 formant 和频谱图 spectrogram 之间的关系是什么?如何用 Praat 获得频谱切片spectral slice?

语谱图spectrogram

共振峰 formant

共振峰是被声道特别放大的频带,是频谱中能量相对集中的一些区域,谐波经过声道调制后的会形成具有共振峰的语谱图

Praat的精确操作,同样取决于频谱图设置中的窗口形状。假设选择的是50ms长。Praat会提取整个选区,然后把这个50ms长的信号乘以窗口形状,然后计算出一个频谱,把它放到对象窗口中,然后打开一个编辑窗口。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2xSVq0KR-1633871339959)( #pic_center =500x)]

什么是脉冲 pulses?哪些声学参数与脉冲有关?

在点过程中的每一个点都会产生一个脉冲。这个脉冲在产生的声音的奈奎斯特频率上被过滤,将其转换为一个采样的sinc函数。

采样频率(Hz):产生的声音对象的采样频率,例如44100赫兹。适应系数:如果脉冲时间不在前一个脉冲的适应时间内,脉冲高度将被乘以该系数;如果脉冲时间不在前一个脉冲的适应时间内,脉冲高度将再次被乘以该系数。这个系数是为了防止脉冲序列在静默后突然启动,如果想在静默后突然启动,那么这个系数就是1.0。适应时间 (s):被认为是静默的最小时间,例如0.05秒。内插深度:sinc函数在峰值左边和右边的范围,例如2000个样本。 例如:如果适应因子是0.6,适应时间是0.02秒,那么在至少20毫秒的静默后,前两个脉冲的高度将分别乘以0.36和0.6。

任务二:发音与听觉感知

从文件夹“GuoL”中加载所提供的语音波形,观察并解释语音的谐波 harmonics。

目的 进行一个短期的HNR分析。

算法 ac该算法在精确自相关方法的基础上进行声学周期性检测,如Boersma(1993)所述。 cc该算法在前向交叉相关分析的基础上进行声学周期性检测。

设置 时间步长取标准值0.01秒,测量间隔(帧长)以秒为单位。最小间距决定了分析窗口的长度,取标准值75赫兹,沉默阈值指不包含振幅超过此阈值(相对于全局最大振幅)的帧,被视为无声,取标准值0.1。每个窗口的周期数取标准值4.5。 4.5对语音来说是最好的。保证可靠地检测到高达37dB的HNR值;每个窗口的6个周期将这一数字提高到60dB以上,但算法对信号的动态变化更加敏感。 使用方法

从文件夹“GuoL”中加载所提供的语音波形,比较 EGG 信号和语音信号的波形 waveforms 差别。

左图为Sound 40004 EGG 信号,右图为Sound 40004语音信号 左图为Sound 40003 EGG 信号,右图为Sound 40003语音信号

EGG的waveforms较复杂,幅度基本一致,音节之间无明显区别;EGG语谱图没有明显的共振峰。这是因为语音的口唇辐射的影响比较小, 容易作理论估计, 而声门波的频谱的关系比较复杂, 影响也较大。

绘制文件夹“Emotion”中“exp-0.wav”(中性)、“exp-1.wav”(愤怒)、“exp-4.wav”(悲伤)的基音轮廓 pitch contour(参考第二周讲义),比较三者之间的差异。思考:除了 pitch contour 外,三个语音还有什么其他声学特征的差别。

中性的基音轮廓较稳定,且居中;愤怒的基音轮廓音调很高,分布很离散;悲伤的基音轮廓音调很低。所以由声带振动的频率不同,导致的基音轮廓不同,通知音高能够蕴含情绪的内容。

除了 pitch contour 外,三个语音其他明显声学特征的差别: 由图可知,愤怒的音强最高,悲伤的音强最低,这与我们主观感受也是一致的。

绘制文件夹“Book”中“book_declaration.wav”、“book_question.wav”的基音轮廓 pitch contour(参考第二周讲义),比较二者之间的差异。

“book_declaration.wav”整体基音是一个下沉的趋势,而“book_question.wav”是一个反问的语气,基音呈现一个上升的趋势。

绘制文件夹“Emotion”中“exp-0.wav”的宽带语谱图和窄带语谱图(参考第二周讲义),比较二者之间的差异。

window length=0.002s

window length=0.01s

加载文件夹“Mask”中“abc.wav”,显示该音频的波形 waveform 和频谱图 spectrogram,听不同的部分,体会掩蔽效应 mask 的效果,说明该段音频不同时间段分别包括哪些频率的声音,并说明在不同时间段你听到的声音情况,解释掩蔽效应。

Formant

总结

基本入门Praat的使用方法,具体的原理还需要再看,实验课上学了如何改变音高和时间来调整音频