专科生收藏!千笔,普遍认可的AI论文平台

核心内容摘要

4个步骤掌握RAG-Anything全功能部署:从入门到精通
通义千问3-VL-Reranker-8B实战部署:从本地测试到公网HTTPS服务

如何消除语言障碍:Figma中文插件全攻略

可扩展框架让多个文本转语音模型共存得益于一套简单的抽象设计不同架构的模型可以被集成并为特定的硬件加速器进行优化。

像Alexa这样的语音助手通常拥有多种不同的语音合成器它们在表现力、个性、语言和说话风格等属性上各不相同。

支撑这些不同应用的机器学习模型可能具有完全不同的架构将这些架构集成到单一的语音服务中可能是一个耗时且具有挑战性的过程。

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

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

第一个网络称为声学模型以文本作为输入并生成梅尔频谱图一种随时间表示语音的音高和能量等声学参数的图像。

第二个网络称为声码器以梅尔频谱图作为输入并生成语音的音频波形作为最终输出。

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

声学模型最常见的架构依赖于注意力机制该机制能学习输入文本的哪些元素与输出频谱图的当前时间“帧”最相关。

通过这种机制网络隐式地对文本不同部分的语音持续时间进行建模。

同一模型也使用“教师强制”技术即用先前生成的语音帧作为输入来生成下一帧。

虽然这种架构可以生成富有表现力且听起来自然的语音但它容易出现清晰度错误例如含糊不清、丢词或重复并且错误很容易从一帧累积到下一帧。

更现代的架构通过显式地建模文本块的持续时间并并行生成语音帧来解决这些问题这比依赖先前生成的帧作为输入更高效、更稳定。

为了对齐文本和语音序列模型只需“上采样”或重复其对文本块其表示向量的编码重复次数由外部持续时间模型指定的语音帧数决定。

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

集成挑战要将声学模型集成到生产中我们需要一个组件来处理输入的文本话语并返回梅尔频谱图。

第一个困难在于语音通常是以顺序块的方式生成的而不是一次性全部合成。

为了最小化延迟我们的框架应尽快返回数据。

一个将整个模型包装在代码中并通过单一函数调用处理所有内容的简单解决方案其速度将是不可接受的。

另一个挑战是调整模型以适应各种硬件加速器。

例如为了从高性能的某中心Inferentia运行时中获益我们需要确保所有张量都具有固定大小在模型编译阶段一次性设置。

这意味着我们需要添加将较长话语拆分为适合特定输入大小取决于模型的较小块的逻辑添加确保正确填充的逻辑决定哪些功能应由模型直接处理哪些应由集成层处理。

当希望在通用GPU上运行同一模型时我们可能不需要这些改动如果框架能够在不同上下文之间轻松切换将非常有用。

因此我们将文本转语音模型解耦为一组更专门的集成组件这些组件能够执行所有必需的逻辑。

集成组件集成层将模型封装在一组能够将输入话语转换为梅尔频谱图的组件中。

由于模型通常在两个阶段运行——预处理数据和按需生成数据——因此使用两种类型的组件很方便SequenceBlock它接收一个输入张量并返回一个转换后的张量输入可以是应用另一个SequenceBlock的结果。

StreamableBlock它按需生成数据例如帧。

作为输入它接收另一个StreamableBlock的结果块可以形成管道和/或由SequenceBlock生成的数据。

这些简单的抽象为创建声学模型的变体提供了极大的灵活性。

以下是一个示例使用SequenceBlock和StreamableBlock抽象构建的声学模型示例。

该声学模型由以下部分组成两个编码器SequenceBlocks将输入文本嵌入转换为一维表示张量一个用于编码文本一个用于预测持续时间一个上采样器StreamableBlock以编码器的结果作为输入根据编码器返回的数据创建中间长度的语音序列一个解码器StreamableBlock生成梅尔频谱图帧。

整个模型被封装在一个名为StreamablePipeline的专用StreamableBlock中它恰好包含一个SequenceBlock和一个StreamableBlockSequenceBlockContainer是一个专门的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.qife

com/对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享

回复术真人版9.1-回复术真人版应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123