# 绪论

# 语音信号处理主要分支

  • 语音合成
  • 语音识别
    • 主要包括:特征提取,模型训练和模式匹配
  • 语音编码
    • 分为:波形编码、参量编码、混合编码
    • 例题:立体双声道采样频率为 44.1KHz,量化位数为 8 位,一分钟这样的音乐所需要的存储空间的计算公式:
      • 44.1x1000 (44.1K) x8 (8 位量化位数) x2 (双声道) x60 (一分钟)/8 (一字节 8 位) 字节
  • 说话人识别(声纹识别)
    • 说话人辨认,说话人确认

# 语音信号处理的发展

  • 说话人识别和语种识别
  • 语音信号中的情感信息的研究
  • 基于语音的信息检索
  • 基于语音识别的广播新闻自动文摘技术的研究

# 语音信号的处理过程

语音信号处理过程

# 语音信号的声学基础及产生模型

# 语音的发声机理

语音 = 声音 + 语言

语音中各个音的排列由一些规则所控制,对这些规则及含义的研究称为语言学 (描述规则结构)

语音中各个音的物理特性和分类的研究称为语音学。它考虑的是语音产生、语音感知等各个特征和分类 (描述语音的物理特征)

可以把人类的发音器官分为肺、喉和声道三个部分

  • 肺是语音产生的能源所在
  • 喉部的声带是对发音影响很大的器官,声带振动会产生声音 (如浊音),声带不振动也可发出声音 (如清音),喉在发声中的作用主要是控制声带
    • 浊音的基音周期:声带的开启和闭合一次的时间就是声带的振动周期也就是基音周期 Tp
    • 浊音的基音频率:声带张开和闭合一次时间的倒数
    • 浊音的基音频率和共振峰是语音信号最重要的两个特性
  • 声道:指喉部到嘴唇的所有器官
    • 声道的不同形状,对应不同的谐振频率
  • 鼻腔:是一个谐振腔,由于形状固定,因而鼻腔的共振峰频率是确定的

共振:当驱动物体振动的力的频率与物体的固有频率相等时,物体振动的振幅将会达到最大值。语音中也有共振现象,元音的音色和区别特征主要取决于声道的共振峰特性

共振峰:气流流过声道时犹如通过了一个具有某种谐振特性的腔体,放大某些频率,在频谱上形成了峰值,称为共振峰

前三个共振峰最重要

共振峰是声道的重要声学特性,语音的频率特性主要由共振峰决定,共振峰特性可以从语音信号频谱分析得到

共振峰计算

假设声道界面时均匀的,从喉到唇的距离 L=17cm,音速 c=340m/s,则共振峰频率将发生在:

Fn=cλn=(2n1)c4LF_n=\dfrac{c}{\lambda_n}=\dfrac{(2n-1)c}{4L},(λn\lambda_n 为第 n 个共振峰的波长),计算前三个共振峰

F1=cλ1=c4L=3404×17×102=500HzF2=cλ2=3c4L=1500HzF3=cλ3=5c4L=2500HzF_1=\dfrac{c}{\lambda_1}=\dfrac{c}{4L}=\dfrac{340}{4\times17\times10^{-2}}=500Hz\\F_2=\dfrac{c}{\lambda_2}=\dfrac{3c}{4L}=1500Hz\\F_3=\dfrac{c}{\lambda_3}=\dfrac{5c}{4L}=2500Hz

语音的形成过程是空气由肺排入喉,经声带进入声道,最后由嘴唇辐射出的过程

  • 声门脉冲 <-> 激励信号频谱
  • 声道 <-> 声道滤波器传递函数
  • 语音信号频谱 <-> 语音信号频谱

语音的语谱图:

  • 语音的时域分析和频域分析均有局限性
    • 时域分析对语音信号频率特性没有直观了解
    • 频域特征中没有语音信号随时间的变化关系
  • 语音信号随时间变化缓慢,因而在一段短时间内,可以认为其频谱是固定不变的,这种频谱又称为短时谱
  • 短时谱只能反映语音信号的静态频率特征,不能反映语音信号的动态频率特性
  • 把和时序相关的傅里叶分析的显示图形称为语谱图
    • 语谱图是一种二维频谱,它表示语音频谱随时间变化的图形,纵轴为频率,横轴为时间
      • 宽带语谱图、窄带语谱图

# 语音信号的特点

语音信号从声学、语言学两方面理解,从客观指标、主观指标两个方面理解

  • 声压和声压级
    • 空气中参考声压 (PrefP_{ref}) 一般取20×106Pa20\times10^{-6}Pa
    • 声压:指大气压受到声波扰动后产生的变化,是空间位置和时间的函数。介质中有声场时的压强 p 与没有声场时的压强 p0 之差 (大气压强余压) 即为声压。通常声压指的是有效声压 (pe),即一定时间间隔内将瞬时声压对时间求平均根所得
    • 声压级:声音的有效压强与参考声压之比,取以 10 为底的对数,再乘以 20,即为声压级,用 Lp 表示,单位 dB

pe=1Nn=1Nx2(n),Lp=20lgpeprefp_e=\sqrt{\dfrac{1}{N}\sum\limits_{n=1}^{N}x^2(n)},L_p=20lg\dfrac{p_e}{p_{ref}}

  • 声强与声强级

    • 声强:声音在单位时间内作用在与其传递方向垂直的单位面积上的能量。声强用 I 表示,单位:瓦特 / 每平方米
    • 声强级:用声强的物理学单位表示声音强弱很不方便,当人耳听到两个强度不同的声音,感觉的大小大致上与两个声强比值的对数成比例。用对数尺度来表示声音强度的等级:L_I=10lg\dfrac{I}
    • 参考声强I0=1×1012W/m2I_0=1\times10^{-12}W/m^2
  • 音高

    • 音高:主观感觉声音的高低,决定于声波频率,频率高则音调高,频率低则音调低,音高单位是 Mel
    • 当声强级为 40dB 时,设定的音高为 1000Mel,即音高与频率近似满足:

