声纹技术:从核心算法到工程实践

声纹技术:从核心算法到工程实践
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2020-09
版次: 1
ISBN: 9787121395291
定价: 99.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 292页
41人买过
  • 这是*本系统性地介绍声纹识别、声纹分割聚类及声纹在语音识别、语音合成、人声分离等领域中应用的技术书。本书内容全面且紧随时代前沿,不仅涵盖了早至 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 全服务器端架构 . . . . . .
  • 内容简介:
    这是*本系统性地介绍声纹识别、声纹分割聚类及声纹在语音识别、语音合成、人声分离等领域中应用的技术书。本书内容全面且紧随时代前沿,不仅涵盖了早至 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 全服务器端架构 . . . . . .
查看详情