項目地址:rany2/edge-tts: Use Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key (github.com)
Edge-TTS是由微軟推出的文本轉(zhuǎn)語音Python庫,通過微軟Azure Cognitive Services轉(zhuǎn)化文本為自然語音。適合需要語音功能的開發(fā)者,GitHub上超3000星。作為國內(nèi)付費TTS服務(wù)的替代品,Edge-TTS支持40多種語言和300種聲音,提供優(yōu)質(zhì)的語音輸出,滿足不同開發(fā)需求。
?
1.安裝部署
首先,你需要通過Python包管理工具pip來安裝Edge-TTS庫。只需在命令行中輸入以下命令(沒有python環(huán)境的自行配置一下):
pip install edge-tts
如果只想使用edge-tts和edge-playback命令,最好使用 pipx:
pipx install edge-tts
安裝完成后,你就可以開始使用Edge-TTS來將文本轉(zhuǎn)換為語音了。Edge-TTS支持多種語言和不同的聲音選項,你可以根據(jù)需要選擇合適的聲音。
2.文本轉(zhuǎn)語音
我們先來個hello world,只需要一行代碼!
edge-tts --text "hello world" --write-media hello.mp3
執(zhí)行完畢之后,會在你執(zhí)行的目錄下,生成hello.mp3文件
如果你想立即播放帶有字幕的內(nèi)容,可以使用以下edge-playback命令:
edge-playback --text "Hello, world!"
注意以上需要安裝mpv命令行播放器。所有命令也都edge-tts可以工作。edge-playback
3.支持的語言和音色
edge-tts支持英語、漢語、日語、韓語、法語等40多種語言,共300多種可選聲音,執(zhí)行以下命令查詢:
edge-tts --list-voices
如下圖所示:
?文章來源地址http://www.zghlxwxcb.cn/news/detail-847276.html
查詢結(jié)果中的Gender為聲音的性別,Name為聲音的名字,如zh-CN-YunjianNeural,其中zh表示語言,CN表示國家或地區(qū),可以根據(jù)需求選擇不同的聲音。
使用--voice參數(shù)來指定聲音名稱,下面我使用zh-CN-YunyangNeural聲音來合成一個中文音頻。
edge-tts --voice zh-CN-YunyangNeural --text "大家好,歡迎關(guān)注語音之家,語音之家是一個助理AI語音開發(fā)者的社區(qū)。" --write-media hello_in_cn.mp3
4.調(diào)整語速、音量和音調(diào)
可以對生成的語音進行細微修改。
$ 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% 將被解釋為另一個參數(shù)。
5.使用代碼轉(zhuǎn)換
上面都是用命令轉(zhuǎn)換,我們也可以寫代碼調(diào)用,開發(fā)http接口來提供語音合成服務(wù)。
以下是一個代碼示例,將代碼保存到一個文件中,如tts.py。
#!/usr/bin/env python3
"""
Basic example of edge_tts usage.
"""
import asyncio
import edge_tts
TEXT = "大家好,歡迎關(guān)注語音之家,語音之家是一個助理AI語音開發(fā)者的社區(qū)。"
VOICE = "zh-CN-YunyangNeural"
OUTPUT_FILE = "d:/test.mp3"
async def amain() -> None:
"""Main function"""
communicate = edge_tts.Communicate(TEXT, VOICE)
await communicate.save(OUTPUT_FILE)
if __name__ == "__main__":
loop = asyncio.get_event_loop_policy().get_event_loop()
try:
loop.run_until_complete(amain())
finally:
loop.close()
運行python tts.py,稍等即可在d盤生成合成后的音頻test.mp3。
關(guān)于 edge-playback 命令的說明
edge-playback 實際上是 edge-tts 的一個封裝,用于播放生成的語音。它接受與 edge-tts 選項相同的參數(shù)。文章來源:http://www.zghlxwxcb.cn/news/detail-847276.html
?
到了這里,關(guān)于Edge-TTS:微軟推出的,免費、開源、支持多種中文語音語色的AI工具的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!