TMel=1000lg2lg(1+fHz1000)T_{Mel}=\dfrac{1000}{lg2}lg(1+\dfrac{f_{Hz}}{1000})

  • 响度(音强)

    • 波形响度是人耳判别声音由轻到响的强度等级的概念,它不仅取决于声音的强度 (如声压级),还与其频率及波形有关
    • 响度单位是 Sone,1Sone 的定义声压级为 40dB,频率为 1kHz,且来自听者正前方的平面波形的强度。
    • 影响主要因素:与声压有关,还与频率有关
  • 响度级

    • 按人耳对声音的感觉特性,依据声压和频率定出人对声音的主观音响感觉量,称为响度级,单位为方 Phon,定义 1kHz 纯音声压级分贝值为响度级的数值
    • 响度级的概念建立在两个声音的主观比较上。以频率为 1kHz 的纯音作为基准音,其他频率的声音听起来与基准音一样响,则该声音的响度级就等于基准音 (1kHz) 的声压级,即响度级与声压级为一个概念
    • 例:某噪声的频率为 100 赫兹,强度为 50 分贝,其响度与频率为 1kHz ,强度为 20 分贝的声音响度相同,则该噪声的响度级为 20 方
  • 等响曲线:利用与基准声音比较的方法,可以得到人耳听觉频率范围内一系列强度相等的声压级与频率的关系曲线

  • 人耳敏感频率:对于高频噪声 1000~5000 赫兹的声音敏感

语音的物理属性:

  • 音色 (音质):是一种声音区别于另一种声音的基本特征,声音的音色主要由泛音确定
  • 音长:声音的长短,取决于发音时间的长短
  • 音调:声音的高低,决定于声波的频率的高低,声波频率高则音调高,低则音调低
  • 音强 (响度):表示人耳对声音的强弱感觉

任何声音都可以用声强的三个物理量描述:幅度、频率、相位

声波具有三要素:

  • 音强、音调、音色

# 汉语言学基础

语音的组成:音素(语音发音的最小单位)-> 音节(说话时一次发出,具有响亮的中心,并且被明显感受到的语音片段)-> 语音

  • 音节 = 辅音 + 元音

  • 音素的中国发音分类标准:元音、辅音

  • 音速的国际发音分类标准:浊音、清音、爆破音

  • 按音节结构分类:声母、韵母

# 语音的听觉机理

人的听觉器官:外耳、中耳、内耳

外耳放大声音、中耳传递声音、内耳转换声音

外耳 + 中耳相当于一个介于 500Hz 到 6kHz 之间的平滑的带通滤波器

掩蔽效应相关概念

人耳听觉频率范围:20Hz-30Hz

由于人类语音的频率范围主要集中在 300Hz~3400Hz,数字模型中的信号取样率一般为 8KHz

语音感知强度范围:0~130dB 声压级

听力阈值 (听阈):人耳刚刚可以听到的最低声压级

痛阈:加大声音强度,使听起来令耳朵感到疼痛的阈值

人耳的掩蔽效应:在一个较强的声音附近,相对较弱的声音将不被人耳觉察,即被强音所掩蔽。较强的音称为掩蔽者,弱音称为被掩蔽者

掩蔽阈值:被掩蔽掉的不可闻信号的最大声压级称为掩蔽门限或掩蔽阈值,在这个掩蔽阈值以下的声音将被掩蔽掉

掩蔽量:同时出现 A 声与 B 声,若原来 A 声的听力阈值为 50dB,由于另外一个频率不同的 B 声的存在,使得 A 的听力阈值提高到 68dB,则 B 声称为掩蔽声,A 声称为被掩蔽声。掩蔽量为 68-50=18dB

同时掩蔽:掩蔽声和被掩蔽声同时存在的情况

掩蔽声越强、掩蔽声和被掩蔽声频率越接近,则掩蔽效果越明显,当频率相同时,掩蔽效果最大

异时掩蔽:异时掩蔽指掩蔽声和被掩蔽声不同时存在,分前掩蔽和后掩蔽

  • 前掩蔽:被掩蔽声 A 出现后,相隔 0~20ms 之内出现被掩蔽声 B,对 A 起掩蔽作用,因为 A 声尚未被人所反应接收而强大的 B 声已经来临
  • 后掩蔽:掩蔽声 B 即使消失后,其掩蔽作用仍将持续一段时间,由于人耳的存储效应所致

临界带宽:噪声的存在会对纯音产生掩蔽。为了描述这种掩蔽的效果引入了临界带宽,一个纯音可以被以纯音为中心频率、并且具有一定频率宽度的连续噪声所掩蔽

某一频率 f 处的临界带宽:

用中心频率 f,带宽为Δf\Delta f 的白噪声掩蔽频率为 f 的纯音。先将白噪声强度调节到使被掩蔽纯音恰好听不见为止。然后将Δf\Delta f 由大到小逐渐变化,而保持单位频率噪声强度 (即噪声谱密度) 不变,起初这个纯音一直是听不见的,但当Δf\Delta f 小到某个临界值时,这个纯音就突然可以听见了。如果再进一步减小Δf\Delta f,被掩蔽音就会越来越清晰。这里刚刚开始就能听到被掩蔽声的Δf\Delta f 频宽,叫做频率 f 处的临界带宽

一个临界带宽的单位用巴克表示

# 语音信号的线性模型

  • 建立数学模型:寻求一种可以表达一定物理状态下量与量之间的数学关系表示
  • 建模原则:不仅具有最大的精确度,而且简单
  • 模型选择:可以是非线性,也可以是线性
  • 语音信号特点:语音信号是非平稳随机过程,特性随时间变化,但变化比较缓慢。短时间内平稳随机过程,可采用线行时不变模型
  • 语音生成系统组成:有三部分作用施加在语音的声波上,分别为激励模型、声道模型和辐射模型

语音信号的传递函数由励模型 (U (z))、声道模型 (V (z)) 和辐射模型 (R (z)) 级联而成,即 H (z)=U (z) V (z) R (z)

  • 激励模型

浊音激励 —— 声门脉冲模型 G (z)(斜三角脉冲串):

U(z)=AV1z1×1(1g1z1)(1g2z1)U(z)=\dfrac{A_V}{1-z^{-1}}\times\dfrac{1}{(1-g_1z^{-1})(1-g_2z^{-1})}

