news 2026/5/23 14:21:07

可扩展框架让多个文本转语音模型共存

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
可扩展框架让多个文本转语音模型共存

可扩展框架让多个文本转语音模型共存

得益于一套简单的抽象设计,不同架构的模型可以被集成,并为特定的硬件加速器进行优化。

像Alexa这样的语音助手通常拥有多种不同的语音合成器,它们在表现力、个性、语言和说话风格等属性上各不相同。支撑这些不同应用的机器学习模型可能具有完全不同的架构,将这些架构集成到单一的语音服务中可能是一个耗时且具有挑战性的过程。

为了让这个过程变得更简单、更快捷,某中心的文本转语音团队开发了一种通用模型集成框架,使我们能够以快速且可扩展的方式定制生产级语音模型。

模型多样性

最先进的语音模型通常使用两个大型神经网络来从文本输入合成语音。

第一个网络称为声学模型,以文本作为输入并生成梅尔频谱图(一种随时间表示语音的音高和能量等声学参数的图像)。第二个网络称为声码器,以梅尔频谱图作为输入并生成语音的音频波形作为最终输出。

虽然我们已发布了一种支持多种说话风格的通用声码器模型架构,但我们仍然使用不同的声学模型架构来生成这种多样化的说话风格。

声学模型最常见的架构依赖于注意力机制,该机制能学习输入文本的哪些元素与输出频谱图的当前时间“帧”最相关。通过这种机制,网络隐式地对文本不同部分的语音持续时间进行建模。

同一模型也使用“教师强制”技术,即用先前生成的语音帧作为输入来生成下一帧。虽然这种架构可以生成富有表现力且听起来自然的语音,但它容易出现清晰度错误,例如含糊不清、丢词或重复,并且错误很容易从一帧累积到下一帧。

更现代的架构通过显式地建模文本块的持续时间并并行生成语音帧来解决这些问题,这比依赖先前生成的帧作为输入更高效、更稳定。为了对齐文本和语音序列,模型只需“上采样”或重复其对文本块(其表示向量)的编码,重复次数由外部持续时间模型指定的语音帧数决定。

在不同语境(如Alexa问答、儿童故事讲述和智能家居自动化)中使用的复杂文本转语音模型的持续演进,催生了对能够处理所有这些模型的可扩展框架的需求。

集成挑战

要将声学模型集成到生产中,我们需要一个组件来处理输入的文本话语并返回梅尔频谱图。第一个困难在于,语音通常是以顺序块的方式生成的,而不是一次性全部合成。为了最小化延迟,我们的框架应尽快返回数据。一个将整个模型包装在代码中并通过单一函数调用处理所有内容的简单解决方案,其速度将是不可接受的。

另一个挑战是调整模型以适应各种硬件加速器。例如,为了从高性能的某中心Inferentia运行时中获益,我们需要确保所有张量都具有固定大小(在模型编译阶段一次性设置)。这意味着我们需要:

  1. 添加将较长话语拆分为适合特定输入大小(取决于模型)的较小块的逻辑;
  2. 添加确保正确填充的逻辑;
  3. 决定哪些功能应由模型直接处理,哪些应由集成层处理。

当希望在通用GPU上运行同一模型时,我们可能不需要这些改动,如果框架能够在不同上下文之间轻松切换将非常有用。因此,我们将文本转语音模型解耦为一组更专门的集成组件,这些组件能够执行所有必需的逻辑。

集成组件

集成层将模型封装在一组能够将输入话语转换为梅尔频谱图的组件中。由于模型通常在两个阶段运行——预处理数据和按需生成数据——因此使用两种类型的组件很方便:

  • SequenceBlock:它接收一个输入张量并返回一个转换后的张量(输入可以是应用另一个SequenceBlock的结果)。
  • StreamableBlock:它按需生成数据(例如,帧)。作为输入,它接收另一个StreamableBlock的结果(块可以形成管道)和/或由SequenceBlock生成的数据。

这些简单的抽象为创建声学模型的变体提供了极大的灵活性。以下是一个示例:

使用SequenceBlock和StreamableBlock抽象构建的声学模型示例。

该声学模型由以下部分组成:

  1. 两个编码器(SequenceBlocks),将输入文本嵌入转换为一维表示张量,一个用于编码文本,一个用于预测持续时间;
  2. 一个上采样器(StreamableBlock,以编码器的结果作为输入),根据编码器返回的数据创建中间长度的语音序列;
  3. 一个解码器(StreamableBlock),生成梅尔频谱图帧。

