Python文字转语音TTS库示例(edge-tts)

发布于:2025-05-13 ⋅ 阅读:(21) ⋅ 点赞:(0)

1. 安装

pip install edge-tts

在这里插入图片描述

2. 命令行使用

# 生成语音文件
#	-f:要转换语音的文本文件,例如一个txt文件
#	--text:指明要保存的mp3的文本
#	--write-media:指明保存的mp3文件路径
#	--write-subtitles:指定输出字幕/歌词路径
#	--rate:调整语速,+50%加快了50%
#	--volume:调整音量 +50%音量提高了50%
#	--pitch:调整频率 -50Hz频率降低了50Hz
#	--voice:指明了使用哪种语音和风格的发音人
edge-tts --text "Hello, world!" --write-media hello.mp3
# 修改语音速度、音量、频率的效果(使用+-表示默认基础上增减)
edge-tts --rate=+50% --text "Hello, world!" --write-media hello_rate.mp3
edge-tts --volume=+50% --text "Hello, world!" --write-media hello_volume.mp3
edge-tts --pitch=-50Hz --text "Hello, world!" --write-media hello_pitch.mp3
# 直接播放(相当于文件生成到临时目录)
edge-playback --text "Hello, world!"

在这里插入图片描述
在这里插入图片描述

3. 编码使用

import asyncio
import edge_tts

TEXT = "Hello World!"
VOICE = "en-GB-SoniaNeural"
OUTPUT_FILE = "test.mp3"

async def amain() -> None:
    """Main function"""
    communicate = edge_tts.Communicate(TEXT, VOICE)
    submaker = edge_tts.SubMaker()
    with open(OUTPUT_FILE, "wb") as file:
        async for chunk in communicate.stream():
            if chunk["type"] == "audio":
                file.write(chunk["data"])

4. 修改语音模型

有300多种模型可以选择,(edge-tts --list-voices)相关配置如下:

模型名称 性别 风格 声音特点
af-ZA-AdriNeural 普通 友好、积极
af-ZA-WillemNeural 普通 友好、积极
am-ET-AmehaNeural 普通 友好、积极
am-ET-MekdesNeural 普通 友好、积极
ar-AE-FatimaNeural 普通 友好、积极
ar-AE-HamdanNeural 普通 友好、积极
ar-BH-AliNeural 普通 友好、积极
ar-BH-LailaNeural 普通 友好、积极
ar-DZ-AminaNeural 普通 友好、积极
ar-DZ-IsmaelNeural 普通 友好、积极
ar-EG-SalmaNeural 普通 友好、积极
ar-EG-ShakirNeural 普通 友好、积极

网站公告

今日签到

点亮在社区的每一天
去签到