当前位置: 首页 > 科技观察

语音技术修炼

时间:2023-03-19 18:20:28 科技观察

嘉宾|王强强组织|刘宇尧在上届AISummit主办的AISummit全球人工智能技术大会上,Jobbang语音团队负责人王强强先生为现场观众带来了主题演讲《作业帮语音技术实践》,从语音合成、演讲三个方面测评、语音识别,解读Jobbang的语音技术实践。内容涵盖语音识别中数据的端到端实现与高效利用、高并发场景下的语音发音纠错以及模型。因子分化及抗干扰能力提升。为了让更多对语音技术感兴趣的同学了解当前语音技术的发展趋势和前沿优秀技术实践,现将王强强老师的演讲内容整理如下,希望能给大家带来一些启发。1.语音合成小数据量语音合成传统的语音合成技术,完全合成一个人的声音需要十几个小时甚至更长的录音时间。这对录音师来说是一个不小的挑战,很少有人能保持这么长时间的良好发音状态。采用小数据量语音合成技术,我们只需要用录音机说出的几十句话和几分钟的语音,就可以达到完整的语音合成效果。小数据量的语音合成技术大致可以分为两类。一种是针对注释和语音不匹配的情况。主要有两种处理方式:一种是自监督学习,通过自监督算法学习得到建模单元与音频的对应关系,然后通过对特定人的标注语料库进行finetune来达到更好的效果合成效果;二是通过ASR识别未标注语料,利用TTS合成对偶函数和对偶学习方法,逐步提升TTS的合成效果。对于文本和音频匹配的情况,主要有两种处理方式:一种是使用带标签的语料库构建多语言预训练模型。另一个是基于这个方案。同一种语言的多个说话人都有预训练好的标注数据,利用目标说话人的数据进行Finetune,达到想要的效果。语音合成技术框架作业帮助的语音合成技术框架在音素部分使用了FastSpeech2。FastSpeech2的主要优势是合成速度快。同时,FastSpeech2还集成了Duration、Pitch、EnergyPredictor,可以为我们提供更大的可操作空间;而在声码器的选择上,作业帮语音团队选择了Multi-BandMelGAN,因为Multi-BandMelGAN合成效果好,合成速度很快。多说话人语音合成确定基本框架后,接下来要做的就是多说话人语音合成。多说话人语音合成的共同思路是在Encoder中加入speakerembedding信息,学习特定说话人的信息,然后利用该模型训练多说话人语音合成模型。最后,使用特定的扬声器进行一些简单的Finetune。该方案可以将十小时的录音需求压缩到一小时左右,但在实践中,仍然很难收集到能够满足模型训练标准的一小时录音。小数据量语音合成的目标本质上是用更少的声音合成出相对较好的声音。因此,作业帮语音团队借鉴了M2VOC比赛的冠军方案,最终选择了D-Vector与基于ECAPA的SpeakerEmbedding相结合,进行了三重升级,其中包括SpeakerEmbedding的升级;将FastSpeech2使用的Transformer升级为Conformer;并将Speaker信息添加到LayerNorm中。2.VoiceEvaluationVoiceEvaluationTechnicalFrameworkVoiceEvaluation的技术框架HomeworkHelp中VoiceEvaluation的基本技术框架本质上是利用GOP评分来判断用户单词或句子的发音。但在模型方面,升级为Conformer和CGC+attention-based的完整端到端模型训练流程。GOP非常依赖音和音素,也就是建模单元的对齐程度,所以我们在训练模型的时候,加入了通过GMM模型得到的语料的对齐信息。通过完整的认证模型和相应的对齐信息,可以训练出非常有效的模型。结合两者的长处,GOP得分相对准确。评估系统问题&痛点评估场景天然对延迟敏感,因此延迟和网络是GOP评估系统落地的两大问题。如果延迟高,实时性差,整体用户体验会受到很大影响。另外,如果网络出现问题,用户的网络环境波动大,再加上网络延迟,很容易让用户感知的染色时间超过一秒,会带来非常明显的卡顿感,这会严重影响整个课程的效果。解决方向-算法针对以上问题,可以通过ChunkMask算法解决时延和内存过大的问题。Chunk最多向前看两帧,最多向后看五帧,延迟的问题就解决了。在实践中,真正的算法在测试的时候,它的硬延迟只有50毫秒左右,也就是50毫秒这个词就会被激活,50毫秒在人的感知中是非常快的。所以至少在算法层面,解决了harddelay的问题。这是我们所做的第一级工作。解决方向——端云一体化平台一套端云一体化平台解决高并发和网络传输带来的问题。该平台可以自动判断用户手机的算力是否充足。如果有足够的,本地评估将被优先考虑。如果计算能力不够,请求将被发送到云端进行评估。如果本地有什么问题,它的生命周期也是可控的。通过这个方案,我们解决了瞬时高并发带来的问题。由于部分算力被下发到端,云端只需要保留20%的原有机器即可实现正常运行,大大节省了资源。此外,算法本地化后,延迟问题也得到了解决。对于大规模的评测任务,能够实现良好的支持,为用户带来更好的视听体验。发音矫正需要发音矫正的背景是语境问题和教育资源稀缺。同样,这个痛点也可以通过评估技术来解决。通过评估技术的优化,可以判断发音的正确与否,识别出发音有问题的地方。在技??术选择上,虽然评估系统是基于GOP的稳定评估方案,但GOP方案非常依赖音频和建模单元的对齐。如果开始时间不准确,偏差就会比较大,辨别力就会变差。.因此,原方案不适用于这种校音场景。而GOP的思路就是用一些专家知识来纠正和引导发音。发音校正的漏补在GOP中处理起来会很痛苦,需要太多的人工支持。这就需要更加灵活的方案,所以我们最终选择了ASR方案来进行发音纠错。ASR方案的一大优点是训练过程简单,不需要过多的对齐信息。即使发音错误,也不会对上下文音位的辨别产生太大影响。ASR在处理增删改查方面具有天然的理论和技术优势。所以我们最终选择了一个纯端到端的ASR模型作为我们发音纠错的技术基础。同时,作业帮也在此基础上做了一些优化创新工作。首先,先验文本信息通过Attention模块加入到模型训练中;第二,通过随机替换的方式模拟错误来训练模型,使其具备纠错能力;第三,因为模型没有充分区分,我们的错误已经分层,一些小错误不会被判断错误。通过以上解决方案,大大降低了误报率,同时损失召回率也不是特别大,诊断准确率也得到了提升。3.SpeechRecognitionSpeechRecognitionTechnologyFramework作业组的语音识别技术框架是一个端到端的语音识别框架,相比原来的HMM-GMM/DNN方案有非常明显的优势:首先,它避免了许多复杂的聚类操作和对齐操作;第二,训练过程稍微简单一些;第三,端到端框架不需要人工生成发音词典;第四,可以同时学习音素信息和序列信息,相当于一起学习声学模型和语言模型。当然,它的缺点也很明显。端到端模型一开始很难使用较多的语音或文本数据,标注语料的成本非常高。我们的要求是,内部模型选择的目的必须是要有端到端的生成模型,要跟上最新的算法,要能整合语料模型信息。语音识别系统算法一提到CTC-CRF,就需要先了解CTC。CTC就是为整句建模而生的。CTC出现后,训练整句的声学模型不再需要在音素和音频之间进行对齐。CTC的拓扑结构,一方面引入了一个Blank来吸收静默,可以吸收真正有效建模单元之外的静默。另一方面,它在计算整个句子的概率时,根据π采用动态规划算法,使整个句子的路径在一个相对合理的范围内,可以大大减少计算量。这是CTC非常具有开创性的工作。Jobbang内部使用的CTC-CRF语音识别系统。理解公式,借助CRF拟合整个句子的概率。整句话的概率是一个序列,其输入为X,输出为π(π用上面CTC的拓扑表示),所以称为CTC-CRF。其中,CRF对潜在功能和潜在功能的整个规划非常重要。势函数就是输入为X,输出为πt的条件概率,加上整句话的概率,它们其实对应CRF中的节点和边。CTC-CRF与常用的声学模型思维有一定差异。常用的声学模型包括以下四种DNN-HMM、CTC、RNNT和AED。RNNT的基本条件概率模型是输入X和输出Y的概率,拟合的目标是maxθ及其参数,使这个概率最大化。如CTC的图片所示,CTC的一个假设很明显,即条件无关假设。它的状态与状态之间没有联系,没有考虑它们之间的条件概率关系。RNNT考虑了当前状态和所有历史状态的条件概率,从图中可以清楚地看到。AED也是如此,它考虑了当前状态和历史状态的条件概率。但是CTC-CRF其实并不是一个基于条件概率的局部归一化模型。它是整个句子的归一化模型,是全局归一化的模型。所以我们看到,它不仅要看历史,还要看未来。它实际上可以考虑整个句子的概率信息。这是他们理论上最大的区别。我们对CTC-CRF的使用首先是在Loss层,也就是目前标准中使用的一个Encoder和Decoder,然后加入CTC-CRF和Loss来训练声学模型和端到端的声学模型过程。Loss层上使用CTC-CRFLoss代替原来的CTCLoss。CTC-CRF是在Phone级别建模的,但是对于Attention,我们在做Attention的时候考虑Word级别的建模。电话和单词级别的功能都用于训练模型。最后,关于具体的效果,这是几个开源工具在Aishell1测试集上的效果,同时标注了参数个数。可以看出,基于CTC-CRF,有相对优势。有了算法,理论效果也很好。从业务端的角度来看,业务端还是有区别的,但是所有的业务端都有一个共同的诉求,就是要做到效率最优。为了解决这个问题,就有了热词方案。热词方案可以完美解决这个问题,快速识别出业务方想要识别的词。一种常见的热词方案是将热词的扩展有向图添加到TLG中。上图是一个常见的三级Ngram的WFST解码图。实线代表条件概率,虚线代表回退概率。Jobbang的解决方案是基于前缀自动机的hotword方案,因为hotwords的规模太大,会造成效率瓶颈。非常适合使用前缀自动机来解决多模式字符串的匹配问题,特别是对于某个字符串在、命中或覆盖了热词列表中的某个热词。像她这样的一个序列涵盖了两个热词,即她和她。在这个前缀自动机方案中,搜索完she,直接跳转到她,可以快速找到字符串中包含的多个热词。单词。结论是这个解决方案足够快并且可以节省一些存储空间。该方案在实际使用中也存在一些问题。构建前缀树仍然需要遍历整个前缀树,这是昂贵的。因为要实时添加热词,随时添加,随时生效。为了解决这个问题,最后做了一两棵树,一个是公共前缀树,一个是前缀自动机,就是把用户的热词加入公共前缀树,普通前缀树会立即生效,相当于随时上线,可以激活热词。超过一个阈值后,自动构建前缀自动机,基本满足了一组用户的需求。4.总结以上主要是通过三个方向,每个方向一到两个点。本次技术解密的方法梳理了作业帮语音技术的实现以及实现过程中遇到的问题,以及最终如何输出一套比较能满足业务方诉求的解决方案。但是除了这三点之外,语音组也积累了很多语音的原子能力。评测层次非常细致,连加读、漏读、连读、发声、口音、起伏都搞定了。识别还增加了中英文混合识别、声纹、降噪、年龄歧视等功能。有了这些原子能力,对于业务方在算法层面的支持和服务就更加得心应手了。嘉宾介绍:王强强,作业帮语音技术团队负责人。在加入Jobbang之前,他曾在清华大学电子工程系语音处理与机器智能实验室工作,负责实现语音识别算法和构建工业级解决方案。2018年加入Jobbang,负责语音相关算法的研究和实现。他主导了Jobbang语音识别、评估、合成等算法的实现,为公司提供了一套完整的语音技术解决方案。