語音 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。