不想改变,这是最好的时光。如果有一秒钟不同,也许我就走不到你的身旁。全世界,我们来了

预览


源代码
language_dict = {'英语 (美国)-Jenny-女': 'en-US-JennyNeural', '英语 (美国)-Guy-男': 'en-US-GuyNeural', '英语 (美国)-Ana-女': 'en-US-AnaNeural', '英语 (美国)-Aria-女': 'en-US-AriaNeural', '英语 (美国)-Christopher-男': 'en-US-ChristopherNeural', '英语 (美国)-Eric-男': 'en-US-EricNeural', '英语 (美国)-Michelle-女': 'en-US-MichelleNeural', '英语 (美国)-Roger-男': 'en-US-RogerNeural', '韩语 (韩国)-Sun-Hi-女': 'ko-KR-SunHiNeural', '韩语 (韩国)-InJoon-男': 'ko-KR-InJoonNeural', '日语 (日本)-Nanami-女': 'ja-JP-NanamiNeural', '日语 (日本)-Keita-男': 'ja-JP-KeitaNeural', '法语 (法国)-Denise-女': 'fr-FR-DeniseNeural', '法语 (法国)-Eloise-女': 'fr-FR-EloiseNeural', '法语 (法国)-Henri-男': 'fr-FR-HenriNeural','普通话 (中国大陆)-Xiaoxiao-女': 'zh-CN-XiaoxiaoNeural', '普通话 (中国大陆)-Yunyang-男': 'zh-CN-YunyangNeural', '普通话 (中国大陆)-Yunxi-男': 'zh-CN-YunxiNeural', '普通话 (中国大陆)-Xiaoyi-女': 'zh-CN-XiaoyiNeural', '普通话 (中国大陆)-Yunjian-男': 'zh-CN-YunjianNeural', '普通话 (中国大陆)-Yunxia-男': 'zh-CN-YunxiaNeural', '东北话 (中国大陆)-Xiaobei-女': 'zh-CN-liaoning-XiaobeiNeural', '中原官话 (中国陕西)-Xiaoni-女': 'zh-CN-shaanxi-XiaoniNeural', '粤语 (中国香港)-HiuMaan-女': 'zh-HK-HiuMaanNeural', '粤语 (中国香港)-HiuGaai-女': 'zh-HK-HiuGaaiNeural', '粤语 (中国香港)-WanLung-男': 'zh-HK-WanLungNeural', '台湾普通话-HsiaoChen-女': 'zh-TW-HsiaoChenNeural', '台湾普通话-HsiaoYu-女': 'zh-TW-HsiaoYuNeural', '台湾普通话-YunJhe-男': 'zh-TW-YunJheNeural'}
import tempfile
import edge_tts
import gradio as gr
async def text_to_speech_edge(text, language_code):
voice = language_dict[language_code]
communicate = edge_tts.Communicate(text, voice)
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as tmp_file:
tmp_path = tmp_file.name
await communicate.save(tmp_path)
return tmp_path
app = gr.Blocks(css="footer {visibility: hidden}")
with app:
gr.Markdown("# <center>Edge TTS 工具</center>")
with gr.Row():
input_text = gr.Textbox(lines=5, placeholder="想说却还没说的 还很多 攒着是因为想写成歌",
label="请填写您想生成的文本(中英文皆可)")
default_language = list(language_dict.keys())[15]
language = gr.Dropdown(choices=list(language_dict.keys()), value=default_language,
label="请选择文本对应的语言")
with gr.Row():
btn_edge = gr.Button("一键开启真实拟声吧", variant="primary")
with gr.Row():
output_audio = gr.Audio(type="filepath", label="Edge TTS真实拟声")
btn_edge.click(text_to_speech_edge, [input_text, language], output_audio)
gr.Markdown( "### <center>注意❗:请不要生成会对个人以及组织造成侵害的内容,此程序仅供科研、学习及个人娱乐使用.</center>")
app.launch(show_error=True,inbrowser=True)
说明
怎么说呢,虽然在剪辑视频的时候很多工具都自带的文字转语音,10个语音总有一半是要收费的
或许是世界给我们的选择太多,导致纠结该选用哪个
TTS也是一股清流吧
使用
下载工具,点击后自动打开浏览器,即可使用
or 下载网盘里面的spec文件使用pyinstaller库打包桌面应用
下载
防止文件过期,请及时保存到网盘