edge-tts(文字轉語音開源免費工具) 簡介
edge-tts 是一個文字轉語音開源免費工具, 是一個免費開源的 Python 工具, 它能夠利用微軟 Edge 瀏覽器在線語音合成服務, 將文字轉換為高品質的語音輸出, 而無需安裝微軟 Edge 瀏覽器或 Windows 作業系統, 也不需要申請 API 密鑰, 用戶能夠直接透過 Python 程式碼或命令列工具來使用該服務, 支援超過 100 種語言和口音, 用戶可以根據需求選擇不同的語音, 同時還提供了一些自訂選項, 如調整語音的語速、音量和音高等。
edge-tts(文字轉語音開源免費工具) 官網及教程
- Github 專案主頁 :https://github.com/rany2/edge-tts
- 官網 :https://pypi.org/project/edge-tts/
使用 edge-tts 非常簡單。我們只需安裝該模組, 就可以在 Python 程式碼中呼叫相應的函式, 將文字傳遞給語音合成引擎, 生成高品質的語音檔案。此外, 該專案還提供了兩個命令列工具 edge-tts 和 edge-playback, 允許用戶在終端機中直接輸入文字, 生成和播放相應的語音輸出。
安裝步驟如下:
運行以下命令:
pip install edge-tts
如果您只想使用 edge-tts and edge-playback 命令, 最好使用 pipx:
pipx install edge-tts
基本用法如下:
如果要使用該 edge-tts 命令, 只需使用以下命令運行它:
edge-tts --text "Hello, world!" --write-media hello.mp3 --write-subtitles hello.vtt
如果您希望立即播放帶有字幕的播放, 您可以使用以下 edge-playback 命令:
edge-playback --text "Hello, world!"
請注意, 上述內容需要安裝命令列播放器 mpv, 所有 edge-tts 命令也都適用於 edge-playback 命令。
如果想更改語音語言, 必須首先使用以下 –list-voices 選項檢查可用語音:
edge-tts --list-voices
Name: Microsoft Server Speech Text to Speech Voice (af-ZA, AdriNeural)
ShortName: af-ZA-AdriNeural
Gender: Female
Locale: af-ZA
Name: Microsoft Server Speech Text to Speech Voice (am-ET, MekdesNeural)
ShortName: am-ET-MekdesNeural
Gender: Female
Locale: am-E
Name: Microsoft Server Speech Text to Speech Voice (ar-EG, SalmaNeural)
ShortName: ar-EG-SalmaNeural
Gender: Female
Locale: ar-EG
Name: Microsoft Server Speech Text to Speech Voice (ar-SA, ZariyahNeural)
ShortName: ar-SA-ZariyahNeural
Gender: Female
Locale: ar-SA
...
edge-tts --voice ar-EG-SalmaNeural --text "مرحبا كيف حالك؟" --write-media hello_in_arabic.mp3 --write-subtitles hello_in_arabic.vtt
可以對生成的語音進行細微的修改。
$ edge-tts --rate=-50% --text "Hello, world!" --write-media hello_with_rate_halved.mp3 --write-subtitles hello_with_rate_halved.vtt
$ edge-tts --volume=-50% --text "Hello, world!" --write-media hello_with_volume_halved.mp3 --write-subtitles hello_with_volume_halved.vtt
$ edge-tts --pitch=-50Hz --text "Hello, world!" --write-media hello_with_pitch_halved.mp3 --write-subtitles hello_with_pitch_halved.vtt
此外, 它需要使用 –rate=-50% 而不是 –rate -50%(注意缺少等號), 否則 -50% 將被解釋為只是另一個參數。