关于microsoft:从创建神经声音到成功完成PoC

1次阅读

共计 6282 个字符,预计需要花费 16 分钟才能阅读完成。

自定义神经语音 (自定义神经语音,CNV) 是基于 Azure 认知服务的语音性能,可用于创立高度真切的类人语音和实现文本输出至语音的转换。借助该性能,咱们可实现个性化客户体验或通过自定义角色晋升品牌形象,并同时以多种语言实现本地化与可及性。这些还仅仅是开始,作为一项令人惊异的技术成就,其未来的利用前景不可限量。

本文旨在记录微软技术客户团队实现某个概念验证 (PoC)我的项目的一些教训。该项目标指标是 CNV,客户是一家大型媒体内容提供商。具体内容上,本文不会从技术上深入探讨自定义神经语音模型及其在性能上的独特性与有限潜能,而是分享从业者角度创立神经声音并胜利实现概念验证的过程。

另一个背景是,文中提到的客户十分心愿取得适应各种用例且高度真切的类人语音。其中一个具体的用处是在各种流动期间模拟人声公布资助布告。通常状况下,须要招募配音员在流动之前录好宣传语。为此须要起草具体的脚本,招募配音员需返回业余工作室进行录制,最初能力按计划在流动上播放。就实操而言,这样一个过程可能须要破费数周的工夫!然而,如能用人声发明合成声音,相干制作周期可大幅缩短,周转也会放慢很多,这一点让客户十分感兴趣。PoC 的后果十分明确,神经语音能够成为降本提效的无效动作,并且它也有助于维持品牌的认知度。

意识自定义神经语音(专业版)

CNV 提供的自定义神经语音精简版性能能够让任何人用 20-50 个训练样本疾速实现功能测试,所需工夫不超过 20 分钟!该性能十分优异,能够让用户把握流程和相干需要的细节差别。然而,客户总会心愿更充沛地利用 CNV,并因而你会想要创立和部署本人的业余语音。为何会如此?简而言之,精简版与专业版的语音品质有显着的差别,因为专业版的语音须要更长的训练工夫(20 分钟 vs. 近一天)和训练样本量。更重要的是,从学习的角度来看,能创立本人的业余语音会很有成就感,有助于建设对相干技术的信念。对于专业版用户来说,接下来要做的应该就是部署,其中又能够用到更多的工具和定制选项。
以下是一些应用步骤和要点:

▍理解业余语音的审批流程和 Responsible AI 的要求

第一个关键步骤就是填写表格,从而确保您的预期用例能失去核准。就概念验证而言,这一步仿佛有点多余,但这里的关键在于要意识到所波及性能的微小潜能。设想一下,如能通过概念验证过程创立一个出名人物的神经声音,居心叵测的人就可能利用它做出虚伪或误导性申明。想到这些,大家兴许能了解,为何肯定要明确定义用例,并且 Microsoft 和客户单方都肯定要确保相干流程是正当且公开的。应用 CNV 的人肯定要有责任心,您也肯定要从本人做起,充沛思考和明确本人的应用目标。此外,认知服务的无限拜访性能也十分重要。