清音激励 —— 随机噪声发生器

  • 声道模型
    • 声管模型:把声道视为多个等长、不同截面积的管子串联而成的系统
    • 共振峰模型:把声道视为一个谐振腔,共振峰就是这个腔体的谐振频率
      • 对于元音用前三个共振峰,对于辅音或鼻音,用前五个共振峰

语音信号是一个非平稳信号,激励和声道的谐振特性随时间变化,但在 10-30ms 内语音信号是平稳的,即激励和声道的特性几乎不变,因此,认为在此段时间内系统是线性的

  • 辐射模型

    • 口唇端辐射在高频段比较显著,而在低频端时影响较小,辐射模型具有高通滤波的特性
    • 常用一个 1 阶数字高通滤波器模拟辐射模型:R(z)=R0(1z1),R0<1,R01R(z)=R_0(1-z^{-1}),R_0<1,R_0\approx1
  • 预加重技术

    • 语音信号模型中,如果不考虑冲激串模型,则斜三角波模型是 2 阶低通滤波器,而辐射模型为 1 阶高通,所以实际信号分析常采用预加重技术,即在信号取样之后,插入一个 1 阶高通滤波器。这样,只剩下声道部分,便于声道参数分析
    • 预加重和去加重技术可以使信号在传输中高频损耗的影响降低。
    • 信号频率的高低主要是由信号电平变化的速度决定的,所以信号的高频分量主要出现在信号的上升沿和下降沿处,预加重技术就是增强信号上升沿和下降沿处的幅度
    • 语音分析和传输时,采用预加重技术,便于声道参数分析
    • 语音合成时,采用去加重技术,恢复原来的语音

完整语音信号数字模型:

  • 这种模型是短时模型,具有以下特点:
    • 短时模型:适用于短时分析。声道参数 0~30ms 内近似不变,激励参数 5ms 左右近似不变,H (z) 是一个参数随时间缓慢变化的模型,可假定 10-30ms 内固定不变
    • 全极点:零点可由多个极点逼近
    • 激励源和声道模型相互独立:适用于大多数数字语音处理
  • 此模型并非最完备模型,因为它对一些音是不适用,例如浊音中的摩擦音
  • 模型对语音产生的模型是否取得成功,主要考察它所产生的语音信号听上去是否合乎预期的结果,对于它是否能准确地描述发音器官产生语音的物理过程并不重要
  • 语音分析和语音合成都是基于此模型
  • 模型基本思想将激励和系统相分离,使语音信号分别描述

# 语音的短时时域分析

# 短时分析原则

  • 语音信号分析时语音信号处理的前提和基础,只有分析出可表示语音信号特征的参数,才有可能利用这些参数进行高效的语音通信、语音合成和语音识别等处理。贯穿于语音分析全过程的是 "短时分析技术"
  • 语音信号从整体来看其特征及表征其本质特征的参数均是随时间而变化的,所以它是一个非平衡态的过程
  • 但是在一个短时间范围内,一般认为在 10ms-30ms 内,其特性基本保持不变即相对稳定,因而可以将其看作是一个准稳态的过程,即语音信号具有短时稳定性

# 时域分析方法

  • 定义:时域分析致力于提取和分析语音信号的时域参数。进行语音分析时,最先接触、最直观的是其时域波形。语音信号本身就是时域信号,因而时域分析是最早使用,也是应用最广泛的一种分析方法
  • 用途:时域分析通常用于最基本的参数分析及应用,如语音的分割、预处理、大分类等
    • 短时能量:区分浊、清音
    • 短时自相关性:估计信号频率
  • 特点:①表示语音信号比较直观、物理意义明确。②实现起来比较简单、运算量少。③可以得到语音的一些重要的参数。④只使用示波器等通用设备,使用较为简单等

# 数字化处理和预处理

  • 模拟信号 (连续时间信号):自变量连续,信号幅度连续取值
  • 离散时间信号:对模拟信号采样,时间离散,幅度上没有量化
  • 数字信号:时间离散,幅度量化为有限字长的二进制数

将连续的模拟信号转化为离散的数字信号有两个步骤:采样和量化

单位冲激函数、单位冲激序列

冲激函数抽样特性:一个函数与单位冲激序列相乘,可以得到 f (t) 的抽样信号

# 采样定理

采样定理又称奈奎斯特定理:当采样频率 fs.max 大于信号中最高频率的 2 倍时 (fs.max>2fmax),采样后的数字信号完整地保留了原始信号中的信息

数字信号:对离散信号进行幅度量化后得到的信号

# 量化

  • 将每个采样得到的值在幅度上再进行离散化处理,变成整形数值

  • 量化过程:通过采样时测得的模拟电压值,要进行分级量化,按整个电压变化的最大幅度划分成几个区段,把落在某区段上的采样到的样本值归成一类,并给出相应的量化值。

  • 量化方式:8 位量化,16 位量化、32 位量化

# 预加重

  • 预加重目的:提升语音信号高频部分,使信号频谱变得平坦,保持低频到高频的整个频带能用同样的信噪比计算频谱,便于频谱分析或声道参数分析
  • 预加重实现方式:可通过一节 FIR 高通数字滤波器来实现:H(z)=1-\alpha z^
  • 预加重结果:设 u 时刻的语音采样值为 x (n),经过预加重处理后的结果为y(n)=x(n)αx(n1)y(n)=x(n)-\alpha x(n-1)

相对于预加重前,高频成分得到了加强

# 加窗分帧

  • 语音信号时非平稳信号,但是可以认为 10-30ms 的时间范围内,语音信号是平稳信号
  • 短时分析是最基本手段是对语音信号加窗
  • 加窗:对于一段语音的离散时间 x (m),用一个固定长度的窗口套上去,只看窗口内的信号,对这些信号做计算,用以求出这窗口内的语音特征
  • 语音帧:经加窗而被套得一段语音即成为语音帧

习题:

1、每帧 20ms,采样频率 8000Hz,每帧多少个采样点?

t=1/f=1/8000,n=20/100/8000=1600

2、每帧 256 个采样点,采样频率 8000Hz,每帧时间多长?

t=1/f=1/8000,t 总 = 255*t=255/8000s

# 分帧

