这是第一本系统性地介绍声纹识别、声纹分割聚类及声纹在语音识别、语音合成、人声分离等领域中应用的技术书。本书内容全面且紧随时代前沿,不仅涵盖了早至20世纪60年代的经典方法,而且以大量篇幅着重介绍了深度学习时代的最新技术。本书注重理论与实践的结合,除了配备大量实践案例与习题,还有专门章节介绍声纹技术在实际工程部署方面的诸多课题。
本书面向大学与研究机构的学生、教研人员,以及企事业单位从事声纹技术相关工作的工程师、架构师和产品经理等。
ISBN:9787121395291
本书荣获电子工业出版社2020年度优秀作者奖。
本书入选京东好物榜【内容详细人工智能书籍TOP榜】排行第11。
中文课程:
英文课程:
机器之心专栏:【声纹技术入门2讲】
点击此处下载本书试读样章:【下载链接】
随着智能语音助手的普及,声纹技术将成为人工智能领域的下一个增长点。本书系统地介绍了声纹领域的经典方法及学术前沿的研究成果。它从最基础的人耳听觉感知和音频信号处理讲起,除了介绍学术方面的内容,还专门介绍了声纹技术的工程部署,值得每一位语音领域的研究人员细读。
——加拿大工程院院士,Citadel首席人工智能官,IEEE Fellow 邓力
本书全面而系统地介绍了前沿的声纹技术。更令人欣喜的是,对于这样一本颇具时代意义的书籍,作者选择以中文出版。《声纹技术:从核心算法到工程实践》一书的面世,无疑是国内声纹技术研究人员和开发人员的福音。
——京东集团副总裁,京东人工智能研究院常务副院长,IEEE Fellow 何晓冬
声纹技术涉及大量学科的基础知识,且在最近几年发展迅猛,因此学习门槛非常高。本书从最基础的音频信号处理讲起,深入浅出地介绍了声纹识别技术,声纹分割聚类技术,以及声纹技术在语音识别、语音合成、人声分离等领域的应用。即使是语音方面的初学者,也能通过本书快速掌握核心概念和方法。此外,本书配备的编程案例和思考练习题,让本书十分适合作为高校本科生和研究生相关专业课的教材。
——中国工程院院士,清华大学信息学院院长 戴琼海
本书从原理、算法到应用,对声纹识别和分割聚类等技术做了系统和深入浅出的阐述,既有理论深度,又有大量的编程实践和工程优化案例,是在校学生和相关工作者理解和掌握声纹技术及其应用不可多得的宝典。作者严谨务实的科研方法也值得借鉴。
——云知声董事长 梁家恩
本书是这个领域一个重要的里程碑,填补了声纹技术专著方面的空白。本书将对相关技术的进一步快速普及和发展起到积极的推动作用,吸引更多的人才从事语音及声纹技术的研究和开发。
——字节跳动应用机器学习研究组负责人 王崇
本书介绍的声纹技术前沿进展,包括声纹克隆和人声分离等令人印象深刻的应用,让我不禁对其未来展开无限遐想。相信不久之后,能与人们自然地对话,并通过声音来辨别我们每一个人的人工智能将成为现实。更令我期待的是,在人类步入宇宙时代并能够与地外文明进行交流的未来,声纹技术又会在其中发挥怎样的作用。
——科幻作家,雨果奖得主 郝景芳
相同点:
不同点:
动手实践。略。
模版匹配方法的缺陷:
早期统计学方法的缺陷:
开放问题。略。
产生过程:肺部排出气流,声带振动,再经过由喉腔、咽头、口腔和鼻腔等所构成的声道。
感知过程:外耳(包括耳翼、外耳道和鼓膜),中耳(包括三块听小骨),内耳(包括耳蜗)。
基音轨迹。见参考文献[29]。
原理:声波导致振膜振动,从而导致线圈移动,从而切割磁场中的磁力线而产生感应电流。
优点:无需直流工作电压。
缺点:灵敏度(瞬态响应)和扩展后的高频(有时也会是低频)响应方面不如电容式麦克风。
编程题。略。
作用:避免在分帧后的信号上直接计算傅里叶变换导致的吉布斯现象和频谱泄漏所带来的负面影响。
编程题。
快速傅里叶变换可以参考:https://rosettacode.org/wiki/Fast_Fourier_transform
见表2.3。
编程题。略。
声纹验证只关心某个特定的说话人,可以被看作二值判别的问题。声纹辨认一般会有多个候选说话人。
声纹验证对应的应用主要是唤醒和安全。声纹辨认对应的应用场景主要是个性化。
见第57页。文本无关的声纹识别的难点有:
余弦相似度有固定的取值范围[-1,1],比较便于选取全局的判别阈值。
见第3.2.4节。
编程题。
可以参考scikit-learn的官方实现:https://github.com/scikit-learn/scikit-learn/blob/0fb307bf3/sklearn/mixture/_gaussian_mixture.py
见第73页。我们希望将特征空间进行某种非线性变换。但通过核技巧,我们并不需要真的找出显式的非线性变换。
卷积神经网络可以将同样的卷积内核应用到数据的不同位置,从而实现空间上的参数复用。
循环神经网络可以将同样的参数应用于时序信号的不同时间点,从而实现时间上的参数复用。
见第3.4.3节。运行时的推理逻辑包括:各帧独立的逐帧推理,固定窗推理,全序列推理,以及滑动窗推理。
优点:便于理解,容易实现。
缺点:
编程题。略。
好处:将不同说话人的验证分数的差异化考虑到判别过程中,从而减轻全局阈值所带来的问题。
方法:Z-norm,T-norm,TZ-norm,S-norm。
编程题。
MFCC特征的提取见本书第2.5.7节。
神经网络的实现可以参考此处列出的诸多开源实现:https://github.com/wq2012/awesome-diarization#speaker-embedding
编程题。
可参考本书107-109页所介绍的数据增强实例。如果Audio Set数据集不方便下载,也可以使用MUSAN数据集。
编程题。略。
开放问题。略。
见129-131页。声纹识别与语音识别的协同运作有:
见第4.2.3节。在线应用需要用到流式信号处理,即音频数据一边产生,一边作为语音处理引擎的输入,并得到实时的处理结果。
开放问题。略。
声纹识别包含了录入与识别这两个阶段。一旦我们更换了新的声纹识别模型,已有的说话人模型将全部失效。这是声纹识别问题与语音识别等其他语音问题的最大区别。
离线指标:通过在专门的测试数据集上运行声纹识别系统,并根据测试数据中包含的真实说话人身份信息计算得到。
在线代理指标:用于真实使用场景,由于无法获取验证音频的真实说话人身份,只能间接、近似地反映声纹识别产品的性能。
部署方式:全设备端部署,全服务器端部署,复合式部署。
分类依据:
编程题。见第141-143页。
见第4.4.3节。实现方法:轮转法,哈希法,自适应法。
见第4.4.3节。
避免方法:
见图5.3。包括:语音检测,语音分割与说话人转换检测,声纹嵌入码,聚类分析,以及二次分割。
其他多说话人识别技术包括声源分离,连续声纹识别,说话人转换检测。区别详见5.2节。
聚类问题与分类问题的区别见第5.3.1节。聚类问题属于非监督式学习,分类属于监督式学习。分类问题中的类别一般是有明确意义的。聚类问题中,每一个聚类仅表示其在当前特定的数据集合中,与其他数据有所区分,但并没有明确的意义。
监督式聚类问题见第5.5.2节。在监督式聚类问题中,训练数据中的基本事实,不再是每一个单独数据点的类别标签,而是一组数据点作为一个集合,其中每一个点的标签。也就是说,监督式聚类问题存在着标签歧义性。
编程题。略。
编程题。
聚合式分层聚类可以参考:
K-均值聚类可以参考:
编程题。略。
见第5.5.1节。传统的非监督式聚类方法无法从训练样本中学习,也无法利用时序信息。
见第185页。标签歧义性指标签只在一个集合或序列的内部才有意义。不同集合或序列之间的标签无法相互比较。
如何克服:
见第187页。贝叶斯非参数模型通过数据本身决定模型的复杂程度。
无界交织态循环神经网络中的说话人转换模型只是一个表示说话人转换的简单概率分布。
说话人转换检测是一种可以从语音数据中检测出说话人发生转换的时刻的独立模型。
动手实践。略。
见第197-198页。
见第5.5.7节。有两种方法:多任务学习方法和序列转换器方法。
参考开源实现:https://github.com/wq2012/SimpleDER
编程题。略。
传统语音识别框架包含声学模型,上下文模型,发音模型,和语言模型。
端到端语音识别的方法有:基于连接时域分类的模型,基于注意力模型的“听-注意-拼写”模型,以及循环神经网络转换器模型等。
传统语音合成框架包含文本正则化,音素分析,韵律分析和波形合成。
端到端语音合成框架由编码器、解码器和声码器构成。
见第6.4.2节以及参考文献[184]。与声纹识别相比,个性化语音检测模型的大小和计算成本要低很多。与声纹分割聚类相比,个性化语音检测只关心目标说话人,不需要区分其他说话人。
见第6.5.2节。优势有:
相同点:两者都需要用某个特定说话人的声音生成语音。
不同点:
开放问题。略。
见第7.2.2节。情绪、健康状况、精神状况、生理成长和行为都会导致同一说话人的声纹特征出现变化。
编程题。
时频谱增强部分可以参考Lingvo的开源实现:https://tensorflow.github.io/lingvo/_modules/lingvo/core/spectrum_augmenter.html
见第7.2.3节。从访问方式上,分为物理访问攻击和逻辑访问攻击。从具体形式上,分为人为冒名顶替、转录、语音合成、声纹转换这四种。
见第7.4.3节。声纹识别的本地数据难以通过单一客户端获取,而是最好基于由若干个客户端组成的小型集群,并允许集群内的本地数据共享,以对应于训练数据的一小批次数据。
见第7.4.4节。比较著名的集成学习方法有Bootstraping和Boosting。
当我们将集成学习应用于声纹识别模型的时候,集成的目标可以是最终的声纹验证判别结果,也可以是识别的余弦相似度。
见第7.4.5节。同时完成声纹分割聚类与人声分离这两个任务时,面临的挑战包括:
第17页,此处“傅里叶变化”应为“傅里叶变换”。
第32页,差分脉冲编码的英文应该为differential PCM,而非difference PCM。
第62页,正确的英文应该为:
第63页和64页的所有FA应改为FAR,所有FR应改为FRR。(第62页FA与FR分别被称作第一类错误与第二类错误的说法不需要改)
第63页,当以FAR为横坐标,FRR为纵坐标时,此时的曲线名称为检测错误权衡(detection error tradeoff,DET)曲线,而不再是ROC曲线。
此外,这句话有误,应该删除:“值得注意的是,因为等错率表示FA与FR相等时的数值,所以在等错率阈值这一点,真正的错误率是FA与FR之和,也就是等错率的两倍,而非等错率本身。”
第73页,“非线性变化”应为“非线性变换”。
第92页,“100/N次推理”应为“100/(100-N)次推理”。
第107页,等式(3.55)等号右边,求和符号的下标应该是i=1,求和符号后面的h下边应该为i而非t。
第115页,斯坦福国际研究所的英文应为SRI International。