设计“样本优先”的 TTS 流水线

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

长文本则是另一个问题。

当你从句子转向文章、书籍或教程时,系统处理的不仅仅是文本。它还必须处理结构、节奏和格式噪声。

我在构建有声书风格的生成功能时意识到了这一点。将长文本视为单次 TTS 调用是行不通的。在屏幕上看起来很棒的段落,读起来往往显得沉重。标题与下一句之间的衔接太紧凑。对话也变得难以跟进。

构建这种功能的最佳方式是采用“样本优先”的流水线。

不要立即生成完整的音频。相反,请遵循以下步骤:

文本清理是第一步,也是最重要的一步。如果用户从 PDF 或网页粘贴文本,其中往往包含页码、重复的页眉或断行。人类在阅读时会忽略这些内容,但 TTS 系统会把它们读出来,从而破坏听觉体验。在生成音频之前,必须先进行清理。

接下来,关注结构。音频缺乏视觉提示,听众依赖节奏和停顿。你应该将长文本拆分为“块”。一个块应该代表一个观点或一个场景。这样可以更轻松地重试失败的部分并缓存结果。

最关键的部分是预览。

一段简短的样本可以让你在不浪费时间和金钱的情况下验证体验。不要只问声音听起来是否真实,要问以下问题:

如果音频听起来效果不好,问题并不总是在语音模型上。通常是因为文本还没有准备好进行聆听。

“样本优先”的工作流降低了出错成本。它对用户来说更安全,对系统来说也更高效。

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

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

Optional learning community: https://t.me/GyaanSetuAi