交叠分帧的目的:为了使帧与帧之间平滑过渡,保证其连续性

  • 帧长度
  • 帧间隔 (帧移)
    • 如果帧间隔等于帧长度,那么帧之间没有重叠
    • 如果帧间隔小于帧长度,那么帧之间有重叠
    • 如果帧间隔大于帧长度,那么帧之间没有重叠,且帧之间由空隙,无法完全覆盖原始信号,导致分帧后出现信息确实

# 加窗分帧方法

方法:用可移动的有限长度进行加权的方法实现,即用一定的窗函数 w (n) 乘 x (n),从而形成加窗语音信号

xn(m)=x(m)w(nm),xl[n]=w[n]x[nlL],0nN1x_n(m)=x(m)w(n-m),x_l[n]=w[n]x[n_lL],0\le n\le N-1

其中,w [n] 为窗函数;N 是窗长,N 是窗长,l 是帧索引,L 是帧移

常见窗函数:矩形窗、汉明窗、哈宁窗

汉明窗能更好地保留原始语音信号的频率特性,使用最为广泛

# 语音的短时时域分析方法

  • 短时能量

En=m=nn+N1[x(m)w(nm)]2=m=nn+N1[xw(m)]2E_n=\sum\limits_{m=n}^{n+N-1}[x(m)w(n-m)]^2=\sum\limits_{m=n}^{n+N-1}[x_w(m)]^2

其中 En 表示信号在第 n 个点开始加窗时的短时能量

短时能量可用于清浊判断、有声段和无声段进行判定、对声母和韵母分界,以及连字的分界等。经常是识别系统中特征的一维

缺点:对高幅信号敏感;清、浊音幅度差距明显

  • 短时平均幅度

Mn=m=nn+N1x(m)w(nm)=m=nn+N1xw(m)M_n=\sum\limits_{m=n}^{n+N-1}\vert x(m)\vert w(n-m)=\sum\limits_{m=n}^{n+N-1}\vert x_w(m)\vert

短时能量平方运算会放大高低信号之间的差距,因此,用短时平均幅度来代替短时能量

短时平均幅度能较好地反映清音范围内的幅度变化

短时平均幅度能反映幅度变化的动态范围比短时平均能量好

短时平均幅度反映清音和浊音之间的电平差次于短时平均能量

  • 短时平均过零率:单位时间内过零次数

Zn=12m=nn+N1sgn[x(m)]w(nm)sgn[x(m1)w(n(m1))]=12m=nn+N1sgn[xw(m)]sgn[xw(m1)]Z_n=\frac{1}{2}\sum\limits_{m=n}^{n+N-1}\vert sgn[x(m)]w(n-m)-sgn[x(m-1)w(n-(m-1))]\vert=\frac{1}{2}\sum\limits_{m=n}^{n+N-1}\vert sgn[x_w(m)]-sgn[x_w(m-1)]\vert

sgn [x (n)] 为符号函数

浊音平均过零率低,集中在低频端

清音平均过零率高,集中在高频端

短时平均过零率用于区分清音、浊音

短时平均过零率用于从背景噪声中找出语音信号

1、背景噪声较小时,可用短时平均能量识别

2、背景噪声较大时,用短时平均过零率比较有效

端点检测:在一段包含语音的信号中,准确地确定语音信号的起始点与终止点,将语音段与非语音段区分开

先利用能量,将浊音部分区分出来,在利用过零率,将清音部分提取出来,就完成了端点检测

  • 门限过零率

短时平均过零率容易受到噪声干扰,因而提出门限过零率,增加门限 T 限制纵轴幅度;

双门限法:通过高门限与低门限区分浊音与清音

  • 短时自相关函数

对于确定性离散信号 x (m)

Rn(k)=m=nn+Nk1x(m)w(nm)x(m+k)w[n(m+k)]=m=nn+Nk1xw(m)xw(m+k)R_n(k)=\sum\limits_{m=n}^{n+N-k-1}x(m)w(n-m)x(m+k)w[n-(m+k)]=\sum\limits_{m=n}^{n+N-k-1}x_w(m)x_w(m+k)

Rn (k) 表示一个信号和延迟 k 点后的该信号本身的相似性

短时自相关函数得到的特征不再是单一数值,而是根据一组 k 的值而产生的一组特征

短时自相关函数特征包含了与信号周期相关的重要信息,当 k 为周期的倍数时,短时自相关函数会取得较大值

自相关函数性质:

1、偶函数

2、k=0 时函数取最大值,对于确定性信号其为能量。对于随机信号,其值为该信号的平均功率

3、如果原序列是周期为 T 的周期信号,那么自相关函数也是周期为 T 的周期函数

应用:基音周期检测

基音是指发浊音时声带振动所引起的周期性,它只是准周期性的

浊音信号的自相关函数在基音周期的整数倍位置上出现峰值,清音的自相关函数没有明显峰值出现,峰值之间对应的就是基音周期

  • 短时平均幅度差函数

短时自相关函数运算量大

语音的浊音具有准周期 P,因此在相距为周期倍数的采样点 k=0,P,2P,... 上,语音信号的幅度差值很小

rn(k)=m=nn+Nk1x(m+k)w[n(m+k)]x(m)w(nm)=m=nn+Nk1xw(m+k)xw(m)r_n(k)=\sum\limits_{m=n}^{n+N-k-1}\vert x(m+k)w[n-(m+k)]-x(m)w(n-m)\vert=\sum\limits_{m=n}^{n+N-k-1}\vert x_w(m+k)-x_w(m)\vert

在周期的各个整数倍点上具有谷值特性

# 语音的短时频域分析

# 概述

概念:通过加窗分帧的方法截取语音信号,在帧内分析语音信号的频域特征

范围:从广义上讲,语音信号的短时频域分析包括语音信号的频谱、功率谱、倒频谱、频谱包络分析等

方法:常用频域分析方法有带通滤波器组法、短时傅里叶变换法、线性预测法等几种

问题:分析 (由时域语音信号求其频谱) 和综合 (由频谱取样值恢复时域语音信号)

傅里叶分析的核心思想:将一个信号分解成一些不同频率的正余弦信号叠加

傅里叶级数:将一个时域周期的连续函数,转换为一个在频域非周期的离散函数

# 短时傅里叶变换

