从剧本到单一多声道 MP3:在 Cloudflare Wor... 笔记

从剧本到单一多声道 MP3:在 Cloudflare Workers 上为多说话人 TTS API 解析脚本

作者开发了一个网页应用,能够从单一脚本生成多扬声器音频,改进了传统的文本转语音限制。该系统将松散文本转换为结构化格式,支持复杂的TTS模型,兼容表演指示和多字符。后端采用Cloudflare Worker、数据用D1和MP3存储R2,采用Fish Audio的Drama 3模型。输入格式类似广播剧本,使用“姓名:行”和方括号表示送达方向。一个关键设计选择是无名行默认由旁白显示,提升用户体验。解析通过正则表达式和字数启发式来识别说话者和行,并仔细考虑散文中的冒号。应用程序主动移除用户输入中的控制标签,以防止注入非预期的说话者变更。载荷构建将字符映射到唯一的说话者索引,确保正确的语音分配。自动选角机制将声音分配给未分配的角色,优先考虑用户选择并避免重复。一项关键发现是TTS模型在“模型”头缺失或错误时静默退回其他模型,强调了明确钉顶和文档的必要性。稳健的错误处理包括拒绝微小响应,绝不记录脚本文本或API密钥等敏感数据。成本计算基于准确有效载荷的UTF-8字节,并对失败保留信用和退款。音频时长通过文件大小和钉顶比特率估算,避免了音频解码器的需求。系统采用同步请求模型以简化流程,适合短脚本,但对较长脚本存在潜在限制。一个重要的“陷阱”是 iOS 无法播放样本 MP3 而不支持合适的 Range 请求(206 个部分内容响应)。作者提供了最佳实践清单,包括默认无名台词给旁白、预览演员列表、去除控制标签、固定模型头部、准确成本估算、固定码率以及支持 Range 的媒体。项目提供免费试用,体验多声部场景。