▍定义角色、抉择脚本和安顿工夫

  • 角色
    一开始我曾十分腻烦“角色定义”,但起初我才意识到,这个步骤能为语音培训打下十分重要的根底。角色能够被看作一种主观形容,以及任意两种语音之间的绝对分类。在前期,角色会成为剖析与评估语音的重要依据。不同于浏览脚本与录制声音,在理论对话中,即便是“通用对话语音”也可能存在很难明确或充分认识的奥妙差别。
  • 脚本
    Microsoft 以多种语言提供一系列基础性的通用、聊天和客户服务脚本。然而,如心愿取得实用于特定场景的特定角色,最好能有针对性地设计相应的脚本,这样能提供更好的训练数据,实现合乎特定后果且更实在的模型。请留神,尽管产品文档就训练脚本数量提供了指南(至多 +300 到 +2k),您录制的内容量还是要略高于预期的最大值,因为在上传时零碎可能会过滤掉品质较差的输出(导致总数缩小)。
  • 工夫安顿
    依据我的教训,超过 300 个脚本的工作量至多要花费 2- 3 个小时。除录制(大多不超过 10 秒)以外,这些工夫还要用于标记、文件挪动和编写脚本等操作工作,以及在上传 Speech Studio 之前主动执行一些格局转换工作。

    ▍克服困难维持角色的一致性

    这一点有时很难把握,但正因为如此我对配音员的工作有了全新的认知!在进行最早的 20-30% 录音时,维持角色个性并不艰难,但持续坚持下去会越来越难。因为人会呈现“录音疲劳”并心愿赶快完结,这时谈话就总会不那么天然,导致声音成果偏离角色设定。这一点很重要,因为录音品质会影响训练品质。输出低于规范的话,最终失去的模型也不会好。除非您无意谋求某种角色的声音,否则在最终评估可能会疏忽角色一致性。如果只是想录本人的声音,您能够不在意这一点,但要意识到最终后果会受影响。因为这些起因,配音员才会在工作室中,在老师和其他人反对下,破费大量工夫进行练习,以此来确保更高质量的录音输出。

    ▍利用脚本和辅助性能主动解决筹备工作

    就模型的加载、训练和部署而言,产品团队创立的自定义神经语音平台可能提供十分杰出的低代码体验,但在理论加载和训练数据之前咱们仍有许多筹备工作须要实现。这些工作依据具体情况会有些差别。依据我的教训,在没有装备业余工具套件的业余工作室的状况下,编写几个 Python 脚本会十分有益于推动工作流程。这些脚本可用于重命名文件、将 MP4 转换为 WAV、压缩文件以及主动将音频文件与正确的脚本配对。点击此处可拜访存储库并查看其中的一些脚本示例。

    ▍基于前期解决 Studio 录音室的反馈来改良训练样本

    在沉重的文件筹备工作实现后,录音室接下来的应用步骤会非常简单间接。除明确的提醒以外,录音室在应用上的另一个次要亮点是在胜利上传解决数据后可提供剖析综述(见下图)。除发音、信噪比 (SNR) 和脚本持续时间剖析以外,该综述还提供了一些重要的正告和领导,可帮忙大家晋升脚本多样性并由此取得更好的模型。举例来说,我的脚本就经常出现“感叹词有余”的问题。尽管这些小问题不会影响流程的推动,解决它们有助于从细节上晋升最终模型的品质。通过下图可知,导入的 317 条话语中只有 313 条符合条件,加载的语音长度为 22 分钟左右。因而,依据具体录制软件和训练方法,大家可能须要录制超过指标数量的话语,请务必思考到这一点。

▍默认语句和部署

默认语句和部署。模型处理完毕后,咱们能够应用约 100 个默认语句来试听和评估准确度。零碎预选的是一系列与训练样本不同的语句。在试听时,有些模型的体现可能会让大家惊叹,但更重要的是通过更多的直观感触来理解改良的方向。这一步实现后,大家就能够用 CNV 门户部署模型了,即关上一个 REST 端点并抉择一个可拜访它的编程语言。咱们也能够应用音频内容创作自定义音频输入。作为低代码环境,该工具可用于输出文本、保留或导出输入内容以及调整语调和发音等。

帮忙客户意识自定义神经语音

在理解了 CNV 业余语音的工作流程(第一次总是最难的)后,大家会更有信念领导客户实现整个过程。依据客户的具体情况,可能须要思考到其余变量,包含请配音员返回业余录音棚进行录音,明确所需技术支持与领导,以及依据单方数据筹备状况确定反对的力度。在现实状况下,客户无需太多监督即可自行治理脚本生成、录制过程以及相干调度、格式化等其余工作。然而,鉴于所涉用例 / 流程绝对较新鲜,给予更多反对还是须要的。

相干更多经验总结如下:

▍如前所述,要确保客户理解与业余配音员单干的审核流程

如前所述,这个关键步骤的作用是让客户能理解和遵行 Responsible AI 准则。另外,就业余配音员而言,同样重要的是让客户理解配音人才相干披露的重要性,包含促成用例实现的教训与办法。

▍强烈建议应用业余配音员

