十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

tts-server-android 语音规则:三步预处理 TTS 朗读文本,冒号和书名号不再被直读

tts-server-android 语音规则:三步预处理 TTS 朗读文本,冒号和书名号不再被直读 tts-server-android 语音规则三步预处理 TTS 朗读文本冒号和书名号不再被直读【免费下载链接】tts-server-android这是一个Android系统TTS应用内置微软演示接口可自定义HTTP请求可导入其他本地TTS引擎以及根据中文双引号的简单旁白/对话识别朗读 还有自动重试备用配置文本替换等更多功能。项目地址: https://gitcode.com/GitHub_Trending/tt/tts-server-android读小说时“他说”后面的冒号念得生硬《》里的书名号被逐字照读听感在文本没处理好的瞬间就崩了。tts-server-android 的语音规则功能就是在 TTS 引擎之前用 JavaScript 做一次文本预处理把这些别扭之处改写成自然的读法。 为什么会翻车TTS 文本预处理链路链路其实很简单原始文本会先交给语音规则里的 JavaScript由 Rhino 引擎即内置的 JavaScript 执行器负责运行做拆分、打标签、改写之后才交给 TTS 引擎合成。每段文本都会带上“旁白”“对话”这样的标签引擎按标签匹配对应的语音配置来读。规则没处理标点、符号或标签没匹配到任何配置时TTS 就直接照读原文于是你听到了“说冒号”和“书铭号”。你配置的多条规则还会按顺序依次执行前一条的输出就是后一条的输入。 语音规则三步配置写、存、听打开朗读规则管理入口进入系统 TTS 主界面点右上角的更多菜单选择“朗读规则管理”。内置的“旁白/对话”规则就躺在列表里它能自动区分旁白和引号内的对话是很好的参照物。编写第一条语音规则点新建直接复制内置规则打底改 handleText 的内容。最小可用形态长这样let SpeechRuleJS { name: 标点统一, id: demo.punct, version: 1, tags: {narration: 旁白}, handleText(text) { return [{ text: text.replace(//g, ), tag: narration }]; }, splitText(text) { return text.split(/[。]/).filter(s s.trim()); } };name、id、tags 是基本信息handleText 负责改写整段文本并返回带标签的结果splitText 负责分句。语法不熟就先照抄内置规则再小步修改。保存并试听验证效果保存后进入试听界面输入一句带冒号的话点“测试”。听到预期的语气就说明规则生效了顺手把规则导出备份一份防止下次误操作。✨ 语音规则的两个进阶玩法给对话角色分配不同音色给规则加“旁白/对话”两个标签再在系统 TTS 配置页把两种声音分别指派给不同配置。引号里的对话就会切换成第二个人声同一页文字像两个人在对读。标签到配置的匹配逻辑在 SpeechRuleEngine.kt这个类会调用 handleText并把返回的标签指派给具体的语音配置。把公式和代码符号转成自然读法用正则处理特殊符号把“3×412”里的乘号换成“乘以”代码里的变量名改成自然读法保存后“Emc²”就能读成“E 等于 m c 平方”而不是一串字母。内置的 speech_rule.js 就是按这个模式写的可以直接复制改造。 语音规则不生效三条快速自查现象保存规则后不生效读出来和原来一样。原因handleText 返回的标签和 tags 声明的标签对不上引擎找不到对应配置。现象试听时规则报错日志里是 JavaScript 语法错误。原因代码不是完整的 SpeechRuleJS 对象或 splitText 没返回数组补上 try-catch对照日志逐行排查。现象规则越多朗读越卡。原因规则每次被调用都在做重计算保持规则精简别对长文本写嵌套循环。想看更多标签组合和 tagsData 用法翻一下官方帮助文档 help/js/speechRule.md。规则无非是几行 JavaScript不用怕改坏先改、再听、再改。【免费下载链接】tts-server-android这是一个Android系统TTS应用内置微软演示接口可自定义HTTP请求可导入其他本地TTS引擎以及根据中文双引号的简单旁白/对话识别朗读 还有自动重试备用配置文本替换等更多功能。项目地址: https://gitcode.com/GitHub_Trending/tt/tts-server-android创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表