之前一直使用微软、或者国内大厂的接口,网页操作比较麻烦,最近发现一个python库可以完美解决,在这里分享给大家

在这里

GitHub - rany2/edge-tts: Use Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key

使用很简单

pip install edge-tts

他支持两种形式,一种命令行形式,目前测试下来,有时候不太稳定,不推荐,但是功能相对全些

另一种是运行python 脚本形式,目前测试下来比较稳定,分享给大家

#!/usr/bin/env python3

"""
Basic example of edge_tts usage in synchronous function
"""

import edge_tts

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


def main() -> None:
    """Main function"""
    communicate = edge_tts.Communicate(TEXT, VOICE)
    communicate.save_sync(OUTPUT_FILE)


if __name__ == "__main__":
    main()
    import soundfile as sf
    import sounddevice as sd
    data, fs = sf.read(OUTPUT_FILE)
    sd.play(data, fs)
    sd.wait()

这里是列举了目前支持的声音版本

个人喜欢云溪,就是大家在抖音 b站经常听到的声音 ---哈哈,生产利器呀

生成玩后,调用soundfile  进行播放,有时间做一个上位机界面出来,还是比较实用的

完整代码

#https://github.com/rany2/edge-tts
import edge_tts

TEXT = "你好,CSDN!"


#VOICE = "en-GB-SoniaNeural"
#晓晓 女
#VOICE = "zh-CN-XiaoxiaoNeural"
#云健 -不好听
#  VOICE = "zh-CN-YunjianNeural"
#云溪 男好听
VOICE =  "zh-CN-YunxiNeural"
#云夏 女好听
#VOICE = "zh-CN-YunxiaNeural"
#云扬 男官方版本
#VOICE = "zh-CN-YunyangNeural"
#辽宁 小北女
#VOICE = "zh-CN-liaoning-XiaobeiNeural"
#台湾 女
#VOICE = "zh-TW-HsiaoChenNeural"
#台湾男
#VOICE = "zh-TW-YunJheNeural"
#小云 台湾 女
#VOICE = "zh-TW-HsiaoYuNeural"
#陕西方言 小妮
#VOICE = "zh-CN-shaanxi-XiaoniNeural"
# 女 晓意
#VOICE = "zh-CN-XiaoyiNeural"
#女 香港
#VOICE ="zh-HK-HiuGaaiNeural"
#女 香港
#VOICE = "zh-HK-HiuMaanNeural"
#男 香港
#VOICE = "zh-HK-WanLungNeural"


OUTPUT_FILE = "test.mp3"


def main() -> None:
    """Main function to process audio and metadata synchronously."""
    communicate = edge_tts.Communicate(TEXT, VOICE)
    with open(OUTPUT_FILE, "wb") as file:
        for chunk in communicate.stream_sync():
            if chunk["type"] == "audio":
                file.write(chunk["data"])
            elif chunk["type"] == "WordBoundary":
                print(f"WordBoundary: {chunk}")


if __name__ == "__main__":
    main()
    import soundfile as sf
    import sounddevice as sd
    data, fs = sf.read(OUTPUT_FILE)
    sd.play(data, fs)
    sd.wait()

Logo

电影级数字人,免显卡端渲染SDK,十行代码即可调用,工业级demo免费开源下载!

更多推荐