每个频率的信号可以用正弦波表示,采用正弦函数建模。基于欧拉公式,正弦函数对应到统一的指数形式

ejwn=cos(wn)+jsin(wn)e^{jwn}=cos(wn)+jsin(wn)

正弦函数具有正交性,即任意两个不同频率的正弦波的乘积,在两者的公共周期内的积分等于 0。

基于正弦函数的正交性,语音信号通过相关处理可分离出对应不同频率的正弦信号

# DFT

离散傅里叶变换 (DFT) 的第 k 个点计算:

X[k]=n=0N1x[n]e2jπknK=n=0N1x[n]ejwnX[k]=\sum\limits_{n=0}^{N-1}x[n]e^{-\frac{2j\pi kn}{K}}=\sum\limits_{n=0}^{N-1}x[n]e^{-jwn}

其中 x [n] 是时域波形第 n 个采样点,X [k] 是傅里叶频谱第 k 个点,N 是采样系列里的点数,K 是 DFT 的大小

DFT 系数通常是复数的,即

ej2πknK=cos(2πknK)jsin(2πknK)e^{-\frac{j2\pi kn}{K}}=cos(\frac{2\pi kn}{K})-jsin(\frac{2\pi kn}{K})

X[k]=Xreal[n]jXimag[k]X[k]=X_{real}[n]-jX_{imag}[k],其中

Xreal[k]=n=0N1x[n]cos2πknK,Ximag=n=0N1x[n]sin(2πknK)X_{real}[k]=\sum_{n=0}^{N-1}x[n]cos{\frac{2\pi kn}{K}},X_{imag}=\sum_{n=0}^{N-1}x[n]sin(\frac{2\pi kn}{K})

振幅频谱用傅里叶级数的幅度表示如下:

Xmagnitude[k]=sqrt(Xreal[k]2+Ximag[k]2)X_{magnitude}[k]=sqrt(X_{real}[k]^2+X_{imag}[k]^2)

能量频谱用振幅频谱的平方

Xpower[k]=Xreal[k]2+Ximag[k]2X_{power}[k]=X_{real}[k]^2+X_{imag}[k]^2

# STFT

实际应用中,语音信号经过分帧加窗处理,分割成一帧帧的离散序列,可视为采用短时傅里叶变换

  • 若令w=2πkNw=\frac{2\pi k}{N},则得离散的 STFT 如下:

Xn(ej2πkN)=Xn(k)=m=nn+N1x(m)w(nm)ej2πkmN,0kN1X_n(e^{j\frac{2\pi k}{N}})=X_n(k)=\sum\limits_{m=n}^{n+N-1}x(m)w(n-m)e^{-j\frac{2\pi km}{N}},0\le k\le N-1

实际上就是Xn(ejw)X_n(e^{jw}) 的频率采样

k 表示第 k 个点的傅里叶频谱值,x (m) 表示时域波第 m 个采样点的值

基于欧拉公式:

Xreal[k]=m=nn+N1x(m)w(nm)cos(2πkmN)Ximag[k]=m=nn+N1x(m)w(nm)sin(2πkmN)X_{real}[k]=\sum\limits_{m=n}^{n+N-1}x(m)w(n-m)cos(\frac{2\pi km}{N})\\X_{imag}[k]=\sum\limits_{m=n}^{n+N-1}x(m)w(n-m)sin(\frac{2\pi km}{N})

# 逆 STFT

傅里叶逆变换公式:

w(nm)x(m)=12πππXn(ejw)ejwmdww(n-m)x(m)=\frac{1}{2\pi}\int_{-\pi}^{\pi}X_n(e^{jw})e^{jwm}dw

令 m=n,则:

x(n)=12πw(0)ππXn(ejw)ejwndwx(n)=\frac{1}{2\pi w(0)}\int_{-\pi}^{\pi}X_n(e^{jw})e^{jwn}dw

因此,只有当 w (0) 不等于 0 时,才可以从Xn(ejw)X_n(e^{jw}) 求出原始语音信号序列 x (n)

快速傅里叶变换 (FFT) 是 DFT 的快速算法

# 同态处理

同态处理:是一种非线性方法,它能将两个信号通过乘法合成的信号或通过卷积合成的信号分开

语音信号形成:一帧语音信号 = 声门激励信号 * 声道冲激响应

分析目的:从声门激励与声道冲激响应分量的卷积中将激励源与声道冲激响应分开分别进行研究

应用范围:被广泛应用于各种语音编码、合成、识别以及说话人识别

# 解卷方法

解卷:将各卷积分量分开,有时也称为反卷积

分类:解卷算法分为两大类

  • 参数解卷:包括线性滤波、线性预测分析等
  • 非参数解卷:同态信号处理是其中最重要的一种

对语音解卷的好处:

  • 可对激励源进行研究,可以了解语音段是属于浊音还是清音,及确定浊音的基音频率
  • 可对声道冲激响应进行研究,可以了解声道特性及共振峰

# 倒谱分析

倒谱分析:对语音信号进行同态分析后将得到其倒谱参数,所以同态分析也称为倒谱分析

短时倒谱参数:由于对语音信号分析是以帧为单位进行的,所以得到的是短时倒谱参数

倒谱参数的优点:所含的信息比其他参数多,也就是说语音质量好、识别正确率高

倒谱参数缺点:运算量大,但倒谱分析仍是一种有效地语音信号分析方法

# 卷积同态系统

典型卷积同态系统由特征系统 D*[]、线性系统 L [] 及逆特征系统 D-1 [] 三部分组成

  • 特征系统 D*[]:其输入是若干信号的卷积组合,而输出为若干信号的加法组合

D[x(n)]=D[x1(n)x2(n)]=D[x1(n)]+D[x2(n)]=x1^(n)+x2^(n)=x^(n)D_*[x(n)]=D_*[x_1(n)*x_2(n)]=D_*[x_1(n)]+D_*[x_2(n)]=\hat{x_1}(n)+\hat{x_2}(n)=\hat{x}(n)

  • 线性系统 L []:服从一般的叠加原理

