到底怎样才能让微软萌妹帮我读小说?

语音 AI 合成这个选题我们已经写过一篇了,对比来对比去,还是微软家的晓晓说话好听。

而正因为微软这个效果好,所以每当看到有人基于微软 TTS 搞出来的软件,我都会上手把玩一下,像 GitHub 开源的这个 edge-TTS-record,是把 Edge 浏览器里大声朗读的接口封装了过来,然后通过内录实现生成语音文件的功能。

像吾爱破解论坛上经常出现的这种易语言的写的工具,封装的则是微软语音合成 Demo 的接口,把在线生成的音频缓存给提取了出来,从而实现保存语音文件到本地的效果。

两种都是通过封装在线接口实现的白嫖,可我总觉得这些微软语音合成二次封装的工具都有一个问题——即找不到适用场景。

诚然,如果你是个不想真人念稿的视频制作者,或者有这样那样工作上的用途,这些工具已经能一定程度上的满足需求。

但对于更多的人来说,比如我,除了尝鲜和水一篇文章外,别无他用,真不如 @ag2s20150909 大佬开源的那个安卓上的 TTS 目标明确,搭配阅读器来在线听小说。

用过 TTS 听小说的小伙伴应该知道,比起传统的像朗读女那种老式语音朗读软件,或比起其他大厂的语音合成工具,效果简直是降维打击。

那电脑上或 iOS 上想用微软语音合成听书,又该怎么办呢?我研究了两天有了些心得,特来分享给大家。

微软语音听书

说起电脑上听书,我第一时间想到的就是用 Edge 浏览器的大声朗读,事实上也确实可以听,在线小说站单章就能听,本地的 txt 文件用 Edge 打开后也能听。

到底怎样才能让微软萌妹帮我读小说?

但问题在于前者需要我们听完一章后手动切换下一章,后者虽能整本打开,但又因为文本体积太大而导致大声朗读罢工。

直到我在吾爱破解上看到了 @xljxlj 制作的「微软语音听书」。

原理前面也提到了,就是利用 Demo 的接口在线把文字生成语音,可又因为微软 TTS 是没有提前缓存操作的。

所以微软语音听书这里加了个预加载的功能,即生成第一段语音后,会连续生成后几段的语音,以便我们能安心的连续听书。

第一次打开软件,我们要去右下角找到「打开文件」并导入本地的 txt 文件:

到底怎样才能让微软萌妹帮我读小说?

如果你和我一样导入的是 400 多万字近 10 MB 大小的《雪中悍刀行》,那导入过程略慢,因为它会把小说按章节切割:

到底怎样才能让微软萌妹帮我读小说?

切割后的文本会在软件同目录下所生成的「data」文件夹内。

到底怎样才能让微软萌妹帮我读小说?

此时我们要做的就是去右上角选择语音和风格,比如晓晓的撒娇风格。

然后,微软语音听书就开始干活了,注意,这里的缓存单位是段。

到底怎样才能让微软萌妹帮我读小说?

具体的语音文件能在软件同目录下「temp」临时缓存文件内找到。

我们只要选择「开始」,就可以听缓存好的小说了。

要说有啥注意的,微软语音听书这个工具默认的缓存上限只有 30 段,听了 1 段就会删掉 1 段的缓存。

如果需要提高这个缓存上限,可以用文本打开「config.ini」配置文件,把缓存数改高。

到底怎样才能让微软萌妹帮我读小说?

至于听到一半有事不听了,放心关闭软件,这个微软语音听书可以自动记录听到了哪里,但美中不足的是,每次关闭都会清干净当前音频缓存,需要再次加载。

电脑上的在线听书方案,大体上就是利用 Edge 的大声朗读听在线小说,用微软语音听书这个工具听本地小说。

那 iOS 呢?实话实话,没找到最佳的方案,我用了 iOS 上的 Edge 浏览器访问在线小说网站,或用在线阅读器打开本地文件,再使用大声朗读,也试了 Stay 2 装了与之相关的脚本。