配音员们都通过专门的培训,能够基于特定角色和用例实现特定的声音体现(包含发音和语调)。他们可能为了更好地体现剧本和角色而一次进行数小时的录制。对于 CNV 而言,这样的体现是角色特定训练的要害。在向客户介绍时,让我的项目团队成员之一间接进行录音演示会更方便快捷。只管咱们最终延聘了业余的配音员,但预先咱们还是发现了前述办法的劣势。大多数人没有承受过专业培训,一旦感到疲劳就会想要尽快完结工作,并由此导致录音品质的继续降落。这种状况可能会导致训练样本的品质降落,最终取得的声音听起来可能不像预期的那样天然。因为绝对于不停反复的脚本浏览,失常对话时人的精力会更充分,也不会有太多进展和重音等。业余的配音员会意识到这一点,并会更加专一地解决每个剧本。此外,随着越来越多的配音员抉择近程工作,在家中建设业余的演播室,呈现了一个意想不到的益处就是当初咱们能够拆分录制过程,无需再间断录制很长时间。

▍在首批录音时肯定要寻求领导和反对

在最后的录音环节,咱们的产品团队安顿了业余的音响工程师为配音员提供反馈和领导。传统的录音工作也存在相似的反馈机制,即由多个听众 / 导师向配音员提供实时的反馈。这样达到反馈有助于配音员更好地把握角色特点、脚本流程和一些操作要点,使其可能更快地进入状态。另外,咱们还保持要求配音员记录每个脚本或每条话语的独立音频样本。依据产品文档,这里的一个话语段应大抵等同于一个句子。这个要求很重要,起因是录音在实现时通常会被合并入单个的音频文件,但在 CNV 模型训练阶段又须要将其离开。

▍尽可能针对用例进行训练

只管深度学习在继续疾速倒退,专门针对预期用例在领导下进行训练依然有其劣势。只管可用于多种用例的语音在通用性上有肯定劣势,但要想进步 CNV 模型的品质,咱们就须要更好的训练数据,而非“任何听起来不错的声音”。客户往往会记录第一次训练过程的工夫和费用,并在衡量后想要更通用的模型。然而,为获得最佳的后果,在放弃输出多样性的同时,咱们应尽可能晋升训练的针对性,这样能力体现语音在自然环境中的应用特色。在本文所述实例中,咱们曾经确认了角色定义,只是特定陈说的要求不是十分严格,因而咱们抉择将客户脚本与 Microsoft 存储库中提供的通用和聊天记录相结合。值得注意的是,产品团队正在踊跃开发的一项性能是容许 CNV 模型在无需任何额定训练数据的状况下实现多种话语格调和表白不同的情绪。在某种程度上,这个性能可加强语音后果的多样性和实用性,因为无需专门针对对应情绪或格调再进行训练。

▍建模加载前的数据筹备要点