L[x^(n)]=L[x1^(n)+x2^(n)]=L[x1^(n)]+L[x2^(n)]=y1^(n)+y2^(n)=y^(n)L[\hat{x}(n)]=L[\hat{x_1}(n)+\hat{x_2}(n)]=L[\hat{x_1}(n)]+L[\hat{x_2}(n)]=\hat{y_1}(n)+\hat{y_2}(n)=\hat{y}(n)

  • 逆特征系统 D-1 []:将信号加法组合变换回卷积组合

D1[y^(n)]=D1[y1^(n)+y2^(n)]=D1[y1^(n)]D1[y2^(n)]=y1(n)y2(n)=y(n)D^{-1}_{*}[\hat{y}(n)]=D^{-1}_{*}[\hat{y_1}(n)+\hat{y_2}(n)]=D^{-1}_{*}[\hat{y_1}(n)]*D^{-1}_{*}[\hat{y_2}(n)]=y_1(n)*y_2(n)=y(n)

基于 Z 变换和对数运算的特征系统构造:

特征系统构造

基于 Z 变换和对数运算的逆特征系统构造

逆特征系统构造

# 复倒谱和倒谱

在绝大多数应用场合,特征系统与非特征系统中的正反 Z 变换都可以用正逆傅里叶变换 (DFT 和 IDFT) 代替

# 复倒谱定义

设信号 x (n) 的 z 变换 X (z)=z [x (n)],其对数:

X^(z)=lnX(z)=ln[z[x(n)]]\hat{X}(z)=lnX(z)=ln[z[x(n)]]

复倒谱定义:

x^(n)=12πππX^(ejw)ejwndw\hat{x}(n)=\frac{1}{2\pi}\int_{-\pi}^{\pi}\hat{X}(e^{jw})e^{jwn}dw

# 倒谱定义

若对X(ejw)X(e^{jw}) 绝对值 (模) 取对数,得

X^(ejw)=lnX(ejw)\hat{X}(e^{jw})=ln\vert X(e^{jw})\vert

则求出的倒频谱 c (n) 为实倒谱,简称为倒谱,即

c(n)=12πππlnX(ejw)ejwndwc(n)=\frac{1}{2\pi}\int_{-\pi}^{\pi}ln\vert X(e^{jw})\vert e^{jwn}dw

上式要求相角为 w 的连续奇函数

复倒谱涉及的是复对数运算,而倒谱是实数的对数运算。倒谱的量纲是时间,也称频,倒频的量纲是时间

因为人的听觉对语音的感觉特征主要包含在幅度信息中,而相位信息不起作用

倒谱经过正逆变换之后,不能还原成自身,因为在计算倒谱的过程中,丢失了相位信息

# 梅尔频率倒谱系数

梅尔频率倒谱系数考虑到了人类的听觉特征,先将线性频谱映射到基于听觉感知的 Mel 非线性频谱上,然后转换到倒谱上

MFCC 参数具有良好的识别性能

# 计算 MFCC 流程

  • 输入语音

  • 预加重、分帧和加窗

    • 预加重

      • 通过一个高通滤波器H(z)=1μz1H(z)=1-\mu z^{-1}μ\mu 通常取 0.97
      • 提高高频部分频谱
    • 分帧

      • 一般以 256 或 512 作为一个帧长
      • 为保持连续,会让前后两帧有重叠
    • 加窗

      • 为增加每一帧左右两端的连续性,可以将帧与一个汉明窗相乘
      • 假设语音信号 x (n),经预处理后为xi(n)x_i(n),下标 i 表示分帧后第 i 帧

xi(n)=x(n)×W(n)W(n,a)=(1a)acos[2πnN1],0nN1x_i(n)=x(n)\times W(n)\\W(n,a)=(1-a)-acos[\dfrac{2\pi n}{N-1}],0\le n\le N-1

不同的 a 值产生不同的汉明窗

  • FFT
    • 经过预处理后,需要将时域信号转变到频域数据:

X(i,k)=n=0N1xi(n)ej2πnk/N,(0n,kN1)X(i,k)=\sum\limits_{n=0}^{N-1}x_i(n)e^{-j2\pi nk/N},(0\le n,k\le N-1)

其中 i 表示第 i 帧,k 表示频域中第 k 条谱线

计算谱线能量

对每一帧 FFT 后的数据计算谱线能量:E(i,k)=[X(i,k)]2E(i,k)=[X(i,k)]^2

其中 i 表示第 i 帧,k 表示频域中第 k 条谱线

听觉特性 Mel 频率

多个带宽不等的三角滤波器组成 Mel 滤波器组,线性频率小于 1000Hz 的部分为线性间隔,而线性频率大于 1000Hz 的部分为对数间隔

  • 取绝对值或平方值
  • Mel 滤波

线性谱到对数谱的传递函数为:

S(i,m)=k=1NE(i,k)Hm(k)(1mM)S(i,m)=\sum\limits_{k=1}^{N}E(i,k)H_m(k)(1\le m\le M)

其中 m 表示第 m 个梅尔滤波器,M 表示梅尔滤波器的总数

  • 取对数
    • 对三角滤波器组的输出取对数,可以得到近似于同态变换的结果
    • 同态变换 (同态滤波):实现将卷积关系和乘积关系变换为求和关系的分离处理,将非线性信号处理变为线性信号处理的过程
    • 倒谱:一种信号的傅里叶变换经对数运算再进行傅里叶逆变换得到的谱
      • 倒谱计算过程:时域信号 ->DFT (信号频谱)-> 取对数 (对数谱)-> 逆 DFT (倒谱)
  • DCT
    • 由于各个滤波器组输出的幅度或能量之间具有很强的相关性,因此有必要去除各维信号之间的相关性,并将信号映射到低维空间。
    • 在 MFCC 中,对滤波器组的输出使用离散余弦变换 (DCT) 来去除相关性并获得倒谱系数 c (i,n)

c(i,n)=m=1Mlog[S(i,m)]cos(πn(m0.5)M)(n=1,2,...,L)c(i,n)=\sum\limits_{m=1}^Mlog[S(i,m)]cos(\dfrac{\pi n(m-0.5)}{M})(n=1,2,...,L)

