☰
TTS 朗读太生硬?3 分钟写出第一条语音规则,tts-server-android 文本预处理完整指南
2026/10/17 1:57:23 网站建设 项目流程

TTS 朗读太生硬?3 分钟写出第一条语音规则,tts-server-android 文本预处理完整指南

【免费下载链接】tts-server-android这是一个Android系统TTS应用,内置微软演示接口,可自定义HTTP请求,可导入其他本地TTS引擎,以及根据中文双引号的简单旁白/对话识别朗读 ,还有自动重试,备用配置,文本替换等更多功能。项目地址: https://gitcode.com/GitHub_Trending/tt/tts-server-android

当 TTS 朗读文本时,标点逐个被念出、公式读成一团乱麻、对话没有角色区分,tts-server-android 语音规则功能就是为解决这些问题:它用一段简短的 JavaScript 脚本在朗读前对文本做预处理,让输出更自然。

这个功能能帮你做什么

一句话说,语音规则就是个"朗读前的文本预处理器":先运行你的 JavaScript 自定义读音规则改写文本,再把结果交给 TTS 合成。通过 Speech Rule 配置,你可以精确控制最终的声音。

  • 中文标点转成英文,不再有",""。"被读成外语单词;
  • 用双引号识别对话,给旁白和不同角色分配不同音色;
  • 数学公式和特殊符号转成自然口语,不再念成乱码;
  • 多条规则按顺序执行,结合条件判断精准处理不同内容。

3 分钟写出你的第一条规则

每条规则的结构都很固定,你只需要在两个函数里填处理逻辑。下面是完整模板,我放了一行中文标点转换做示例:

let SpeechRule = { getRuleName() { return "标点转换"; }, process(text, isSSML) { return text.replace(/,/g, ","); } };

text 是传给规则的原始文本,isSSML 是布尔值,表示当前文本是否为 SSML(语音合成标记语言,一种用标签控制读音的标记格式)字符串,你可以据此决定要不要输出标记标签。填完代码后,直接去默认规则文件查看项目自带的完整旁白/对话示例,运行逻辑都在核心处理引擎里。

3 个进阶技巧,即学即用

这三个技巧都是一行就能写出来,直接照抄就能感受到朗读的区别。

  1. 对话角色识别:用双引号做边界切分并打标。text.replace(/(“[^”]*”)/g, '<voice name="A">$1</voice>')—— 引号内的内容会自动用"A"的音色朗读。
  2. 公式口语化:把乘号换成中文词。text.replace(/(\d+)\*(\d+)/g, '$1乘以$2')—— "3*5"会读成"3乘以5"。
  3. 条件分支:满足条件才处理。isSSML ? ssmlText : plainText—— SSML 和纯文本走不同处理分支,互不干扰。

避坑清单

这些坑你多半都会踩,先记住能少走弯路。

  • 朗读卡顿、响应慢:原因是 process 里正则太复杂或循环过多;处理是精简正则、减少全局匹配,先让简单规则跑通。
  • 脚本报错:原因是语法笔误(少括号、漏括号);处理是逐行检查脚本,并用引擎控制台定位具体错误。
  • 接口不被识别:原因是用了 Rhino 引擎(内置的 JavaScript 解释器)不支持的 API;处理是只用常见 ES 语法,避开浏览器专属的新接口。
  • 规则不生效:原因是规则没保存/启用,或多条规则执行顺序不对;处理是确认保存并检查规则顺序。
  • 特殊符号被吞:原因是正则没覆盖某些符号;处理是补全 pattern,并用真实文本验证。

模板跑通后自己去试一版;完整的 API 说明和内置规则源码都在官方帮助文档里,边查边改。

【免费下载链接】tts-server-android这是一个Android系统TTS应用,内置微软演示接口,可自定义HTTP请求,可导入其他本地TTS引擎,以及根据中文双引号的简单旁白/对话识别朗读 ,还有自动重试,备用配置,文本替换等更多功能。项目地址: https://gitcode.com/GitHub_Trending/tt/tts-server-android

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询