tts-server-android 语音规则完全指南如何写出第一条 JS 朗读规则【免费下载链接】tts-server-android这是一个Android系统TTS应用内置微软演示接口可自定义HTTP请求可导入其他本地TTS引擎以及根据中文双引号的简单旁白/对话识别朗读 还有自动重试备用配置文本替换等更多功能。项目地址: https://gitcode.com/GitHub_Trending/tt/tts-server-androidtts-server-android 语音规则让 TTS 在合成前先跑一段 JavaScript把文本按内容分段、打标、切句再交给不同的音色。下面从一条能直接跑的规则讲起帮你在十分钟内让旁白和对话各归其位。先看看它到底错在哪朗读不自然往往不是音色问题而是文本还没准备好。常见表现日期数字2024年3月5日 被逐位念成 二、零、二、四特殊符号AB 念出 加号或干脆跳过对话提示引号里的台词和叙述混成同一个声音角色全糊在一起这类问题靠调语速、音量解决不了得在朗读前动手。语音规则就是那个动手的地方按下播放前用一段脚本对原始文本做一次可控的改写与切分。原始文本是怎么变成语音的整条链路很短。原始文本先过前置替换规则再由语音规则脚本Rhino 引擎执行调用handleText分段打标程序按标签把每段路由到对应 TTS 配置接着splitText切成句子最后过一遍后置替换再送合成。环节由谁做作用分段打标语音规则handleText把文本切成带 tag 的片段路由音色系统按 tag 匹配不同片段交给不同配置分句语音规则splitText按标点切成可合成的句子一句话语音规则不决定念得多好听它决定把什么内容、按什么节奏、交给哪个声音。如何写下第一条语音规则规则是一个叫SpeechRuleJS的对象必须带元信息name、id、author、version、tags和两个方法。最小可跑版本let SpeechRuleJS { name: 我的第一条规则, id: demo.rule, author: me, version: 1, tags: { plain: 通用 }, handleText(text) { return [{ text: text, tag: plain }]; // 原样返回只打一个标签 }, splitText(t) { return t.match(/[^。!?;][。!?;]?/g) || [t]; } };逐句说id是规则唯一标识tags声明键→显示名handleText返回的tag必须对上某个键程序才能把片段派给绑定该标签的 TTS 配置splitText返回字符串数组一句一个元素。还有第三个可选方法getTagName只在界面上显示标签名。三个实用技巧 符号与数字归一化。在handleText开头把机器写法改成人话function clean(t) { return t.replace(//g, 加).replace(//g, 减) .replace(/(\d{4})-/.-/./g, $1年$2月$3日); } // handleText 内text clean(text)对话识别。内置规则speech_rule.js的核心用中文双引号切旁白/对话if (c “) { out.push({ text: buf, tag: narration }); buf ; cur dialogue; } else if (c ”) { out.push({ text: buf, tag: dialogue }); buf ; cur narration; }“之前归旁白”之前归对话两段打不同 tag就能分配两个音色。改写公式与代码。命中数学式就替换成可读文字text text.replace(/(\d)\s*[×*]\s*(\d)/g, $1乘$2);进阶组合、分支与容错语音规则可以和替换规则叠加替换规则分前置 / 后置两种时机正好包在handleText前后。多条配置绑定同一个 tag 时先精确匹配id、再随机挑一个。想更细可用tagsData在对话里声明角色实现角色级匹配。健壮性很关键handleText一旦抛错整段合成会被记为失败。所以脚本里少写裸循环、给正则加边界拿不准就try/catch兜底并返回一个合法数组。常见问题排查 标签没生效、全走一个音色→ 多半handleText返回的tag与tags键或 TTS 配置对不上 → 核对标签键是否一致。分句太碎或根本不切→ 多半是splitText的分隔标点不合适 → 调整可匹配的分隔符。改了代码没反应→ 脚本每次合成时重新读取确认已保存version只是版本标识。合成直接失败→ 多半脚本报错或返回结构不是[{text, tag}]→ 打开日志页看报错保证每个片段都含text与tag。资源导航想深入直接翻这几处规则引擎model/rhino/speech_rule/SpeechRuleEngine.kt处理链路service/systts/help/TextProcessor.kt内置规则assets/defaultData/speech_rule.js配置conf/SpeechRuleConfig.kt官方说明help/js/speechRule.md【免费下载链接】tts-server-android这是一个Android系统TTS应用内置微软演示接口可自定义HTTP请求可导入其他本地TTS引擎以及根据中文双引号的简单旁白/对话识别朗读 还有自动重试备用配置文本替换等更多功能。项目地址: https://gitcode.com/GitHub_Trending/tt/tts-server-android创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考