其中 i 表示第 i 帧,m 表示第 m 个梅尔滤波器,M 表示梅尔滤波器的总数,n 表示 DCT 后的谱线

  • 动态特征 (Delta MFCC)
    • MFCC 特征参数主要反映语音的静态特征 (每一帧的特征)
    • 语音是连续变化的,每一个语音帧不是孤立的
    • 将静态信息和动态信息结合起来作为特征,能很大程度上提高系统的识别性能

常用声学特征 ——MFCC

在静态特征的基础上,可加上动态特征

一阶差分:\Delta c(t)=\dfrac{c(t+1)-c(t-1)}

二阶差分:\Delta\Delta c(t)=\dfrac{\Delta c(t+1)-\Delta c(t-1)}

差分系数计算:

di(n)=1k=NNk2j=NNjci+j(n)d_i(n)=\dfrac{1}{\sqrt{\sum\limits_{k=-N}^Nk^2}}\sum\limits_{j=-N}^Nj\cdot c_{i+j}(n)

其中 di (n) 为第 i 帧语音的一阶差分 MFCC 特征矢量的第 n 个系数,ci (n) 为第 i 帧语音的 MFCC 特征矢量的第 n 个系数,N 一般取 2

  • 输出特征向量

# MFCC 优势

  • 将人耳的听觉感知特性和语音的产生机制相结合
  • 前 12 个 MFCC 通常被用作特征向量,表示非常紧凑,因为这 12 个特征描述了一帧语音数据中的信息
  • 相对 FBank 特征有更小的相关性,更容易建立高斯混合模型
  • MFCC 抵抗噪声的鲁棒性不强

常用声学特征

常用的声学特征提取方法:

  • 语谱图、FBank、MFCC 和 PLP 都是采用 STFT,有着规律的线性分辨率
  • FBank 和 MFCC 都采用 Mel 滤波器组
  • PLP 则利用 Bark 滤波器组进行模拟人耳听觉特性

优点:

  • FBank 保留更多原始特征,适用于深度神经网络建模
  • MFCC 去相关性较好,适用于 GMM 建模
  • PLP 抗噪性更强

# 语音识别

按说话人的限定范围分类:特定人识别;非特定人识别

特定人小词表孤立词系统:动态时间归正法 (DTW)

非特定人大词表连续语音识别任务:隐马尔可夫模型方法 (HMM)

# 动态时间归正

DTW 是一种模板匹配技术,是基于相似度计算与匹配实现的识别算法

两个矢量相似度 —— 欧氏距离

经过预处理和特征提取的语音可看做矢量的序列

DTW:将表示两个语音段的矢量序列对准了再计算相似度。或者说在时间上归正后再计算相似度

步骤:

  • 先计算两个序列各个点之间的距离矩阵
  • 寻找一条从矩阵左下角到右上角的路径,使得路径上的元素和最小
  • 路径上的某个元素 (i,j),前一个元素只可能为
    • 左边的相邻元素
    • 下面的相邻元素
    • 左下方的相邻元素

例子:

例子

模板的训练:

  • 偶然训练法
  • 顽健模板训练方法

非特定人识别的模板训练方法 —— 聚类方法

  • 将训练集聚成 N 个不同的类

# 矢量量化

# 矢量量化基本原理

# 量化方法分类

量化方法分类:标量量化和矢量量化

  • 标量量化:把采样后的信号值逐个进行量化
  • 矢量量化:将 k 个采样值形成 K 为空间 Rk 中的一个矢量,然后将此矢量量化

矢量量化的应用:广泛应用于图像、语音压缩编码、移动通信、语音识别等领域

矢量量化的优点:优于标量量化,是不可逆压缩方法,具备比特率低、解码简单、失真较小等优点

比特率计算:fsxcxb

  • fs:每秒钟样本数
  • c:每个样本的通道数
  • b:每个样本点的位数

# 标量量化

整个动态范围被分成若干个小区间,每个小区间有一个代表值,量化时落入小区间的信号值就用这个代表值代替,或者叫被量化为这个代表值。这是的信号量是一维的,所以称为标量量化

# 矢量量化

把矢量空间分为若干个小区域,每个小区域寻找一个代表矢量,量化时落入小区域的矢量就用这个代表矢量代替

# 矢量量化的直观解释

含义:矢量量化是先把信号序列的每 K 个样本点分成一组,形成 K 维欧式空间中的一个矢量,然后对此矢量进行量化

矢量的维数:若干个标量数据组成一个矢量,标量个数为矢量维数

# 矢量空间的划分

  • 胞腔:所有 K 维矢量构成了一个空间为 Rk,无遗漏地划分成了 N 个互不相交的子空间 R1,R2,...RN,将 Ri 称为胞腔
  • 码书、码书容量、码字:在每一个胞腔 Ri 找一代表矢量 Yi,则 N 个代表矢量可以组成矢量集 Y={Y1,Y2,...,Yn} 构成了一个矢量量化器
    • Y—— 称为码书或码本
    • N—— 称为码书容量或码本长度
    • Yi—— 称为码字,Yi=

# 失真测度

失真测度:指以什么方法来反映用码字 Yi 代替原矢量 X 时所付出的代价

主要作用:失真测度的选择直接影响矢量量化系统的性能

平均失真:失真测度的统计平均值称为平均失真,其描述了矢量量化器的工作特性 D=E [d (X,Yi)]

失真测度基本条件

K 维语音特征矢量 X 和码本 Y 的失真测度 d (X,Y) 需要满足下列三个条件:

  • 对称性:d (X,Y)=d (Y,X)
  • 正值性:d (X,Y)>=0
  • 三角不等式:d (X,Y)<=d (X,Z)+d (Z,Y)

欧氏距离失真测度

  • 平方失真测度

d(X,Y)=XY2=(XiYi)2d(X,Y)=\Vert X-Y\Vert^2=\sum(X_i-Y_i)^2

最常用的失真测度,易于处理和计算,且主观评价上有意义,即小的失真值对应好的主观评价

  • 绝对误差失真测度

d(X,Y)=XY=i=1kXiYid(X,Y)=\vert X-Y\vert=\sum\limits_{i=1}^k\vert X_i-Y_i\vert

主要优点:计算简单,硬件容易实现

  • 加权平方失真测度

d(X,Y)=(XY)TW(XY)d(X,Y)=(X-Y)^TW(X-Y)

W 为正定加权矩阵

# 矢量量化器工作过程

