图书简介:
1 终端智能语音处理概述 1
1.1 引言1
1.2 问题和挑战 3
1.3 发展历史概要5
1.4 本书的组织结构8
1.5 本书的适用人群10
1.6 常用表示和符号对照10
1.6.1 默认符号 10
1.6.2 对离散时间序列的表示 11
1.6.3 关于索引序号从0 还是1 开始的说明 12
1.7 关于中英文混写的说明13
1.8 免责声明 14
1.9 本章小结 14
—理论篇—
2 子带滤波 21
2.1 离散傅里叶变换与短时傅里叶变换 22
2.1.1 离散傅里叶变换 22
2.1.2 短时傅里叶变换 23
2.1.3 输出延时26
2.1.4 频谱泄漏 27
2.1.5 时域卷积与频域点积的近似关系 30
2.2 多相滤波器组 32
2.2.1 对频谱泄漏的数学解释32
2.2.2 扇形损失 34
2.2.3 重采样35
2.2.4 多相滤波器组 40
2.3 滤波器设计基础 43
2.4 本章小结45
3 固定波束形成47
3.1 多通道语音增强的基本原理 48
3.1.1 物理解释 48
3.1.2 几何解释50
3.2 远场模型 52
3.3 波束形成及阵列性能评价 56
3.3.1 beampattern 56
3.3.2 directivity index 60
3.3.3 white noise gain 63
3.3.4 effective rank 65
3.4 波束形成算法的求解形式67
3.4.1 superdirective beamforming 68
3.4.2 差分波束形成69
3.5 本章小结72
4 自适应波束形成 74
4.1 递推求平均 75
4.2 典型自适应波束形成算法77
4.2.1 MVDR 算法 78
4.2.2 PMWF 算法82
4.3 共轭对称矩阵求逆 83
4.3.1 1 × 1 和2 × 2 矩阵求逆84
4.3.2 Cholesky 分解84
4.3.3 矩阵求逆引理 87
4.3.4 IQRD 方法 89
4.3.5 误差与稳定性90
4.4 本章小结 93
5 盲源分离 96
5.1 信号模型97
5.1.1 瞬时模型 97
5.1.2 卷积模型 98
5.2 独立成分分析 100
5.2.1 独立性假设与中心极限定理 101
5.2.2 ICA 的目标函数103
5.2.3 AuxICA 算法 107
5.2.4 2 × 2 广义特征分解问题 112
5.2.5 排列歧义性与尺度歧义性 114
5.3 独立向量分析 117
5.3.1 IVA 的目标函数 118
5.3.2 AuxIVA 算法121
5.3.3 两级架构 125
5.4 盲源分离与波束形成的联系和区别 130
5.5 本章小结 132
6 回声消除与去混响136
6.1 信号模型 138
6.1.1 回声消除信号模型 138
6.1.2 去混响信号模型140
6.2 LMS 与NLMS 算法143
6.3 RLS 算法 145
6.3.1 最小二乘法 146
6.3.2 RLS 算法 151
6.4 一种基于盲源分离的回声消除方法155
6.4.1 问题背景 155
6.4.2 算法推导157
6.4.3 对比实验 160
6.5 本章小结 162
7 数据模拟 164
7.1 信号模型和系统框架 165
7.2 传函的模拟与测量167
7.2.1 镜像法传函模拟 167
7.2.2 传函测量 174
7.2.3 分块卷积176
7.3 非线性回声模拟 178
7.4 散射噪声模拟 180
7.5 信噪比和音量 186
7.6 本章小结187
8 深度语音增强 190
8.1 信号模型 192
8.2 时频掩蔽 193
8.3 损失函数 196
8.4 深度回声残余抑制 197
8.4.1 数据准备 198
8.4.2 输入特征 198
8.4.3 模型结构 199
8.5 多通道语音增强模型 200
8.5.1 基于掩蔽的波束形成算法 201
8.5.2 深度神经网络空域滤波算法 202
8.6 歌曲成分分离 203
8.7 本章小结 205
9 语音活动性检测208
9.1 HMMVAD209
9.1.1 HMM 基础210
9.1.2 前向算法与后向算法 213
9.1.3 Viterbi 算法 216
9.1.4 Baum-Welch 算法 219
9.1.5 下溢问题 220
9.1.6 在线HMMVAD222
9.2 NNVAD 225
9.2.1 一种NNVAD 模型 226
9.2.2 一种NN 和HMM 结合的VAD229
9.3 VAD 性能评价 230
9.4 本章小结 232
10 关键词检测 234
10.1 特征提取 235
10.2 声学模型 237
10.2.1 建模单元 237
10.2.2 声学模型 239
10.2.3 关于声学模型工作原理的讨论242
10.3 解码器 247
10.3.1 阈值与动态阈值 249
10.3.2 关于ROC 曲线与阈值选择的讨论 253
10.4 虚警问题 255
10.4.1 对虚警现象的直观解释 255
10.4.2 减少虚警的方法 256
10.4.3 对比实验 258
10.5 多通道关键词检测与通道选择 260
10.5.1 问题背景 260
10.5.2 模型与训练方法 262
10.5.3 实验与分析 263
10.6 本章小结 269
11 联合优化方法 272
11.1 盲源分离统一框架273
11.1.1 信号模型 273
11.1.2 问题拆解 275
11.1.3 对比实验 276
11.2 语音增强与关键词检测联合优化 279
11.2.1 系统框架 280
11.2.2 语音增强模块 282
11.2.3 关键词检测模块 282
11.2.4 实验现象 284
11.3 本章小结 285
12 模型量化 288
12.1 模型量化方法 288
12.1.1 训练后量化 288
12.1.2 训练时量化 290
12.1.3 无数据量化 291
12.2 关键词检测模型的无数据量化方法 292
12.2.1 时序数据生成器 293
12.2.2 中心距离约束与双生成器 293
12.2.3 高质量筛选 295
12.2.4 时间掩码量化蒸馏 296
12.2.5 无数据量化流程 297
12.2.6 无数据量化实验 299
12.3 本章小结 303
—工程篇—
13 终端智能语音处理工具包307
13.1 系统框架 308
13.2 配置参数详解 310
13.2.1 通用参数 310
13.2.2 回声消除 313
13.2.3 去混响 314
13.2.4 多通道语音增强 314
13.2.5 深度语音增强 315
13.2.6 后滤波 316
13.2.7 自动增益控制 316
13.2.8 音量计算 317
13.2.9 声源定位 317
13.2.10 语音活动性检测 318
13.2.11 关键词检测319
13.2.12 命令词检测321
13.2.13 产线测试,模型训练321
13.3 主要离线工具示例322
13.3.1 SoundConnect 离线工具 322
13.3.2 批处理工具 322
13.4 示例程序 323
13.4.1 从配置文件初始化 323
13.4.2 从Params.c 文件初始化 324
13.5 本章小结 326
14 模型训练 327
14.1 数据准备 328
14.1.1 正样本数据 329
14.1.2 负样本和噪声数据 332
14.2 环境配置 333
14.2.1 传函模拟 335
14.2.2 目标语音模拟 336
14.2.3 干扰信号模拟 338
14.2.4 回声模拟 339
14.2.5 噪声模拟 339
14.2.6 音量和增益 340
14.2.7 生成模拟音频 340
14.3 模型训练 342
14.3.1 训练环境 342
14.3.2 训练流程 343
14.3.3 模型训练技巧总结 345
14.4 模型测试 348
14.4.1 测试环境 348
14.4.2 评价指标 349
14.4.3 测试集的录制与准备 350
14.4.4 测试流程 352
14.5 模型发布 355
14.6 本章小结 356
附录A 358
A.1 复数求偏导和共轭偏导 358
A.2 共轭求导示例 359
A.2.1 向量求导 359
A.2.2 二次型求导 360
展开
推荐序
Johnson 和Dudgeon 在他们的专著Array Signal Processing: Concepts and Techniques 中曾指出:检测是科学问题,估计是艺术问题。语音处理中的绝大多数方法和算法需要同时兼顾信号检测、参数估计与信号增强,这就要求从事语音处理技术研发的人员不仅要具备扎实的声学、物理和数学基础,还需要拥有信号信息处理、听觉感知方面的专业知识与系统经验。
大多数语音处理算法,无论是基于经典滤波与统计理论,还是基于数据驱动的机器学习方法,都会引入语音畸变和处理时延,因此在算法设计中通常会涉及“畸变换信噪(信干)比增益”和“时间换增益”的理念。如果采用多通道拾音系统,算法设计还会涉及“空间换增益”的方法。人类听觉系统对语音畸变异常敏感,能感知到低于负60 分贝的畸变,且感知畸变的程度与延时密切相关。此外,许多产品对拾音系统的尺寸和麦克风布放位置有所限制,这使得基于畸变换增益、时间换增益,以及空间换增益的思路在算法设计和性能评估中面临不少挑战。
通常,算法性能涉及多个层面,除信号畸变和处理时延外,还包括信噪比增益、信干比增益、鲁棒性和复杂度等多项指标。如果设计过于侧重某一或某几个指标而忽视了其他方面,往往会导致整体话音质量、可懂度、清晰度或识别率下降。正因如此,语音处理方法和算法的研发需要将理论、方法和经验融为一体,甚至还需结合一些听觉美学策略。
《终端智能语音处理技术与应用》的作者长期从事智能语音处理技术的研发及相关产品的开发,积累了丰富的算法设计与优化经验。书中介绍的许多方法,如波束形成、盲源分离、噪声抑制、回声消除和语音增强等,都在实际系统中得到了广泛的应用。本书还详细介绍了常用算法的工具包。这种融合智能语音处理理论、方法与实践经验的专著十分难得,深信读者,特别是从事相关理论与方法研究的研究生以及从技术与产品研发的工程师,必定能够从中获得宝贵的启发与收获。
——陈景东 西北工业大学教授,IEEE Fellow
前言
语音是人与人之间最为自然的交互方式,因而也是最有效的人机交互方式之一。自2014 年开始,以Amazon Echo、Google Home、小米音箱、天猫精灵等智能音箱为代表的硬件终端引发了语音应用的热潮,智能语音产品和应用呈
爆发式增长。如今,语音功能几乎成为智能产品的标配。越来越多的科学家和工程师投身于语音行业,致力于为人们提供更加自然、便捷的人机交互体验。
完整的语音技术链路极为复杂冗长,其中涉及终端、云端、信号、传输、语义、多模态融合等多种算法和工程技术。作者作为从事语音技术的众多工程师中的一员,主要研究内容涉及面向各种智能家电、可穿戴设备、智能座舱、机器人等终端设备上的语音处理问题。对于终端语音处理而言,首先要解决的便是克服设备回声、噪声干扰、房间混响等不利声学因素对目标语音造成的影响,提升目标语音的信噪比和可懂度,为后续处理流程提供质量更高的信号。除此之外,与云端算法相比,算力、功耗等硬件条件的限制,以及数据处理的实时性要求始终是终端算法必须考虑的问题。另外,不同终端设备的使用场景各异,所面临的问题也不尽相同,所以场景的复杂化和碎片化也是终端语音处理的痛点所在。
作者在多年终端语音处理的工作生涯中,对其中的痛点和难点问题深有体会。对于某些应用来说,现有技术能够在一定程度上,或在某些限制条件下解决或缓解痛点问题,使其达到可以实用的水平。但在一些更为复杂、难度更大的实
际问题中,例如,在极低信噪比、更加复杂且动态变化的场景中,现有技术尚不足以实现像人和人之间交流那样更加自然的用户体验。
作者在从事本职工作的同时,也在不断学习新技术,并将其应用于实际工程中。为了达到不断学习、温故而知新的目的,作者萌生出撰写《终端智能语音处理技术与应用》一书的想法。本书深入探讨了面向智能终端设备的语音信号与信息处理技术,结合传统信号处理与深度学习方法,旨在解决家居、可穿戴、机器人及车载等场景中遇到的实际问题。
针对实际工程应用中的关键问题,如噪声抑制、回声消除、房间混响处理等,本书详细讲解了几种重要的算法,包括固定波束形成、自适应波束形成、盲源分离等,并分别讨论了它们的优缺点及应用场景。此外,书中涵盖了基于自适应滤波的回声、混响、干扰联合抑制方法,以及利用深度神经网络进行语音增强、语音活动性检测和关键词检测的技术。为了使模型能够高效地部署于资源受限的终端设备上,本书也涉及模型量化的方法,该方法通过减小模型大小来节约存储空间并降低计算复杂度。
本书不仅提供了理论分析,还分享了作者团队在实际项目中积累的经验。它适合对语音信号和信息处理、人工智能感兴趣的理工科高年级本科生、研究生,以及相关领域的工程师阅读。对于希望深入了解如何将先进的语音处理技术应
用于各类智能设备的读者来说,本书也可以提供相应的指导和参考资源。希望这本书能够起到抛砖引玉的作用,促进相关行业的研究者和工程师之间的交流。
在完成这项工作的过程中,有很多同事、同学、朋友给予了作者非常有力的帮助和支持。他们是:马骁、杨智慧、乔刚、薛斌、李瑞、刘礼、刘章、史鹏腾、田彪、姜南、袁斌、王丹。在此感谢他们从软件和硬件上对算法完善、算法性能提升以及计算效率优化等方面提供的有力支持。在本书的编写过程中,尹玉、方向阳、朱磊同学给出了非常有用的意见和建议,并帮忙指出了书中的公式或书写错误,在此向他们表示衷心感谢!
作者
2025年3月
展开