关于我们
![]() ![]() |
声纹技术:从核心算法到工程实践 读者对象:本书面向广大人工智能领域爱好者,大学与研究机构的学生、教研人员,以及企事业单位从事语音识别相关工作的工程师、架构师和产品经理等。
这是第一本系统性地介绍声纹识别、声纹分割聚类及声纹在语音识别、语音合成、人声分离等领域中应用的技术书。本书内容全面且紧随时代前沿,不仅涵盖了早至 20世纪 60 年代的经典方法,而且以大量篇幅着重介绍了深度学习时代的最新技术。本书注重理论与实践的结合,除了配备大量实践案例与习题,还有专门章节介绍声纹技术在实际工程部署方面的诸多课题。本书面向大学与研究机构的学生、教研人员,以及企事业单位从事声纹技术相关工作的工程师、架构师和产品经理等。
美国谷歌公司资深软件工程师、声纹识别与语言识别团队主管。作者毕业于清华大学自动化系,后取得美国伦斯勒理工学院计算机工程专业博士学位,曾在美国亚马逊公司参与亚马逊智能音箱语音助手Alexa的研发。在谷歌任职期间,作者带领团队将先进的声纹技术部署到了大量产品中,使得谷歌智能音箱成为市面上第一款支持多用户模式的同类产品。此外,作者在声纹识别、声纹分割聚类、人声分离、语音检测、语言识别及语音合成等诸多领域拥有大量专利,发表过多篇重量级论文,并开创了监督式声纹分割聚类及声纹定向人声分离这两个新兴研究方向。作者的工作曾被VentureBeat、TechCrunch、Engadget、CNET等国际著名科技媒体专题报道。
1 声纹技术的前世今生 1
1.1 什么是声纹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 最早的声纹技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 声纹技术的发展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3.1 声纹技术与音频信号处理 . . . . . . . . . . . . . . . . . . . . . . 5 1.3.2 模板匹配方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3.3 早期统计学方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3.4 高斯混合模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.3.5 联合因子分析与 i-vector . . . . . . . . . . . . . . . . . . . . . . . 9 1.4 大变革:深度学习时代的来临 . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5 新的机遇:智能语音助手的普及 . . . . . . . . . . . . . . . . . . . . . . . 11 2 音频信号处理基础 14 2.1 欲懂声纹,先学音频 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2 声学基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.1 语音的产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.2 正弦波 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.3 频谱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.4 听觉与感知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.5 听觉的非线性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3 音频信号基础概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.1 模拟音频信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.2 模拟转数字:采样与量化 . . . . . . . . . . . . . . . . . . . . . . 27 2.3.3 音频编码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.3.4 音频文件格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.5 动手实践:SoX 程序 . . . . . . . . . . . . . . . . . . . . . . . . 35 2.4 从信号到特征:短时分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.4.1 传统特征分析的不足 . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.4.2 分帧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.4.3 窗函数处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.4.4 帧叠加与帧采样 . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.5 常用的音频特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.5.1 时域特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.5.2 从时域到频域:傅里叶变换 . . . . . . . . . . . . . . . . . . . . 45 2.5.3 频谱、倒谱、时频谱和功率谱 . . . . . . . . . . . . . . . . . . . 48 2.5.4 感知线性预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.5.5 梅尔倒谱系数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.5.6 功率正则化倒谱系数 . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.5.7 动手实践:用 LibROSA 提取 MFCC 特征 . . . . . . . . . . . . 50 3 声纹识别技术 54 3.1 声纹识别:声纹技术的核心 . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.1.1 名称与概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.1.2 按任务分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.1.3 按文本内容分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.1.4 系统流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.2 声纹识别的评价指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.2.1 相似匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.2.2 录入集与验证集 . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.2.3 ROC 曲线及曲线下面积 . . . . . . . . . . . . . . . . . . . . . . . 62 3.2.4 等错率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.2.5 最小检测代价函数 . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.2.6 辨认准确率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.3 深度学习之前的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.3.1 早期方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.3.2 高斯混合模型方法 . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.3.3 高斯混合模型-通用背景模型 . . . . . . . . . . . . . . . . . . . . 70 3.3.4 高斯混合模型-支持向量机 . . . . . . . . . . . . . . . . . . . . . 72 3.3.5 联合因子分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 3.3.6 i-vector 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.4 基于深度学习的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.4.1 关于深度学习的简单介绍 . . . . . . . . . . . . . . . . . . . . . . 79 3.4.2 声纹识别中的神经网络 . . . . . . . . . . . . . . . . . . . . . . . 84 3.4.3 运行时的推理逻辑 . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.4.4 声纹识别中的损失函数 . . . . . . . . . . . . . . . . . . . . . . . 93 3.5 声纹识别中的数据处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 3.5.1 声纹识别的数据需求 . . . . . . . . . . . . . . . . . . . . . . . . . 102 3.5.2 数据预处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 3.5.3 数据增强 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 3.5.4 多数据集训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 3.6 声纹验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.6.1 验证方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.6.2 分数正则化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.7 常用数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 3.7.1 TIMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 3.7.2 VCTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 3.7.3 LibriSpeech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 3.7.4 LibriVox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 3.7.5 VoxCeleb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 3.7.6 CN-Celeb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 3.7.7 BookTubeSpeech . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 3.7.8 维基百科语音库 . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 3.7.9 DeepMine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4 声纹识别的工程部署 120 4.1 从模型到产品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.1.1 模型不等于产品 . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.1.2 软件工程基本概念 . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.2 声纹识别常见工程问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.2.1 录入阶段的工程问题 . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.2.2 识别阶段的工程问题 . . . . . . . . . . . . . . . . . . . . . . . . . 128 4.2.3 语音处理引擎:流式信号处理与计算图 . . . . . . . . . . . . . 131 4.2.4 模型版本迭代 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 4.2.5 在线代理指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 4.3 全设备端部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.3.1 部署方式的分类依据 . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.3.2 版本迭代更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.3.3 资源限制:设备端的最大挑战 . . . . . . . . . . . . . . . . . . . 141 4.3.4 模型量化技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 4.4 全服务器端部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 4.4.1 全服务器端架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 4.4.2 版本迭代更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 4.4.3 负载均衡与故障处理 . . . . . . . . . . . . . . . . . . . . . . . . . 149 4.5 复合式部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.5.1 声纹信息的敏感性 . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.5.2 复合式架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 4.5.3 版本迭代更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 5 声纹分割聚类技术 156 5.1 分割聚类:更好地理解对话语音 . . . . . . . . . . . . . . . . . . . . . . . 156 5.1.1 关于名称与历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 5.1.2 常见应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 5.1.3 常见通用架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 5.1.4 声纹分割聚类的不同任务类型 . . . . . . . . . . . . . . . . . . . 162 5.2 声纹分割聚类与多说话人识别 . . . . . . . . . . . . . . . . . . . . . . . . 163 5.2.1 声源分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 5.2.2 连续声纹识别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 5.2.3 说话人转换检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 5.3 聚类分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 5.3.1 聚类不等于分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 5.3.2 在线聚类技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 5.3.3 离线聚类技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 5.3.4 基于离线聚类的在线声纹分割聚类 . . . . . . . . . . . . . . . . 178 5.4 二次分割方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 5.4.1 基于分类的二次分割 . . . . . . . . . . . . . . . . . . . . . . . . . 180 5.4.2 基于隐马尔可夫模型的二次分割 . . . . . . . . . . . . . . . . . 181 5.5 监督式方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 5.5.1 聚类方法的一些问题 . . . . . . . . . . . . . . . . . . . . . . . . . 182 5.5.2 从传统聚类到监督式方法 . . . . . . . . . . . . . . . . . . . . . . 184 5.5.3 无界交织态循环神经网络 . . . . . . . . . . . . . . . . . . . . . . 187 5.5.4 判别神经聚类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 5.5.5 置换不变性训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 5.5.6 端到端模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 5.5.7 与语音识别的联合训练 . . . . . . . . . . . . . . . . . . . . . . . 200 5.6 声纹分割聚类的评价指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 5.6.1 评价指标的置换不变性 . . . . . . . . . . . . . . . . . . . . . . . 203 5.6.2 分割聚类错误率 . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 5.6.3 词分割聚类错误率 . . . . . . . . . . . . . . . . . . . . . . . . . . 205 5.6.4 其他指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 5.7 常用数据集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 5.7.1 CALLHOME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 5.7.2 NIST SRE 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 5.7.3 ICSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 5.7.4 Fisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 5.7.5 AMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 6 声纹技术的其他应用 211 6.1 声纹的力量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 6.2 用于语音识别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 6.2.1 语音识别技术概述 . . . . . . . . . . . . . . . . . . . . . . . . . . 212 6.2.2 声纹自适应声学模型 . . . . . . . . . . . . . . . . . . . . . . . . . 213 6.3 用于语音合成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 6.3.1 语音合成技术概述 . . . . . . . . . . . . . . . . . . . . . . . . . . 214 6.3.2 声纹克隆:合成任意说话人的声音 . . . . . . . . . . . . . . . . 218 6.4 用于语音检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 6.4.1 语音检测技术概述 . . . . . . . . . . . . . . . . . . . . . . . . . . 220 6.4.2 个性化语音检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 6.5 用于人声分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 6.5.1 人声分离技术概述 . . . . . . . . . . . . . . . . . . . . . . . . . . 221 6.5.2 定向人声分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 6.6 声纹转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 6.7 声纹还原度测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 6.7.1 音频处理的声纹保留性质 . . . . . . . . . . . . . . . . . . . . . . 227 6.7.2 音频编码格式的还原度测试 . . . . . . . . . . . . . . . . . . . . 228 6.7.3 语音合成技术的还原度测试 . . . . . . . . . . . . . . . . . . . . 229 7 声纹技术的未来 231 7.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.2 声纹技术的挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.2.1 对信道变化的鲁棒性 . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.2.2 对声纹变化的鲁棒性 . . . . . . . . . . . . . . . . . . . . . . . . . 232 7.2.3 反欺诈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.3 对更多数据的需求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 7.3.1 更为多样的数据增强 . . . . . . . . . . . . . . . . . . . . . . . . . 235 7.3.2 用于训练的合成语音 . . . . . . . . . . . . . . . . . . . . . . . . . 237 7.3.3 自动数据采集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 7.4 声纹技术的未来研究方向 . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 7.4.1 对抗学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 7.4.2 多模态说话人识别 . . . . . . . . . . . . . . . . . . . . . . . . . . 240 7.4.3 联邦学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 7.4.4 集成学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 7.4.5 同时完成声纹分割聚类与人声分离 . . . . . . . . . . . . . . . . 245 7.5 结语 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 中英词汇对照 248 参考文献 259
你还可能感兴趣
我要评论
|