实现高质量录音(参考下方的上传数据分析图)后,下一步就是确保录音与配对的正确匹配和适当标准化。该步骤的几个要点包含:

  • 确保录音有最高采样率
    所示实例能够抉择 16 位和 24 位录制数据。咱们抉择了后者,因为对 CNV 来说,这个位数越高越好(因而不举荐应用 16KHz)。
  • 将录音与正确的脚本配对
    在正规录制场景中,配音员要专一于为脚本配音,而其他人负责管理理论录制和后台任务,确保脚本与音频是匹配的。在本文所述实例中,咱们要求配音员在业余的家庭工作室中实现录制,所有后台任务则由咱们负责。后果,咱们最终取得的音频文件有不同的标记,很难将它们与原始脚本配对,并且无奈保障原始信息失去了精确出现。此外,这些文件中还包含反复和空白文件以及批改局部重读的重录文件。在筹备 600 多条脚本的状况下,咱们最终取得的录音超过了 750 条,为过滤掉有效的文件,咱们须要留神以下几点:

    • 正确匹配音频文件与脚本

    因为无奈依照原始脚本程序解决,并且音频文件的标记不同,咱们通过 Speech Service 的批量转录服务解决了音频文件。超过 750 条录音在 10 分钟内被处理完毕,且输入的文本模式有多种。其中,最靠近领导规范的是词汇格局,包含数字、特殊字符等都失去了清晰的展示。无关批量转录触发代码的更多详情请参见此处。

    • 应用脚本语言主动执行数据清理和格式化

    这两项操作须要肯定水平的自动化:

  • 数据清理
    包含删除空音频文件(例如在上述批量转录后没有词汇或显示值的文件)、革除反复文件 / 脚本以及依据句点或问号计数辨认多句脚本。无关更多详情请参考此处的代码。
  • 标准化
    这个过程肯定水平上可通过脚本主动执行,但很多标准化作业依然须要人工干预,包含将“BTW”改为“by the way”,将“ABC”等首字母缩略词改为“A B C”,数字大写(“1”改为“one”),特殊字符(“%”改为“percent”)等。就标准化而言,抉择词汇转录会有肯定劣势。

    ▍借助跨语言模型推动面向新市场的个性化定制

    跨语言模型(仍处于预览阶段)领取基于主语言(在本例中为英语)触发其余语言的自定义神经模型。这个性能很受欢迎,因为通过它能够在放弃角色定义的同时实现多语言声音。与次要的英语模型相比,其余语言模型的训练工夫更短,不便客户将既有品牌扩大到非英语市场。跨语言模型的一大翻新是反对同时输出英语和外语,并同时辨认两种语言!而且,在应用英语时甚至能够带有外国口音!

    揭晓后果……合成语音的评估

    对于合成语音,有一点自圆其说的是,它的创立波及到谨严的深度学习技术,但判断它的好坏却还是要依赖人的主观感触。不论如何,最终的指标始终是让客户确信创立的语音实用于预期目标。以下是有助于领导评估过程的几个因素:

    ▍训练样本数

    在客户场景下,咱们应用 650 多个波及各种语句构造的独立录音样本实现了训练。最终失去的语音品质不错,只管因角色设定(贴近播音员的语言格调)的起因,长句的发音听起来还是有一些不天然。依照产品文档的阐明,在业余录音环境下的业余语音训练最多可用到 2,000 个不同的样本。在达到特定下限之前,更多的数据总是有助于改善语音的品质。

    ▍针对特定用例进行训练

    创立合成声音的一个要害就是特异性。在很多状况下,客户可能只想体验一下技术和 / 或须要更通用的语音来适应更宽泛的应用场景。在后一种状况下,预设的 Azure 语音更加实用,因为这些语音没有特定的角色设定,只需听起来天然即可。然而,如能依据预期用例训练更多的语音,取得更好后果的可能性就越高。反过来说,在针对特定目标或用例进行训练后,所获语音的通用性也是很难评估的。

    ▍肯定要在整个录音过程中维持角色一致性

    如前所述,反馈、领导和录音一致性都十分重要。因而,把录制过程分为多天实现并尽量早地取得反馈有助于升高录音工作的疲劳感和晋升输出的品质。绝对应的是,每个团队总须要在录音棚中破费大量工夫能力取得听起来“恰到好处”的脚本。咱们肯定要器重这些过程,但取得一次胜利的教训将有助于缩小过程中的冗余步骤。

    ▍是否实在要基于环境判断

    语音的评估要思考其应用环境,包含其中是否有大量乐音或其余乐声,又或因一些烦扰肯定要特地揭示能力让普通人有可能分辨“合成的”语音。后一点有可能是确定人声“真实性”的一个要害。鉴于 PoC 的局限性,咱们没有机会在实在环境中进行测试,在评估时须要思考到这一点。

    ▍通过模仿“图灵测试”定量领导评估过程

    作为外部练习过程之一,咱们邀请三名参与者对 10 个录音样本进行间断两轮评级,并基于打分判断其是否是真的人声。咱们把这个过程称为模仿“图灵测试”,其后果很有意思。如下表所示,辨别人声和神经语音的规范并非始终不变。某些短语、某些单词发音形式、单词之间的进展、背景乐音等因素的变动都可能导致评估规范发生变化。这里要留神的是,邀请多人参加评估有助于打消集体的偏见,让评估意见更具备普适性。下表后果的评估范畴也包含 Microsoft 客户团队创立的 CNV 专业版语音(非客户的 CNV 语音)。该语音的训练应用的是最低数量的独立输出(300 个)、次优的录音环境(参见第一张图表所示 SNR)和非专业的配音员。只管有这么多不利条件,就下表后果而言,最终取得的神经声音还是有足够可信的变动水平。

下列后果的有三类解释—即“精确”、“像人声,但理论是合成声”和“像合成声,但理论是人声”。每个参与者被要求判断每个录音样本是真人还是合成声音。每个正确的判断会被计入“精确”类,每个谬误的判断会被计入后两类中的一类。每位参与者每一轮的总得分应等于 100%。

正文完
 0