老柯修机铺

通讯行老师傅的手机软件笔记——每款 App 装过、用过,才敢写下来

MultiTTS 嵌进我的晨间信息流水线:从复制到听,四步搞定

项目内容
软件MultiTTS
版本1.8.3
平台Android APK
体积144.71M
分类影音播放
包名org.nobody.multitts
官网MultiTTS 官网
下载一MultiTTS 下载,MultiTTS 下载
下载二MultiTTS 下载,MultiTTS 下载
文档MultiTTS 文档
介绍以前每天早上花二十分钟手动整理新闻、复制段落、逐段点开朗读,把 MultiTTS 插进流水线之后,现在三分钟启动、自动分段合成,通勤路上听完正好一集。

MultiTTS 是什么

MultiTTS 是一个跑在安卓上的离线语音合成引擎——你可以把它理解成"把任意文本变成你喜欢的声音念出来"的基础设施。它不是那种做配音剪辑的重工具,也不是带云服务的在线朗读 APP,而是走"系统级 TTS 引擎"路线:装完设成默认,其他 APP 需要朗读时就会调它来发声。引擎本身支持中英日韩等多语种,导入音源包后能出六十到上百个不同音色,核心优势是全程离线、不耗流量,还有个不少人没注意到的"本地配置"开关——打开之后连引擎参数都从本地读,彻底跟云端解耦。

我之前的晨间流水线有多狼狈

我每天通勤四十分钟,想利用这段时间听点资讯类内容。以前的流程是这样:

  1. 早上起床先打开两三档资讯 APP 看标题,点进感兴趣的文章
  2. 把文章正文复制出来,粘贴到某款支持 TTS 的朗读 APP
  3. 那段朗读 APP 的"选择引擎"默认用系统自带的 Google TTS,音色又干又硬,调起来麻烦
  4. 如果碰到双语段落,Google TTS 不会自动切换语言,要么只念一半要么念得稀碎
  5. 上车之后发现刚才忘了按播放键,重新解锁点进去又花一轮时间

这一套下来,光"准备"就要二十分钟,还经常在第五步翻车。试过换过好几款朗读 APP、换过手机自带的小爱朗读,问题大同小异——要么音色不可控,要么碰到双语就跪,要么每次都要手动切换默认引擎。我甚至考虑过买一本实体书带到车上翻,但通勤颠簸翻书更累。

把 MultiTTS 插进流程的哪一环

现在的流程只做了两处结构性的改动:把 MultiTTS 设成系统默认引擎(一次设置,永久生效),然后把朗读 APP 的选择范围缩小到"只挑那些老老实实走系统 TTS API 的"。具体搭起来是这样的:

第一步:引擎层——用 MultiTTS 取代 Google TTS

安装 MultiTTS APK 后,我只做了四件事:导入音源包、在系统设置里把它选为默认 TTS 引擎、打开"本地配置"开关、把"合成对话"保持默认开启。音源包我导了三套——一套百度的普通话包(音色多)、一套搜狗的方言包(有时候想听点不一样的)、还有一个社区整理的明星音色包。选音色我花了五分钟逐个试听,最后定了一个叫"小宇"的磁性男声做默认,念新闻刚好不软不硬。

"合成对话"这个选项我特意确认过是开启的——它的作用是把文本按段落拆成"对话",碰到双语段落会自动分句切换发音人。这个开关是整条流水线能跑通的关键,不开的话,中英混合段落会被一个发音人硬念到底,听起来特别违和。

MultiTTS 发音人卡片列表,展示导入音源包后的多音色选择

第二步:客户端层——只挑老老实实走系统 API 的 APP

这一步是之前踩过的坑:不少阅读 APP 有自己的专属朗读引擎(微信读书的"AI 朗读"、喜马拉雅的预录音频、懒人听书的自有播放链),这些都不走系统 TTS API,你装了 MultiTTS 也调不到。我做了一张兼容性表之后就很清楚了——番茄小说、微信读书的"TTS 朗读"模式、起点、七猫,这些都老老实实走系统 API,直接能用。喜马拉雅和懒人听书直接排除,换成了同类型但走系统 TTS 的替代品。

第三步:内容层——用浏览器做统一入口

现在我直接在 Chrome 里打开想读的文章,Chrome 内置了"朗读此页面"的功能,它会调系统默认 TTS,也就是 MultiTTS。比复制粘贴那套省心太多——打开页面、点右上角三个点、选朗读,就完事。公众号文章我也是用浏览器打开而不是在微信里直接读,因为微信本身不走系统 TTS,浏览器绕一下就解决了。

Chrome 浏览器调用 MultiTTS 朗读网页内容,锁屏后继续播放

第四步:出发前一键启动

出门前,我在 Chrome 里把文章加载好,按一下"朗读",然后锁屏。MultiTTS 的朗读不会因为锁屏中断,这一点比很多朗读 APP 都稳。上车戴耳机,正好从头听。

流程里最容易断链的两个环节

跑了一个月,这条流程里有两个环节我印象最深,容易出问题:

断链一:APP 启动时缓存了旧引擎设置

有些 APP 的代码写法是"启动时读一次系统默认 TTS 引擎,然后存起来反复用"——中途你改了默认引擎,它不会跟着变。这种情况的表现就是:你明明设了 MultiTTS 为默认,结果某个 APP 点朗读还是用 Google TTS。

解决办法很简单:把那个 APP彻底杀掉后台进程再重新打开。设置里改默认引擎之后,把所有阅读类 APP 都重启一遍,一次搞定。我把这步写成了"设完默认引擎后的标准操作",每次换手机或重装系统都走一遍,没再出过问题。

断链二:定制 ROM 的拦截

我之前用过某款 MIUI 的定制版,发现 MultiTTS 装完之后所有 APP 都调不到它——朗读要么没声音要么还是走 Google TTS。后来才知道是 ROM 对 TTS 调用做了二次拦截。排查了好一阵,最后是在开发者选项里把"TTS 调试"相关的开关翻出来设了一下,加上给 MultiTTS 和所有目标 APP 都关掉电池优化,才恢复正常。

如果碰到同类问题,排查顺序就是:先关电池优化、再看开发者选项里有没有 TTS 相关拦截、实在不行换个干净一点的 ROM 或原生系统。

MultiTTS 设置界面,展示本地配置与合成对话等进阶选项

效果与边界

改完之后整个流程的"准备时间"从二十分钟降到了三分钟——打开 Chrome、加载文章、按朗读、锁屏、出门。音色是固定的、不会在不同 APP 之间乱跳,双语段落自动切发音人,不会再出现"硬念到底"的尴尬。

但这套流程也有边界:喜马拉雅和懒人听书这类走自有播放链的 APP 直接排除,没有绕过的办法;如果你手机上装了太多音源包导致 MultiTTS 启动变慢,建议控制在三套以内够用就行;还有就是如果有开发/测试需要用 MultiTTS 做自动化场景,记得打开"本地配置"和"分句翻译"两个开关,引擎控制精度会高很多。

整体来看,这是一次典型的"换一个底座、不用换上层应用"的改造——核心是把 MultiTTS 这个基础设施插到位,然后让所有走系统 API 的客户端自动跟着受益。以后想换音色、换引擎,也只要改系统默认就行,上层任何 APP 都不用动。

本文为个人基于网络公开资料整理编写,非官方内容,仅供学习交流参考;软件版权归原作者所有,请支持正版;使用过程中遇到问题请查阅官方渠道,本文不承担任何责任。

同类文章