设计样本优先的 TTS 流水线

将短句转换为音频很容易。你只需将文本发送到服务,选择一个声音,然后获取文件即可。

长文本则完全不同。当你从短句转向书籍或长篇文章时,系统会面临新的障碍。你必须管理结构、节奏和格式噪声。

我在构建有声书风格的生成功能时意识到了这一点。最初,我将工作流视为单一环节:发送文本,然后期待得到音频。这种方法在处理长内容时失败了。

在屏幕上看起来很棒的段落,读起来往往显得沉重。标题会混入句子中,对话会变得令人困惑。网页文本通常包含隐藏的格式,会破坏听感流。

语音模型很少是唯一的问题。通常情况下,输入文本本身根本没有为音频做好准备。

长文本 TTS 需要的是一套流水线,而不是单一的调用。请使用“样本优先”的工作流。

遵循以下步骤:

首先清理文本。如果你从 PDF 或网站粘贴内容,其中会包含噪声。页码、重复的页眉和菜单项会破坏听觉体验。清理工作必须在生成音频之前完成。一旦音频生成,修复文本错误就会变得成本高昂且效率低下。

接下来,修复结构。人们阅读的方式与聆听的方式不同。读者可以扫视或重读,而听众则依赖节奏和停顿。

将文本拆分为分块。一个分块应该代表一个“聆听单元”。对于非虚构类内容,这可以是一个观点;对于虚构类内容,这可以是一个场景节奏。

基于分块的生成也有助于工程师。它允许你重试失败的部分、缓存输出,并轻松地将片段拼接在一起。

最重要的步骤是预览。不要一开始就生成完整的音频。一段简短的样本可以验证体验,并回答仅凭文本无法回答的问题:

如果简短的样本听起来效果不好,不要只是更换声音,而要修复源文本。在样本中修正一个发音错误的名称,可以让你免于在整本书中进行数十次的重复修正。

样本优先的工作流可以减少错误并降低成本。它让用户的使用过程更稳妥,也让系统的处理过程更高效。

音频质量在生成开始之前就已经决定了。它始于输入。

来源:https://dev.to/w_gregorin_f9af40278cc86d/designing-a-sample-first-tts-pipeline-for-long-form-text-3543