整个模型被封装在一个名为StreamablePipeline的专用StreamableBlock中,它恰好包含一个SequenceBlock和一个StreamableBlock:

  • SequenceBlockContainer是一个专门的SequenceBlock,由一组能够运行神经网络编码器的嵌套SequenceBlocks组成;
  • StreamableStack是一个专门的StreamableBlock,它对上采样器的输出进行解码并创建梅尔频谱图帧。

集成框架确保所有组件以正确的顺序运行,并且根据组件的特定版本,它允许使用各种硬件加速器。

集成层

声学模型作为插件提供,我们称之为“附加组件”。一个附加组件包含导出的神经网络,每个网络表示为一组命名的符号和参数(编码器、解码器等)以及配置数据。其中一个名为“stack”的配置属性,指定了应如何将集成组件连接在一起以构建可工作的集成层。以下是描述上述架构的stack属性代码示例:

'stack'=[{'type':'StreamablePipeline','sequence_block':{'type':'Encoders'},'streamable_block':{'type':'StreamableStack','stack':[{'type':'Upsampler'},{'type':'Decoder'}]}}]

这个定义将创建一个包含StreamablePipeline的集成层,其中:

  • 包含附加组件中指定的所有编码器(框架将自动创建所有必需的组件);
  • 包含一个上采样器,为解码器生成中间数据;
  • 包含附加组件中指定的解码器,生成最终的帧。

JSON格式允许我们进行简单的更改。例如,我们可以创建一个在特定硬件加速器上并行运行所有序列块的专用组件,并将其命名为CustomizedEncoders。在这种情况下,配置规范中唯一的更改就是将名称“Encoders”替换为“CustomizedEncoders”。

使用具有额外诊断或数字信号处理效果的组件运行实验也变得轻而易举。新组件的唯一要求是扩展两种通用抽象之一;除此之外,没有其他限制。即使用一个完整的嵌套序列到序列堆栈替换一个StreamableBlock,根据框架设计也是完全可以的。

该框架已在生产中使用。它是我们最近成功集成最先进的文本转语音架构(无注意力机制)和遗留模型的重要支柱。FINISHED
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 4:28:35

Java程序员进军大模型:转型指南+学习路径+高薪岗位全解析_程序员转行AI大模型教程(非常详细)

文章介绍了Java程序员转型大模型开发的完整路径,包括学习步骤、Java程序员的独特优势、大模型时代的价值技术岗位、AI工程师需掌握的知识体系,以及大模型风口的就业前景。文章提供了系统化的学习资料和路线,帮助Java程序员抓住AI时代机遇&…

作者头像 李华
网站建设 2026/5/14 11:35:01

从24G到8G:大模型调存优化全攻略(新手保姆级)

显存就像海绵里的水,只要挤一挤总还是有的。很多时候显存不够,不是你的显卡那太差,而是你还没有掌握几招“空间魔法”。今天,我把压箱底的大模型动力显存优化秘籍分享给,让你的3060也能跑出生产力! 一、探秘…

作者头像 李华
网站建设 2026/5/12 9:32:29

PLC的润滑油灌装线自动控制系统设计

PLC的润滑油灌装线自动控制系统设计 一、设计背景与意义 润滑油灌装是石化行业的核心工序,传统灌装线依赖人工操作或简易继电器控制,存在灌装精度低、生产效率低、安全隐患多等问题,且难以适配不同规格润滑油桶的批量灌装需求。现有自动化灌…

作者头像 李华
网站建设 2026/5/14 6:55:34

计算机毕业设计springboot应科院线上评教系统 基于SpringBoot的教学质量评价与反馈平台设计与实现 SpringBoot框架下高校教师教学绩效考评系统构建

计算机毕业设计springboot应科院线上评教系统128n8qvd (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。在当前教育信息化2.0行动计划的深入推进背景下,构建网络化、数…

作者头像 李华
网站建设 2026/5/14 12:27:47

计算机毕业设计springboot村务信息平台 基于SpringBoot的乡村事务综合服务系统 面向数字乡村的SpringBoot事务公开与互动平台

计算机毕业设计springboot村务信息平台91i29(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 当“数字乡村”被写进中央一号文件,最接地气的场景就是村口大屏不再只是…

作者头像 李华
网站建设 2026/5/15 20:32:45

测试驱动的脑机接口开发:从挑战到实践

一、BCI测试的核心挑战 信号噪声管理:非侵入式设备面临环境干扰与生理噪声叠加,需设计动态滤波测试用例。例如,针对高γ频段(70-170Hz)信号采集,测试需覆盖采样率≥500Hz的边界场景,验证硬件与降…

作者头像 李华