编码端:

  • 输入矢量 X 与码本中每一个码字比较,计算它们的失真
  • 搜索到失真最小的码字 Yj 的序号 j
  • 将 j 的编码信号通过信道传送到解码端

解码端:

  • 把信道传送来的编码信号译成序号 j
  • 根据序号 j,从码本中查出相应的码字 Yj
  • Yj 是输入矢量 X 的重构矢量

# 矢量量化特点

  • 传输对象:码字存储在编码器和译码器的码书中,信道中传输的并不是码字 Y,而是码字 Y 下标 j 的编码信息
  • 量化效率:相同速率下,矢量量化失真比标量量化小很多;相同失真下,矢量量化所需速率比标量量化低很多
  • 量化特点:矢量量化时多维模式匹配、多维优化的过程,标量量化是一维模式匹配、一维优化的过程。一般来说,用一维优化是得不到多维优化的结果
  • 复杂度:矢量量化复杂度随位数成指数增加,其比标量量化的复杂度高

# 最佳矢量量化器设计

必要条件:

  • 在给定码书的条件下,寻找信源空间的最佳划分,使平均失真最小
  • 在给定划分的条件下,寻找最佳码书,使平均失真最小

最佳划分定义:按最临近准则 NNR,信源空间内的点属于 Sj 空间,且对应的码书比码书中其他对应都要小,最佳划分也称胞腔划分

Voronoi 划分作用:把信源空间 x 划分为与码书大小相同的 N 个区间 Sj

Voronoi 胞腔:Voronoi 划分对应子集 Sj 称为 Voronoi 胞腔

最佳码书定义:给定划分后,是码书的平均失真最小的码书矢量

最佳码书的码字 Yi 必须为相应划分 Si 的形心

形心计算如下:

X1(1,2,3,4),X2(3,2,4,1),X3(4,3,2,1),X4(2,3,1,4)

形心:Y=(2.5,2.5,2.5,2.5)

# LBG 算法

LBG 算法:给定码字数目 N,设计矢量量化器码书

算法输入:

  • 信源训练序列:TS=
  • 初始码书yn0y_n^0
  • 计算停止门限ϵ\epsilon
  • 失真测度

算法输出:

最终设计的码书

算法步骤:

  • 初始化:n=0,ynn=yn0y_n^n=y_n^0,D->INF, 计算停止门限
    • 其中 D 为起始平均失真
  • 用码书ynny_n^n 为已知形心,根据最佳划分原则把 TS 划分为 N 个胞腔
  • 计算平均失真
  • 计算相对失真

D(n)=D(n1)D(n)D(n)D^{(n)}=\vert\dfrac{D^{(n-1)}-D^{(n)}}{D^{(n)}}\vert

若相对失真小于计算停止门限,则停止计算,当前码书就是设计好的码书,否则进行下一步

  • 计算这时划分的各胞腔的形心
  • 由这 N 个新形心构成新的码书
  • 置 n=n+1,返回第 2 步,直到相对失真小于计算停止门限
# 初始码书选择
  • 随机选取法
    • 从训练序列中随机选取 N 个矢量作为初始码字,构成初始码书
    • 优点
      • 不需要初始化计算,可以大大减少计算控件
      • 初始码字选自训练序列,无空胞腔问题
    • 缺点
      • 可能会选到一些非典型的矢量作为码字
      • 会造成某些空间把胞腔分得过细,而有些空间分的太大
  • 分裂法
    • 计算训练序列 TS 的形心,将形心作为第一个码字 Y1
    • 选择一个合适参数 A 乘以码字 Y1,形成第二个码字 Y2
    • 用仅含两个码字的码书通过 LBG 设计码书
    • 将仅含两个码字的码书中的码字分别乘以合适的参数 B,得到四个码字
    • 如此反复,经过 log2N 直到得到 N 个码字的初始码书
  • 去空胞腔分裂法
    • 预处理:首先某空胞腔中形心去掉,然后将最大胞腔 SM 分裂为 2 个小胞腔
    • 分裂方法:
      • 用一个合适参数 A,乘以原形心,得到两个码字
      • 以新的两个码字划分这个大胞腔,构成两个小胞腔
      • 依次类推,最终得到 N 个胞腔
  • 非典型码字的处理
    • 重新选择随机初始码字,直到没有非典型码字为止
    • 把这种胞腔中少数矢量归并到邻近的各个胞腔中,再用分裂法把其中一个最大的胞腔分裂为两个小胞腔

# 说话人识别技术

说话人识别分类:

  • 与文本有关的识别任务;与文本无关的识别任务
  • 说话人辨认;说话人确认

高斯模型

协方差

二维高斯分布、D 维高斯分布

最大似然估计

  • 概率密度函数
  • 似然函数
  • 对数似然函数
  • 求导并令方程为 0
  • 解方程,得参数

高斯混合模型

  • 参数计算 ——EM 算法

    • 初始化参数
    • E-step:求期望
    • M-step:求极大,计算新一轮迭代的模型参数
    • 迭代至收敛
  • 训练

    • 初始化,构造初始模型 (K-means)
    • 重估计,通过 EM 迭代算法精细化初始模型

GMM-UBM 方法

  • 用大量说话人的大规模预料训练一个 GMM 模型,称之为通用背景模型

  • 基于最大后验准则方法,在只有少量说话人训练预料的条件下,根据 UBM 模型自适应得到说话人的 GMM 模型

GMM 均值超向量方法

  • 将通过 MAP 得到的各高斯分量的均值拼接成一个超向量,作为 (段级) 说话人特征

  • 至少 1024x39 维

  • 对说话人识别任务,一般用 SVM 为说话人建模

  • 对说话人确认任务,采用余弦距离来度量两个超向量间相似性

i-vector 方法

  • 联合因子分析
    • 为了将说话人信息与信道等其他信息更好地区分开,从而提升说话人识别的概率
  • 信道因子 x 通常也会包含一部分说话人的信息,使得 y 中说话人信息被弱化
  • M (语音的超向量)=m (UBM 超向量)+Vy (说话人空间)+Ux (信道空间)+Dz
  • i-vector:M (语音的超向量)=m (UBM 的超向量)+T (总变化空间) w (i-vector)