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