可无一例外,效果都很差,做不到连续听书的效果,剩下的思路只有 iOS 上用安卓虚拟机再安装使用 TTS,这种旁门左道的做法。

本想着放弃,但我用微软语音听书的时候,不是发现它是缓存了多个本地音频文件嘛。

这给了我曲线救国的新思路——在线听不了,咱本地生成后导到手机上听。

顺着这个曲线救国的新思路研究下去,我发现我们需要一个批量文字转语音的微软 TTS 工具。

上一节的「微软语音听书」虽然可以批量缓存音频到本地,但为了稳定性,人家只能一段一段的缓存,也就是说一整本小说缓存下来,那得上万个音频文件,明显不适合现在使用。

理论上说,我们也可以用 Aspeak 这个微软语音合成的命令行工具,搭配 FFmpeg 这个音视频处理的命令行工具,编写脚本实现批量处理。

但门槛高不说,这么折腾属实没必要,因为我去吾爱破解、GitHub 等网站扒拉了俩小时后,找到了支持批量转换工具,TTS-VUE。

安装好后,我见到了胜利的曙光,这个工具可以搞定批量转换。

到底怎样才能让微软萌妹帮我读小说?

但也有一些坑需要避,因为是一次性生成语音文件,而微软那边的白嫖接口又有字数限制,所以分割文本这事需要我们自己解决。

我找来了一年前碰到的「TXT 杀手」,你可以按章节分割,也可以按字数分割,保险起见我这里按 2000 字切割了《雪中悍刀行》(后测试可以更多)。

到底怎样才能让微软萌妹帮我读小说?

于是生成了 2000 多份的文件(这怨种小说字确实多)。

但用 TXT 杀手分割出来的文本是 ANSI 编码的,微软 TTS 只支持 UTF-8 编码,所以需要批量转换一下编码。

网上搜到的批量转编码工具大多是 VBS 脚本,从吾爱上找了个 19 年的小工具,选择「添加文件夹」,然后「转换」,两千多份文本就都转成了 UTF-8 格式了。

到底怎样才能让微软萌妹帮我读小说?

把转好的文本添加到 TTS-VUE 内,批量生成的语音文件就搞定了。

我试了 2000 多份文本直接往里拖,结果不出意外的崩溃了,2000 字的文本 10 个 10 个往里扔,不到 1 分钟就转换好了。

你说这算成功了嘛?

总结

我看了下 2000 字生成的每个音频文件在 7 分钟左右,这明显还不是一个完善的解决答案,但剩下的,无非就是调一下分割字数等参数,找找音频合成的工具了(格式工厂能搞定)。

但这两天没功夫折腾了,就当挖个坑,感兴趣的小伙伴可以顺着这个思路玩下去。

这篇写得长也杂,但我的目的是想更具体的为大家提供思路,工具嘛都是好工具,无论是在线预加载的「微软语音听书」,还是批量转换的「TTS-VUE」,亦或「TXT 杀手」和「编码转换器」。

有关项目的地址,和我自己存的蓝奏云链接就不往后台扔了,大家有需要自取吧。

微软语音听书 吾爱原帖:

www.52pojie.cn/forum.php?mod=viewthread&tid=1676076

上面这个的蓝奏云:

wws.lanzouj.com/iPV9X0aik2wd

TTS-VUE(批量转换)GitHub:

github.com/LokerL/tts-vue

上面的蓝奏云:

wws.lanzouj.com/iUQru0aik3uh

TXT 杀手:

wws.lanzouj.com/ivjgy0aik4cf

TXT 编码转换器:

wws.lanzouj.com/i94p40aik5gf

安卓 TTS:

github.com/ag2s20150909/TTS

虽然这篇说成功也没那么成功,但当你碰到电脑听小说,文字转语音,TXT 文本处理的时候,别忘了这些我已经帮你踩过坑的工具,over。

© 版权声明

相关文章

暂无评论

none
暂无评论...