文字轉語音朗讀
或者貼上字幕文字
首次執行會下載聲線模型和音素化器 —— 合計約 98 MB,由本站提供,之後瀏覽器會快取。你拖入的字幕或文字從不離開這個分頁。選擇 MP3 或 M4A 會再下載 31 MB 的編碼器,這也是 WAV 成為預設值的原因。
選項
聲線決定口音和音色,還有一個不那麼明顯的作用 —— 決定文字按哪一套語音系統朗讀。把西班牙文聲線配到英文句子上不會報錯:它會用西班牙文的發音去讀英文單字,這比一條錯誤訊息更糟。這裡提供七種語言,而不是十二種,因為這一頁附帶的音素化器沒有日文或中文聲線。在投入長檔案之前先聽一小段;所有聲線共用同一個模型,所以切換的代價是一次合成,而不是一次下載。
聲線朗讀的快慢,疊加在模型認為自然的語速之上。慢 是 0.8×,快 是 1.2× —— 刻意溫和,因為超過大約 1.5× 後模型會開始吞字,聽起來像在趕而不是在快說。當某條字幕的時間太短、放不下它的台詞時,這一頁會自行把速度提高到最多 1.4×,然後再截斷,而那次提速會與這裡選的設定相乘。
WAV 是未壓縮的 24 kHz 單聲道,在這裡直接寫出,完全不需要編碼器 —— 所以它是預設值,也不需要為它額外下載任何東西。MP3 和 M4A 需要 31 MB 的影片引擎來壓縮,但體積大約是前者的十分之一:十分鐘語音作 WAV 約 28 MB,作 MP3 約 2.8 MB。只想試聽聲線用 WAV,要把檔案寄給別人用 MP3。
這一頁把文字朗讀出來。貼上一段文章或拖進一個檔案——.txt、.srt、.vtt,十二種字幕格式都行——選一個十種聲線之一,拿回一個從頭到尾唸完的單一音訊檔。沒有任何東西被對時,因為沒有東西可以對:產物是一段連續朗讀,不是為了擺在畫面底下而建的音軌。
你拖進來的若是字幕檔,時間碼會被解析掉並丟棄。被讀出來的是每條字幕的文字,依序連接成段落;字幕條內部的換行會變成空白,因為那些是畫面上的排版選擇,而字幕條邊界則完全不留下任何東西。這與字幕配音那一頁正好相反,兩頁並排存在,是為了讓選擇看得見,而不是藏在一個勾選框裡:一頁產出跟隨時間軸的聲音,另一頁產出單純流動的聲音。
文字是分段合成,而不是一次全部送進去。模型的斷詞器會默默截掉超過 510 個音素之後的一切——一篇兩千字的文章會只回來前兩句,而檔案看起來完全正常。所以文字會先按段落切、再按句末標點切,遇到單句超過 400 個字元時切得更細,然後一段接一段合成,中間插入短暫停頓。取消也是在這裡生效:朗讀跑在自己的執行緒上,所以取消按鈕會在片刻內停下,而不是等目前這一句唸完,音訊製作期間頁面仍然可用。
聲線清單是七種語言、十種聲線——英語(美國與英國)、西班牙語、法語、義大利語、印地語與巴西葡萄牙語。日文與中文沒有提供:用來決定發音的音素化器沒有這兩種語言的聲線,所以一個標成日文的選項會把漢字當英文字母讀,聽起來自信卻是錯的。約 98 MB 的模型與音素化器只下載一次並快取;你貼上的文字從不離開瀏覽器,當那段文章是客戶的信件或醫療紀錄時,這件事很重要。
常見問題
如果把 .srt 檔拖進來,朗讀會包含時間碼或字幕序號嗎?
兩者都不會。檔案用轉換頁共用的格式層解析,只保留每條字幕的文字——序號、00:00:01,000 --> 這種時間格式,以及 <i> 或 {\pos()} 這類行內標籤,都在合成之前被拿掉。你聽到的是文字依出現順序唸出來。若你要時間被尊重而不是丟棄,請用把字幕檔配音成音訊的那一頁,它會把每條字幕放在自己的開始時間。
貼上文字的框可以放整篇文章,還是只能放一兩句?
整篇文章沒問題,因為文字在送進模型之前會先切塊。貼上的內容會被包成一個純文字檔,進入與拖曳檔案相同的佇列,所以享有同樣的 400 字元切塊、同樣的進度條與同樣的取消按鈕。實際的上限是記憶體而不是長度:長文章會產出很長的 WAV,而一小時 24 kHz 單聲道 PCM 是好幾百 MB,所以如果朗讀會超過幾分鐘,選 MP3 是值得的。
為什麼這裡句子之間的停頓,聽起來比字幕配音那一頁長?
因為區塊之間會插入四分之一秒的靜音,避免連續句子黏在一起;而字幕配音頁是把每一行放在字幕條的精確起點,並填滿字幕原本就有的間隙。這裡的間隙固定 250 毫秒,與內容無關,因為沒有時間軸要忠實對應。同一個區塊內的句子由模型自己的標點處理連接,所以只有區塊邊界——大約每 400 個字元——會得到那段額外停頓。
西班牙語與葡萄牙語有哪些聲線?是一種還是好幾種?
各一種:西班牙語是 ef_dora,巴西葡萄牙語是 pf_dora;另外還有美國英語的兩種變體(af_heart、af_bella)、再一個美國聲線(am_michael)、兩種英國聲線(bf_emma、bm_george)、法語的 ff_siwis、印地語的 hf_alpha 與義大利語的 if_sara。英語會有多種聲線,是因為大多數旁白需求都在那裡;其他語言各給一種,讓清單短到可以試聽完。聲線同時決定口音與音色,所以也決定了文字要用哪種語言的音素來讀。
產出的 MP3 或 M4A 可以直接當成 Podcast 片段發布嗎?
技術上可以——兩者都是標準容器,由本機的 ffmpeg 版本編碼,音訊是 24 kHz 單聲道,對語音夠用、對音樂偏薄。編輯上,發布前請先聽過:模型偶爾會吃掉結尾的子音、把專有名詞的重音放錯,或把縮寫逐字母唸出來。整個過程沒有任何東西被上傳,也沒有浮水印或追蹤被嵌入,但合成語音同樣不帶任何揭露,所以如果你的聽眾期待真人朗讀,請說明這是哪一種。