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


# 源代码
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 tempfileimport edge_ttsimport gradio as grasync 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("# Edge TTS 工具") 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( "### 注意❗:请不要生成会对个人以及组织造成侵害的内容,此程序仅供科研、学习及个人娱乐使用.")app.launch(show_error=True,inbrowser=True)
# 说明
怎么说呢,虽然在剪辑视频的时候很多工具都自带的文字转语音,10个语音总有一半是要收费的
或许是世界给我们的选择太多,导致纠结该选用哪个
TTS也是一股清流吧
# 使用
下载工具,点击后自动打开浏览器,即可使用
or 下载网盘里面的spec文件使用pyinstaller库打包桌面应用
在 or 复制上面代码直接vscode运行
# 下载
防止文件过期,请及时保存到网盘
https://pan.quark.cn/s/1e93d6663e83