设计样本优先的 TTS 流水线
将短句转换为音频很容易。你只需将文本发送到服务,选择一个声音,然后获取文件即可。
长文本则完全不同。当你从短句转向书籍或长篇文章时,系统会面临新的障碍。你必须管理结构、节奏和格式噪声。
我在构建有声书风格的生成功能时意识到了这一点。最初,我将工作流视为单一环节:发送文本,然后期待得到音频。这种方法在处理长内容时失败了。
在屏幕上看起来很棒的段落,读起来往往显得沉重。标题会混入句子中,对话会变得令人困惑。网页文本通常包含隐藏的格式,会破坏听感流。
语音模型很少是唯一的问题。通常情况下,输入文本本身根本没有为音频做好准备。
长文本 TTS 需要的是一套流水线,而不是单一的调用。请使用“样本优先”的工作流。
遵循以下步骤:
- 清理输入文本。
- 将文本拆分为适合音频化的分块。
- 生成一段简短的预览。
- 审查样本。
- 仅在样本效果理想时继续。
首先清理文本。如果你从 PDF 或网站粘贴内容,其中会包含噪声。页码、重复的页眉和菜单项会破坏听觉体验。清理工作必须在生成音频之前完成。一旦音频生成,修复文本错误就会变得成本高昂且效率低下。
接下来,修复结构。人们阅读的方式与聆听的方式不同。读者可以扫视或重读,而听众则依赖节奏和停顿。
将文本拆分为分块。一个分块应该代表一个“聆听单元”。对于非虚构类内容,这可以是一个观点;对于虚构类内容,这可以是一个场景节奏。
基于分块的生成也有助于工程师。它允许你重试失败的部分、缓存输出,并轻松地将片段拼接在一起。
最重要的步骤是预览。不要一开始就生成完整的音频。一段简短的样本可以验证体验,并回答仅凭文本无法回答的问题:
- 声音是否契合素材?
- 节奏是否自然?
- 停顿是否在正确的位置?
- 对话是否清晰?
如果简短的样本听起来效果不好,不要只是更换声音,而要修复源文本。在样本中修正一个发音错误的名称,可以让你免于在整本书中进行数十次的重复修正。
样本优先的工作流可以减少错误并降低成本。它让用户的使用过程更稳妥,也让系统的处理过程更高效。
音频质量在生成开始之前就已经决定了。它始于输入。