怎麼用
- 在文字框貼上或輸入要朗讀的內容,也可以先按「填入範例文字」試聽。
- 在「語音」選一個聲音。清單會把中文(台灣 zh-TW)的語音排在最前面,接著是其他中文,再來是英文、日文、韓文。
- 調整語速、音高、音量,按「播放」。播放中可以暫停、繼續或停止。
- 朗讀時下方會顯示目前唸到第幾段與該段文字;瀏覽器有提供字詞位置時,會把正在唸的字詞標成黃底。
想把朗讀的聲音留下來?
瀏覽器內建的語音合成沒有提供聲音檔,本頁無法產生或下載 MP3,所以沒有做下載鈕。如果一定要留檔,常見做法是在電腦上把「播出來的聲音」錄起來,但每種方法都有限制,請先錄一小段確認:
- 線上螢幕錄影:依該頁的說明,Windows 的 Chrome、Edge 選「整個螢幕」並勾選分享系統音訊,可以錄到電腦播出的聲音;Mac 與 Linux 多半只能錄分頁音訊,朗讀聲不一定錄得到;手機瀏覽器多數不支援。電腦朗讀的聲音是否一定會被錄進去,本站沒有實測過,請先用短文字試錄。錄出來是影片檔,不是單純的聲音檔。
- 線上錄音:這個工具錄的是麥克風。要用它錄朗讀,只能讓喇叭播出聲音再被麥克風收進去,音質比較差,也會混入環境雜音,不建議。
想測試麥克風與喇叭是否正常,可以用麥克風測試。需要把講話內容變成文字,可以用語音轉文字。
限制
- 聲音依裝置而異:語音由瀏覽器與作業系統提供,同一段文字在不同電腦或手機聽起來會不同,有的裝置沒有中文語音。
- 不能存成檔案:瀏覽器內建語音無法直接輸出 MP3、WAV。
- 長文字會分段:每段約 160 字以內,段與段之間可能有短暫停頓。
- 進度標示不一定有:要看瀏覽器與語音有沒有發出 boundary 事件。
- 文字上限:單次最多 3 萬字。
常見問題
可以把朗讀的聲音存成 MP3 嗎?
這個頁面做不到,也沒有放下載鈕。頁面用的是瀏覽器內建的語音合成功能,依 W3C 的 Web Speech API 規格,它只能控制朗讀(語速、音高、音量)和接收事件,沒有提供取得合成後聲音檔的方法,所以網頁程式拿不到聲音資料,也就沒辦法直接存成 MP3 或 WAV。想留檔的話,可以另外用錄音的方式把電腦播出來的聲音錄下來,做法與限制見下方「想把朗讀的聲音留下來?」。
為什麼我這裡的聲音跟別人不一樣,或根本沒有中文語音?
朗讀的聲音不是本站提供的,而是你的瀏覽器與作業系統提供的。MDN 的說明是,getVoices() 回傳的是「目前這台裝置上可用的語音」,所以不同的電腦、手機、瀏覽器,語音清單和音色都不一樣。如果清單裡沒有中文語音,請到作業系統的語音或輔助使用設定裡新增中文語音,再重新整理本頁。
語音清單一開始是空的,或要等一下才出現?
有些瀏覽器的語音清單是非同步載入的,頁面剛開啟時可能還是空的,載入完成會通知頁面(voiceschanged 事件)。本頁會自動重新讀取清單;如果等了幾秒仍然是空的,頁面會提示找不到語音,這時仍可試試「瀏覽器預設語音」。
語音名稱後面的「線上」是什麼意思?我的文字會被傳出去嗎?
瀏覽器會告訴頁面每個語音是「本機語音」還是「遠端語音」(MDN 的 localService 屬性:true 是本機語音合成服務,false 是遠端語音合成服務)。後面標「線上」的就是遠端語音,朗讀時文字要交給那個遠端服務產生聲音,由瀏覽器或作業系統的廠商處理,不經過本站。沒有標「線上」的是裝置上的本機語音。想完全不讓文字離開裝置,請選沒標「線上」的語音。
為什麼朗讀到一半停掉,或暫停後無法繼續?
本頁會把長文字切成小段,一段唸完才送出下一段,用意是降低部分瀏覽器朗讀長文字時中途停掉的機會,但無法保證每種瀏覽器都不會中斷。暫停與繼續的行為也依瀏覽器而異,如果按「繼續」沒有反應,請按「停止」後重新播放。另外,調整語速、音高、音量,是從下一段開始生效,不是立刻改變正在唸的那一段。
「目前唸到哪」的標示為什麼有時沒有?
這個標示靠瀏覽器在朗讀時發出的 boundary 事件(唸到某個字詞的位置通知)。是否會發這個事件,依瀏覽器與語音而異。沒有事件時,頁面只顯示目前在唸第幾段、以及該段的文字,不會標示字詞位置。
運作原理
頁面呼叫瀏覽器的 speechSynthesis:取得語音清單(getVoices),把每一小段文字做成 SpeechSynthesisUtterance,設定語音、語速(rate)、音高(pitch)、音量(volume)後送出朗讀(speak),一段唸完(end 事件)再送下一段;暫停、繼續、停止分別對應 pause、resume、cancel。本頁沒有載入任何語音檔或外部語音服務,文字也不會傳到本站。實際上聲音如何產生,由你的瀏覽器與作業系統決定。
規格與來源
- SpeechSynthesis(取得可用語音、speak、pause、resume、cancel、voiceschanged):MDN developer.mozilla.org/…/SpeechSynthesis;語音清單為「目前裝置上可用的語音」:getVoices()。
- 本機語音與遠端語音的區別(localService):MDN SpeechSynthesisVoice.localService。
- 規格本身未提供取得合成聲音資料的方法:W3C Community Group Web Speech API(這是社群草案,不是正式 W3C 標準)。
- 瀏覽器支援度:MDN 標示 SpeechSynthesis 自 2018 年 9 月起已在各主要瀏覽器提供,實際可用的語音依裝置而定。
- 全部在瀏覽器內執行;工具本身不載入外部程式庫(全站的統計與廣告腳本除外)。