内容简介
本书系统地阐述了语音信号处理的原理、方法、技术和应用,同时给出了部分内容对应的MATLAB仿真源程序。全书共14章,第1~6章是基本理论部分,包括语音信号的数字模型、语音信号的短时时域分析、频域分析及倒谱分析、语音信号线性预测分析和矢量量化;第7~14章是应用部分,包括语音编码、语音合成、语音识别、语音增强、小波分析、人工神经网络及独立分量分析及其在语音信号处理中的应用、语音质量评价和可懂度评价原理及实现。 本书内容全面,重点突出,原理阐述深入浅出,注重理论与实际应用的结合,可读性强。 本书可以作为高等院校通信工程、电子信息工程、自动化、计算机技术与应用等专业高年级本科生相关课程的教材,也可供从事语音信号处理研究的研究生和科研人员参考。
作者简介
张雪英,教授,太原理工大学信息学院博士生导师,长期以来一直从事信息处理、数字语音处理等方面的教学及研究工作。
目录
第1章 绪论
1.1 语音信号处理的发展
1.1.1 语音合成
1.1.2 语音编码
1.1.3 语音识别
1.2 语音信号处理的应用
1.3 语音信号处理的过程
1.4 MATLAB在数字语音信号处理中的应用
习题1
第2章 语音信号的数字模型
2.1 语音的发声机理
2.1.1 人的发声器官
2.1.2 语音生成
2.2 语音的听觉机理
2.2.1 听觉器官
2.2.2 听觉掩蔽效应
2.2.3 临界带宽与频率群
2.2.4 耳蜗的信号处理机制
2.2.5 语音信号听觉模型
2.3 语音信号的线性模型
2.3.1 激励模型
2.3.2 声道模型
2.3.3 辐射模型
2.3.4 语音信号数字模型
2.4 语音信号的非线性模型
2.4.1 线性模型局限性
2.4.2 几种非线性模型
2.4.3 非线性动力学模型
2.4.4 非线性模型在语音信号处理中的应用及MATLAB实现
习题2
第3章 语音信号的短时时域分析
3.1 语音信号的预处理
3.1.1 语音信号的预加重处理
3.1.2 语音信号的加窗处理
3.2 短时平均能量
3.3 短时平均幅度函数
3.4 短时平均过零率
3.5 短时自相关分析
3.5.1 短时自相关函数
3.5.2 语音信号的短时自相关函数
3.5.3 修正的短时自相关函数
3.5.4 短时平均幅度差函数
3.6 基于能量和过零率的语音端点检测
3.7 基音周期估值
3.7.1 基于短时自相关法的基音周期估值
3.7.2 基于短时平均幅度差 函数AMDF法的基音周期估值
3.7.3 基音周期估值的后处理
3.7.4 基音周期估值后处理的MATLAB实现
习题3
第4章 语音信号短时频域及倒谱分析
4.1 傅里叶变换的解释
4.1.1 短时傅里叶变换
4.1.2 窗函数的作用
4.2 滤波器的解释
4.2.1 短时傅里叶变换的滤波器实现形式一
4.2.2 短时傅里叶变换的滤波器 实现形式二
4.3 短时综合的滤波器组相加法
4.3.1 短时综合的滤波器组相加法原理
4.3.2 短时综合的滤波器组相加法的MATLAB程序实现
4.3.3 短时综合的叠接相加法原理及MATLAB程序实现
4.4 语音信号的复倒谱和倒谱分析及 应用
4.4.1 复倒谱和倒谱的定义及性质
4.4.2 复倒谱的几种计算方法
4.4.3 倒谱的MATLAB实现
4.4.4 语音的倒谱分析及应用
习题4
第5章 语音信号线性预测分析
5.1 LPC的基本原理
5.1.1 LPC的实现方法
5.1.2 语音信号模型和LPC 之间的关系
5.1.3 模型增益G的确定
5.2 线性预测分析的解法
5.2.1 自相关法
5.2.2 协方差法
5.2.3 自相关法的MATLAB 实现
5.3 线谱对LSP分析
5.3.1 LSP的定义和特点
5.3.2 LPC参数到LSP参数的转换及MATLAB实现
5.3.3 LSP参数到LPC参数的转换及MATLAB实现
5.4 LPC的几种推演参数
5.4.1 反射系数
5.4.2 对数面积比系数LAR
5.4.3 预测器多项式的根
5.4.4 预测误差滤波器的冲激 响应及其自相关系数
5.4.5 LPC倒谱及其MATLAB实现
习题5
第6章 矢量量化
6.1 矢量量化基本原理
6.1.1 矢量量化的定义
6.1.2 失真测度
6.1.3 矢量量化器
6.2 最佳矢量量化器
6.3 矢量量化器的设计算法及MATLAB实现
6.3.1 LBG算法
6.3.2 初始码书的选定与空胞腔的处理
6.3.3 已知训练序列的LBG算法的MATLAB实现
6.3.4 树形搜索矢量量化器
习题6
第7章 语音编码原理及应用
7.1 语音编码的分类及特性
7.1.1 波形编码
7.1.2 参数编码
7.1.3 混合编码
7.2 语音编码性能的评价指标
7.2.1 编码速率
7.2.2 编码语音质量评价
7.2.3 编解码延时
7.2.4 算法复杂度
7.3 语音信号波形编码
7.3.1 脉冲编码调制PCM
7.3.2 自适应预测编码APC
7.3.3 G.721编码及算法实现
7.4 语音信号参数编码
7.4.1 LPC声码器原理
7.4.2 LPC?10编码器
7.5 语音信号混合编码
7.5.1 合成分析技术和感觉加权滤波器
7.5.2 激励模型的演变
7.5.3 G.728语音编码标准简介
7.6 语音信号宽带变速率编码
习题7
第8章 语音合成
8.1 语音合成的原理及分类
8.1.1 波形合成法
8.1.2 参数合成法
8.1.3 规则合成法
8.2 共振峰合成法
8.2.1 级联型共振峰模型
8.2.2 并联型共振峰模型
8.2.3 混合型共振峰模型
8.3 线性预测参数合成法
8.4 基音同步叠加法
8.4.1 基音同步叠加PSOLA算法原理
8.4.2 基音同步叠加PSOLA算法实现步骤
8.5 文语转换系统
8.5.1 文语转换系统的组成
8.5.2 汉语按规则合成
习题8
第9章 语音识别基本原理与应用
9.1 语音识别系统概述
9.1.1 语音信号预处理
9.1.2 语音识别特征提取
9.1.3 语音训练识别模型
9.2 HMM基本原理及在语音识别中的应用
9.2.1 隐马尔可夫模型
9.2.2 隐马尔可夫模型的3个基本问题
9.2.3 隐马尔可夫模型用于语音识别
9.3 支持向量机在语音识别中的应用
9.3.1 支持向量机分类原理
9.3.2 支持向量机的模型参数选择问题
9.3.3 支持向量机用于语音识别的MATLAB实现
习题9
第10章 语音增强原理及应用
10.1 语音和噪声的主要特性
10.1.1 语音的主要特性
10.1.2 噪声的特性
10.2 语音增强算法的分类
10.3 单通道语音增强算法及MATLAB仿真实现
10.3.1 谱减法
10.3.2 维纳滤波法
10.3.3 最小均方误差估计法
10.3.4 子空间语音增强算法
10.4 多通道语音增强算法及MATLAB 仿真实现
10.4.1 阵列信号系统模型
10.4.2 麦克风阵列近场模型与远场模型
10.4.3 经典麦克风阵列的语音增强算法
习题10
第11章 小波分析及在语音信号处理中的应用
11.1 基础理论
11.2 小波的特性
11.2.1 连续小波变换及性质
11.2.2 离散小波变换及性质
11.3 几种常用的小波及特性
11.3.1 Haar小波
11.3.2 Daubechies(dbN)小波
11.3.3 Mexican Hat(Marr) 小波
11.3.4 Morlet小波
11.3.5 Meyer小波
11.4 小波变换在语音信号处理中的应用
11.4.1 小波分析在语音信号预处理的应用及MATLAB实现
11.4.2 小波分析在语音去噪中的应用及MATLAB 实现
习题11
第12章 人工神经网络及在语音信号处理中的应用
12.1 人工神经网络简介
12.2 人工神经网络构成
12.2.1 神经元
12.2.2 网络拓扑
12.2.3 网络的学习算法
12.3 几种神经网络模型及其算法
12.3.1 单层感知器
12.3.2 多层感知器
12.3.3 径向基函数神经网络
12.3.4 自组织特征映射神经网络
12.4 神经网络在语音信号处理中的应用
12.4.1 RBF神经网络在语音识别中的应用及MATLAB 实现
12.4.2 自组织神经网络在语音编码中的应用及MATLAB 实现
习题12
第13章 独立分量分析及在语音信号处理中的应用
13.1 基础理论
13.1.1 ICA的定义与数学模型
13.1.2 ICA的基本假设、不确定性及求解过程
13.1.3 ICA中信号的预处理
13.1.4 ICA的目标函数
13.1.5 ICA性能评价参数
13.2 经典ICA算法
13.2.1 自然梯度算法
13.2.2 信息最大化法
13.2.3 快速ICA算法 (FASTICA)
13.3 ICA在语音信号处理中的应用及MATLAB实现
13.3.1 INFORMAX算法在语音盲信号分离中的应用及MATLAB实现
13.3.2 FASTICA算法在语音盲信号分离中的应用及MATLAB实现
习题13
第14章 语音质量评价和可懂度评价
14.1 语音质量与可懂度
14.2 语音质量的主观评价方法
14.3 语音可懂度的主观评价方法
14.4 语音质量客观评价方法
14.4.1 时域和频域分段信噪比的方法及MATLAB 实现
14.4.2 基于LPC客观评价方法及MATLAB实现
14.4.3 语音质量的感知评价方法(PESQ)及MATLAB实现
14.5 语音可懂度客观评价方法
14.5.1 加权频带信噪比评价方法及MATLAB实现
14.5.2 归一化协方差评价方法(NCM)及MATLAB 实现
14.5.3 短时清晰度指数评价方法(AI-ST)及MATLAB实现
习题14
附录A 专业术语缩写英汉对照表
附录B 程序索引
参考文献
前言/序言
本书第1版于2010年7月出版,经过5年多的使用,编著者在教学过程中,不断跟踪总结教材使用效果,并结合近几年语音信号处理技术发展趋势,对该教材进行了修订和提升。本书第2版中适当增加了近几年新的前沿知识,增加习题,完善了实践内容,旨在进一步提升学生学习本课程的积极性,为培养具有创新实践能力的人才打下良好基础。该教材于2014年被评为“‘十二五’普通高等教育本科国家级规划教材”,使用该教材的本科生课程“语音信号处理”是山西省精品资源共享课,对教材的进一步完善也是这门课程建设的内容之一。
在保持第1版教材优点基础上,第2版具有下列特点:
(1)内容更加全面,原理深入浅出,知识结构合理。
(2)更加突出新理论的应用案例呈现,不仅有基础的语音编码、合成、识别和增强的经典理论,而且进一步增加了用小波分析、神经网络、独立分量分析等近代信号处理新理论和方法对语音信号进行处理和应用,同时增加了语音评价的新理论。特别是新增的后几章内容,配有程序代码,既可以激发学生进一步深入学习的兴趣,又可以为社会培养语音信号处理人才打下坚实的基础。
(3)适用性更广泛。不仅适用于本科生作为教材,而且由于应用部分的加深,对于通信专业和信号处理方向的研究生也适宜作为教材和参考书。
本书主要以高年级本科生和初次学习语音信号处理知识的研究生为读者对象,注重语音信号处理基础知识及主要应用的描述,同时对本领域的最新成果也有介绍。全书共14章,第1章是绪论,第2章是语音信号的数字模型,第3章是语音信号的短时时域分析,第4章是语音信号的短时频域及倒谱分析,第5章是语音信号线性预测分析,第6章是矢量量化,第7章是语音编码原理及应用,第8章是语音合成原理及应用,第9章是语音识别基本原理与应用,第10章是语音增强原理及应用,第11章是小波分析及在语音信号处理中的应用,第12章是人工神经网络及在语音信号处理中的应用,第13章是独立分量分析及在语音信号处理中的应用,第14章是语音质量评价和可懂度评价原理及实现。附录A是本书中出现过的专业名词缩写、全称及中文解释,按照英文字母顺序排列,供大家学习时参考。本书第1~6章属于基本理论部分,所附的MATLAB程序较多,第7~14章是语音信号处理技术的应用,第1版这部分附的程序较少,第2版在增加新的研究方法基础上,进一步加大了这些方法在语音信号处理应用部分的MATLAB程序。为方便读者检索程序,附录B给出了本书所有程序的索引。
本书前6章内容可以用作工科高校相关专业32~40学时的课程教学,后8章内容可作为本科生选学内容或研究生课程内容。
本书配有电子课件、MATLAB源程序等教学资源,读者可以登录华信教育资源网(www.hxedu.com.cn)免费下载。
本书由张雪英教授担任主编,李凤莲、贾海蓉和李鸿燕副教授担任副主编,程永强教授、马建芬教授、白静教授、孙颖博士、黄丽霞博士参编,具体分工是:第1、2、3、4、6、8章由张雪英编写,第5章和附录A由李凤莲编写,第7章由程永强编写,第9章由白静编写,第10章由贾海蓉编写,第11章由孙颖编写,第12章由黄丽霞编写,第13章由李鸿燕编写,第14章由马建芬编写。全书由张雪英教授统稿。在本书编写过程中,特别是MATLAB程序的调试过程中,得到了太原理工大学信息工程学院数字音视频技术研究中心的一些硕士生和博士生的帮助,在此表示衷心感谢。
由于编著者水平有限,书中难免存在错误之处,敬请读者批评指正。
编著者
2016年4月
《数字语音信号处理与MATLAB实现》 引言 语音,作为人类最自然、最直接的交流方式,蕴含着丰富的信息。对语音信号进行深入的理解、分析和处理,不仅是人工智能、通信、医学等领域研究的重要基石,也是现代社会诸多技术应用的核心驱动力。本书旨在为读者提供一个全面而系统的数字语音信号处理理论框架,并辅以MATLAB这一强大的工程计算软件进行实践操作,从而帮助读者掌握语音信号处理的核心技术,并能独立完成相关的仿真项目。 本书特色与内容梗概 本书以理论讲解与实践应用相结合为指导思想,力求使读者在理解语音信号处理基本原理的同时,也能熟练运用MATLAB工具解决实际问题。全书内容紧密围绕数字语音信号的产生、采集、分析、增强、识别及应用展开,逐步深入,由浅入深。 第一部分:语音信号基础 语音的产生与感知: 深入探讨人体的发声器官如何产生语音,包括声道的建模、声带振动的物理机制等。同时,介绍人耳的听觉感知特性,例如掩蔽效应、频率选择性等,为后续的信号处理算法设计提供生理学依据。 数字语音信号模型: 阐述将连续语音信号转换为离散数字信号的过程,包括采样定理、量化误差分析等。详细介绍常用的语音信号模型,如源-唱子模型、线性预测模型(LPC)等,为理解语音信号的内在结构奠定基础。 语音信号的预处理: 讲解在进行深入分析之前,对原始语音信号进行必要的净化和转换。这包括信号的归一化、去直流、加窗(如汉明窗、海宁窗)以减少频谱泄露、以及分帧处理以捕捉语音信号的时变特性。 第二部分:语音信号的时域与频域分析 时域分析技术: 介绍描述语音信号在时间轴上变化的分析方法,例如零交叉率(ZCR)用于区分清音和浊音,能量分析用于检测语音段。 频域分析技术: 深入讲解语音信号在频率域的特征。详细介绍傅里叶变换(FT)及其快速算法(FFT)在语音分析中的应用,包括短时傅里叶变换(STFT)以分析语音信号的时频特性。讨论频谱、功率谱、倒频谱等概念及其在语音分析中的意义。 特征提取: 这是语音处理的核心环节。本书将详细介绍多种重要的语音特征提取方法,包括: 线性预测编码(LPC): 详细阐述LPC模型的工作原理,包括自相关法、协方差法等求解预测系数的方法,以及如何利用预测残差和预测系数来表示语音。 梅尔频率倒谱系数(MFCC): 重点介绍MFCC的计算流程,包括预加重、加窗、FFT、梅尔滤波器组、对数能量以及倒谱运算。解释MFCC为何能更好地模拟人耳的听觉特性,是语音识别中最常用的特征之一。 感知线性预测(PLP): 介绍PLP的原理,它在MFCC的基础上进一步考虑了听觉掩蔽效应,通常能获得更好的识别性能。 其他特征: 简要介绍如差分MFCC(ΔMFCC)、语音基频(F0)、共振峰等特征,并说明其在特定应用场景下的优势。 第三部分:语音信号的增强与恢复 噪声抑制: 探讨如何去除语音信号中的噪声,以提高语音的清晰度和可懂度。 谱减法: 详细介绍谱减法的原理,包括背景噪声估计、减噪过程以及伪影的控制(如过减噪、音乐噪声)。 维纳滤波: 介绍维纳滤波器的原理,包括信号与噪声的统计特性估计,以及其在平稳和非平稳噪声抑制中的应用。 基于深度学习的噪声抑制: 简要介绍近年来兴起的基于深度神经网络(DNN)的噪声抑制技术,例如使用卷积神经网络(CNN)或循环神经网络(RNN)来学习噪声和干净语音之间的映射关系。 回声消除: 讲解在通信或会议系统中,如何消除由扬声器声音回传到麦克风产生的回声。介绍自适应滤波器的原理,如最小均方(LMS)算法、归一化最小均方(NLMS)算法,及其在回声消除中的应用。 语音消重叠: 讨论如何分离两个或多个说话人同时说话产生的混合语音信号,这是一个具有挑战性的问题。 第四部分:语音合成与语音识别 语音合成(Text-to-Speech, TTS): 拼接合成: 介绍基于单元语音片段(如音素、音节、半音节)的拼接合成方法,包括数据库的构建、单元的选择和连接。 参数合成: 阐述如何利用语音模型(如LPC模型)根据文本生成的语音参数,再合成语音。 基于深度学习的合成: 介绍端到端的深度学习合成方法,如WaveNet, Tacotron等,展示其在生成自然流畅语音方面的巨大潜力。 语音识别(Automatic Speech Recognition, ASR): 隐藏马尔可夫模型(HMM): 详细讲解HMM在语音识别中的核心地位,包括状态、转移概率、观测概率等概念。介绍HMM-GMM(高斯混合模型)和HMM-DNN(深度神经网络)混合模型。 动态时间规整(DTW): 介绍DTW算法用于解决语音信号在时间上的伸缩问题,实现语音模板与待识别语音的匹配。 基于深度学习的识别: 重点介绍近年来语音识别领域取得突破性进展的深度学习方法,如CTC(Connectionist Temporal Classification)、Attention-based模型(如Transformer),以及端到端的ASR系统。 第五部分:MATLAB在语音信号处理中的应用 MATLAB语音处理工具箱介绍: 详细介绍MATLAB内置的语音处理相关函数和工具箱,包括 `wavread`/`audioread`(读取语音)、`wavwrite`/`audiowrite`(写入语音)、`fft`(傅里叶变换)、`spectrogram`(谱图)、`melcepstrum`(MFCC计算)、`filterbank`(滤波器组设计)等。 实例分析与代码实现: 结合前面理论部分讲解的算法,通过具体的MATLAB代码示例,演示如何实现语音信号的加载、可视化、特征提取、噪声抑制、语音合成和简单的语音识别。例如,从加载一段带有噪声的语音文件开始,应用谱减法进行降噪,然后提取MFCC特征,并演示如何用这些特征构建一个简单的语音指令识别器。 仿真与评估: 讲解如何使用MATLAB进行实验设计,对不同算法的性能进行评估,例如使用语音质量评价指标(如PESQ, STOI)或识别率等。 结论 本书力求通过理论深度与实践广度相结合的方式,为广大读者,无论是高校学生、科研人员还是工程师,提供一个扎实而实用的数字语音信号处理学习平台。通过本书的学习,读者将能够深刻理解语音信号的内在规律,掌握先进的语音处理技术,并能灵活运用MATLAB工具将其转化为实际应用,从而在人工智能、通信、多媒体等众多前沿领域大展身手。 谁适合阅读本书? 对数字信号处理有基础了解,希望深入研究语音信号处理方向的在校学生。 从事语音识别、语音合成、语音通信、音频信号处理等领域的研发人员。 对人工智能、人机交互等交叉领域感兴趣的研究者。 任何希望通过MATLAB学习和实践语音处理技术的工程师或爱好者。 本书期待成为您在数字语音信号处理领域的良师益友,陪伴您探索语音世界的无限可能。