当前位置: 首页 > ds >正文

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

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_ttsTEXT = "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普通友好、积极
ar-IQ-BasselNeural普通友好、积极
ar-IQ-RanaNeural普通友好、积极
ar-JO-SanaNeural普通友好、积极
ar-JO-TaimNeural普通友好、积极
ar-KW-FahedNeural普通友好、积极
ar-KW-NouraNeural普通友好、积极
ar-LB-LaylaNeural普通友好、积极
ar-LB-RamiNeural普通友好、积极
ar-LY-ImanNeural普通友好、积极
ar-LY-OmarNeural普通友好、积极
ar-MA-JamalNeural普通友好、积极
ar-MA-MounaNeural普通友好、积极
ar-OM-AbdullahNeural普通友好、积极
ar-OM-AyshaNeural普通友好、积极
ar-QA-AmalNeural普通友好、积极
ar-QA-MoazNeural普通友好、积极
ar-SA-HamedNeural普通友好、积极
ar-SA-ZariyahNeural普通友好、积极
ar-SY-AmanyNeural普通友好、积极
ar-SY-LaithNeural普通友好、积极
ar-TN-HediNeural普通友好、积极
ar-TN-ReemNeural普通友好、积极
ar-YE-MaryamNeural普通友好、积极
ar-YE-SalehNeural普通友好、积极
az-AZ-BabekNeural普通友好、积极
az-AZ-BanuNeural普通友好、积极
bg-BG-BorislavNeural普通友好、积极
bg-BG-KalinaNeural普通友好、积极
bn-BD-NabanitaNeural普通友好、积极
bn-BD-PradeepNeural普通友好、积极
bn-IN-BashkarNeural普通友好、积极
bn-IN-TanishaaNeural普通友好、积极
bs-BA-GoranNeural普通友好、积极
bs-BA-VesnaNeural普通友好、积极
ca-ES-EnricNeural普通友好、积极
ca-ES-JoanaNeural普通友好、积极
cs-CZ-AntoninNeural普通友好、积极
cs-CZ-VlastaNeural普通友好、积极
cy-GB-AledNeural普通友好、积极
cy-GB-NiaNeural普通友好、积极
da-DK-ChristelNeural普通友好、积极
da-DK-JeppeNeural普通友好、积极
de-AT-IngridNeural普通友好、积极
de-AT-JonasNeural普通友好、积极
de-CH-JanNeural普通友好、积极
de-CH-LeniNeural普通友好、积极
de-DE-AmalaNeural普通友好、积极
de-DE-ConradNeural普通友好、积极
de-DE-FlorianMultilingualNeural普通友好、积极
de-DE-KatjaNeural普通友好、积极
de-DE-KillianNeural普通友好、积极
de-DE-SeraphinaMultilingualNeural普通友好、积极
el-GR-AthinaNeural普通友好、积极
el-GR-NestorasNeural普通友好、积极
en-AU-NatashaNeural普通友好、积极
en-AU-WilliamNeural普通友好、积极
en-CA-ClaraNeural普通友好、积极
en-CA-LiamNeural普通友好、积极
en-GB-LibbyNeural普通友好、积极
en-GB-MaisieNeural普通友好、积极
en-GB-RyanNeural普通友好、积极
en-GB-SoniaNeural普通友好、积极
en-GB-ThomasNeural普通友好、积极
en-HK-SamNeural普通友好、积极
en-HK-YanNeural普通友好、积极
en-IE-ConnorNeural普通友好、积极
en-IE-EmilyNeural普通友好、积极
en-IN-NeerjaExpressiveNeural普通友好、积极
en-IN-NeerjaNeural普通友好、积极
en-IN-PrabhatNeural普通友好、积极
en-KE-AsiliaNeural普通友好、积极
en-KE-ChilembaNeural普通友好、积极
en-NG-AbeoNeural普通友好、积极
en-NG-EzinneNeural普通友好、积极
en-NZ-MitchellNeural普通友好、积极
en-NZ-MollyNeural普通友好、积极
en-PH-JamesNeural普通友好、积极
en-PH-RosaNeural普通友好、积极
en-SG-LunaNeural普通友好、积极
en-SG-WayneNeural普通友好、积极
en-TZ-ElimuNeural普通友好、积极
en-TZ-ImaniNeural普通友好、积极
en-US-AnaNeural卡通, Conversation可爱
en-US-AndrewMultilingualNeuralConversation, Copilot温暖, Confident, Authentic, Honest
en-US-AndrewNeuralConversation, Copilot温暖, Confident, Authentic, Honest
en-US-AriaNeural新闻,小说Positive, Confident
en-US-AvaMultilingualNeuralConversation, CopilotExpressive, Caring, Pleasant, Friendly
en-US-AvaNeuralConversation, CopilotExpressive, Caring, Pleasant, Friendly
en-US-BrianMultilingualNeuralConversation, CopilotApproachable, Casual, Sincere
en-US-BrianNeuralConversation, CopilotApproachable, Casual, Sincere
en-US-ChristopherNeural新闻,小说可靠, Authority
en-US-EmmaMultilingualNeuralConversation, CopilotCheerful, Clear, Conversational
en-US-EmmaNeuralConversation, CopilotCheerful, Clear, Conversational
en-US-EricNeural新闻,小说Rational
en-US-GuyNeural新闻,小说激情
en-US-JennyNeural普通Friendly, Considerate, Comfort
en-US-MichelleNeural新闻,小说Friendly, Pleasant
en-US-RogerNeural新闻,小说活泼
en-US-SteffanNeural新闻,小说Rational
en-ZA-LeahNeural普通友好、积极
en-ZA-LukeNeural普通友好、积极
es-AR-ElenaNeural普通友好、积极
es-AR-TomasNeural普通友好、积极
es-BO-MarceloNeural普通友好、积极
es-BO-SofiaNeural普通友好、积极
es-CL-CatalinaNeural普通友好、积极
es-CL-LorenzoNeural普通友好、积极
es-CO-GonzaloNeural普通友好、积极
es-CO-SalomeNeural普通友好、积极
es-CR-JuanNeural普通友好、积极
es-CR-MariaNeural普通友好、积极
es-CU-BelkysNeural普通友好、积极
es-CU-ManuelNeural普通友好、积极
es-DO-EmilioNeural普通友好、积极
es-DO-RamonaNeural普通友好、积极
es-EC-AndreaNeural普通友好、积极
es-EC-LuisNeural普通友好、积极
es-ES-AlvaroNeural普通友好、积极
es-ES-ElviraNeural普通友好、积极
es-ES-XimenaNeural普通友好、积极
es-GQ-JavierNeural普通友好、积极
es-GQ-TeresaNeural普通友好、积极
es-GT-AndresNeural普通友好、积极
es-GT-MartaNeural普通友好、积极
es-HN-CarlosNeural普通友好、积极
es-HN-KarlaNeural普通友好、积极
es-MX-DaliaNeural普通友好、积极
es-MX-JorgeNeural普通友好、积极
es-NI-FedericoNeural普通友好、积极
es-NI-YolandaNeural普通友好、积极
es-PA-MargaritaNeural普通友好、积极
es-PA-RobertoNeural普通友好、积极
es-PE-AlexNeural普通友好、积极
es-PE-CamilaNeural普通友好、积极
es-PR-KarinaNeural普通友好、积极
es-PR-VictorNeural普通友好、积极
es-PY-MarioNeural普通友好、积极
es-PY-TaniaNeural普通友好、积极
es-SV-LorenaNeural普通友好、积极
es-SV-RodrigoNeural普通友好、积极
es-US-AlonsoNeural普通友好、积极
es-US-PalomaNeural普通友好、积极
es-UY-MateoNeural普通友好、积极
es-UY-ValentinaNeural普通友好、积极
es-VE-PaolaNeural普通友好、积极
es-VE-SebastianNeural普通友好、积极
et-EE-AnuNeural普通友好、积极
et-EE-KertNeural普通友好、积极
fa-IR-DilaraNeural普通友好、积极
fa-IR-FaridNeural普通友好、积极
fi-FI-HarriNeural普通友好、积极
fi-FI-NooraNeural普通友好、积极
fil-PH-AngeloNeural普通友好、积极
fil-PH-BlessicaNeural普通友好、积极
fr-BE-CharlineNeural普通友好、积极
fr-BE-GerardNeural普通友好、积极
fr-CA-AntoineNeural普通友好、积极
fr-CA-JeanNeural普通友好、积极
fr-CA-SylvieNeural普通友好、积极
fr-CA-ThierryNeural普通友好、积极
fr-CH-ArianeNeural普通友好、积极
fr-CH-FabriceNeural普通友好、积极
fr-FR-DeniseNeural普通友好、积极
fr-FR-EloiseNeural普通友好、积极
fr-FR-HenriNeural普通友好、积极
fr-FR-RemyMultilingualNeural普通友好、积极
fr-FR-VivienneMultilingualNeural普通友好、积极
ga-IE-ColmNeural普通友好、积极
ga-IE-OrlaNeural普通友好、积极
gl-ES-RoiNeural普通友好、积极
gl-ES-SabelaNeural普通友好、积极
gu-IN-DhwaniNeural普通友好、积极
gu-IN-NiranjanNeural普通友好、积极
he-IL-AvriNeural普通友好、积极
he-IL-HilaNeural普通友好、积极
hi-IN-MadhurNeural普通友好、积极
hi-IN-SwaraNeural普通友好、积极
hr-HR-GabrijelaNeural普通友好、积极
hr-HR-SreckoNeural普通友好、积极
hu-HU-NoemiNeural普通友好、积极
hu-HU-TamasNeural普通友好、积极
id-ID-ArdiNeural普通友好、积极
id-ID-GadisNeural普通友好、积极
is-IS-GudrunNeural普通友好、积极
is-IS-GunnarNeural普通友好、积极
it-IT-DiegoNeural普通友好、积极
it-IT-ElsaNeural普通友好、积极
it-IT-GiuseppeMultilingualNeural普通友好、积极
it-IT-IsabellaNeural普通友好、积极
iu-Cans-CA-SiqiniqNeural普通友好、积极
iu-Cans-CA-TaqqiqNeural普通友好、积极
iu-Latn-CA-SiqiniqNeural普通友好、积极
iu-Latn-CA-TaqqiqNeural普通友好、积极
ja-JP-KeitaNeural普通友好、积极
ja-JP-NanamiNeural普通友好、积极
jv-ID-DimasNeural普通友好、积极
jv-ID-SitiNeural普通友好、积极
ka-GE-EkaNeural普通友好、积极
ka-GE-GiorgiNeural普通友好、积极
kk-KZ-AigulNeural普通友好、积极
kk-KZ-DauletNeural普通友好、积极
km-KH-PisethNeural普通友好、积极
km-KH-SreymomNeural普通友好、积极
kn-IN-GaganNeural普通友好、积极
kn-IN-SapnaNeural普通友好、积极
ko-KR-HyunsuMultilingualNeural普通友好、积极
ko-KR-InJoonNeural普通友好、积极
ko-KR-SunHiNeural普通友好、积极
lo-LA-ChanthavongNeural普通友好、积极
lo-LA-KeomanyNeural普通友好、积极
lt-LT-LeonasNeural普通友好、积极
lt-LT-OnaNeural普通友好、积极
lv-LV-EveritaNeural普通友好、积极
lv-LV-NilsNeural普通友好、积极
mk-MK-AleksandarNeural普通友好、积极
mk-MK-MarijaNeural普通友好、积极
ml-IN-MidhunNeural普通友好、积极
ml-IN-SobhanaNeural普通友好、积极
mn-MN-BataaNeural普通友好、积极
mn-MN-YesuiNeural普通友好、积极
mr-IN-AarohiNeural普通友好、积极
mr-IN-ManoharNeural普通友好、积极
ms-MY-OsmanNeural普通友好、积极
ms-MY-YasminNeural普通友好、积极
mt-MT-GraceNeural普通友好、积极
mt-MT-JosephNeural普通友好、积极
my-MM-NilarNeural普通友好、积极
my-MM-ThihaNeural普通友好、积极
nb-NO-FinnNeural普通友好、积极
nb-NO-PernilleNeural普通友好、积极
ne-NP-HemkalaNeural普通友好、积极
ne-NP-SagarNeural普通友好、积极
nl-BE-ArnaudNeural普通友好、积极
nl-BE-DenaNeural普通友好、积极
nl-NL-ColetteNeural普通友好、积极
nl-NL-FennaNeural普通友好、积极
nl-NL-MaartenNeural普通友好、积极
pl-PL-MarekNeural普通友好、积极
pl-PL-ZofiaNeural普通友好、积极
ps-AF-GulNawazNeural普通友好、积极
ps-AF-LatifaNeural普通友好、积极
pt-BR-AntonioNeural普通友好、积极
pt-BR-FranciscaNeural普通友好、积极
pt-BR-ThalitaMultilingualNeural普通友好、积极
pt-PT-DuarteNeural普通友好、积极
pt-PT-RaquelNeural普通友好、积极
ro-RO-AlinaNeural普通友好、积极
ro-RO-EmilNeural普通友好、积极
ru-RU-DmitryNeural普通友好、积极
ru-RU-SvetlanaNeural普通友好、积极
si-LK-SameeraNeural普通友好、积极
si-LK-ThiliniNeural普通友好、积极
sk-SK-LukasNeural普通友好、积极
sk-SK-ViktoriaNeural普通友好、积极
sl-SI-PetraNeural普通友好、积极
sl-SI-RokNeural普通友好、积极
so-SO-MuuseNeural普通友好、积极
so-SO-UbaxNeural普通友好、积极
sq-AL-AnilaNeural普通友好、积极
sq-AL-IlirNeural普通友好、积极
sr-RS-NicholasNeural普通友好、积极
sr-RS-SophieNeural普通友好、积极
su-ID-JajangNeural普通友好、积极
su-ID-TutiNeural普通友好、积极
sv-SE-MattiasNeural普通友好、积极
sv-SE-SofieNeural普通友好、积极
sw-KE-RafikiNeural普通友好、积极
sw-KE-ZuriNeural普通友好、积极
sw-TZ-DaudiNeural普通友好、积极
sw-TZ-RehemaNeural普通友好、积极
ta-IN-PallaviNeural普通友好、积极
ta-IN-ValluvarNeural普通友好、积极
ta-LK-KumarNeural普通友好、积极
ta-LK-SaranyaNeural普通友好、积极
ta-MY-KaniNeural普通友好、积极
ta-MY-SuryaNeural普通友好、积极
ta-SG-AnbuNeural普通友好、积极
ta-SG-VenbaNeural普通友好、积极
te-IN-MohanNeural普通友好、积极
te-IN-ShrutiNeural普通友好、积极
th-TH-NiwatNeural普通友好、积极
th-TH-PremwadeeNeural普通友好、积极
tr-TR-AhmetNeural普通友好、积极
tr-TR-EmelNeural普通友好、积极
uk-UA-OstapNeural普通友好、积极
uk-UA-PolinaNeural普通友好、积极
ur-IN-GulNeural普通友好、积极
ur-IN-SalmanNeural普通友好、积极
ur-PK-AsadNeural普通友好、积极
ur-PK-UzmaNeural普通友好、积极
uz-UZ-MadinaNeural普通友好、积极
uz-UZ-SardorNeural普通友好、积极
vi-VN-HoaiMyNeural普通友好、积极
vi-VN-NamMinhNeural普通友好、积极
zh-CN-XiaoxiaoNeural新闻,小说温暖
zh-CN-XiaoyiNeural卡通, 小说活泼
zh-CN-YunjianNeural体育,小说激情
zh-CN-YunxiNeural小说活泼、 阳光
zh-CN-YunxiaNeural卡通, 小说可爱
zh-CN-YunyangNeural新闻专业, 可靠
zh-CN-liaoning-XiaobeiNeural方言幽默
zh-CN-shaanxi-XiaoniNeural方言Bright
zh-HK-HiuGaaiNeural普通友好、积极
zh-HK-HiuMaanNeural普通友好、积极
zh-HK-WanLungNeural普通友好、积极
zh-TW-HsiaoChenNeural普通友好、积极
zh-TW-HsiaoYuNeural普通友好、积极
zh-TW-YunJheNeural普通友好、积极
zu-ZA-ThandoNeural普通友好、积极
zu-ZA-ThembaNeural普通友好、积极

