之前一直使用微软、或者国内大厂的接口,网页操作比较麻烦,最近发现一个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()