5. 源码解析

源码地址:https://github.com/rany2/edge-tts。

通过https://github.com/aio-libs/aiohttp开源库,使用websocket跟微软在线模型wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud通信交互。

如果科学上网不方便,可以直接查看百度网盘地址: https://pan.baidu.com/s/1J6bA58vNHt7cd0fqduf-RQ?pwd=jsxz

http://www.xdnf.cn/news/5687.html

相关文章:

  • keil 解决 Error: CreateProcess failed, Command: ‘XXX\ARM\ARMCC\bin\fromelf.exe
  • 精益数据分析(55/126):双边市场模式的挑战、策略与创业阶段关联
  • Leetcode (力扣)做题记录 hot100(34,215,912,121)
  • 软件设计师-错题笔记-系统开发与运行
  • 吊舱的热灵敏度技术要点
  • 【Linux网络】————HTTP协议详解
  • MySQL全量,增量备份与恢复
  • Netty在Java网络编程中的应用:实现高性能的异步通信
  • 线下消费经济“举步维艰”,开源AI智能名片链动2+1+S2B2C小程序线上“狂飙突进”!
  • springboot集成langchain4j实现票务助手实战
  • 【软考-高级】【信息系统项目管理师】论文写作注意事项及2014年至2024年历年论文题目汇总
  • sqlilab-Less-18
  • 【第四批】运行时应用程序自我保护(RASP)工具能力通过评估名单
  • 【Dv3Admin】工具数据验证配置文件解析
  • 网卡网孔速率的协商是如何进行的?
  • 【Rust泛型】Rust泛型使用详解与应用场景
  • 力扣HOT100之二叉树:104. 二叉树的最大深度
  • 软件安全之内存泄漏
  • 构造+简单树状
  • 搜索二维矩阵 II 算法讲解
  • OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——gnutls
  • AD开启交叉选择功能,只选中器件,不选中网络、焊盘
  • PostgreSQL 序列(Sequence) 与 Oracle 序列对比
  • 聊一聊常见的超时问题:timeout
  • 理解CNN模型:从原理到应用
  • Linux系列(3)----用户和用户组管理、系统管理
  • 大模型核心基础简介
  • JAVA笔记6——异常
  • 【我的创作纪念日】512
  • Error from server (NotFound) namespaces kubesphere-system not found报错解决方案