首页后端开发PythonPython + edge-tts:一行代码,让你的文本轻松变成语音!

Python + edge-tts:一行代码,让你的文本轻松变成语音!

时间2023-04-12 22:09:01发布访客分类Python浏览1476
导读:大家好,我是树先生!今天给大家介绍一个 Python 库 edge-tts,可以在本地轻松将文本转换成语音,非常方便,并且完全免费!先来听一下效果:https://www.bilibili.com/audio/au3843189?type=...

大家好,我是树先生!今天给大家介绍一个 Python 库 edge-tts,可以在本地轻松将文本转换成语音,非常方便,并且完全免费!

先来听一下效果:

https://www.bilibili.com/audio/au3843189?type=1

怎么样?是不是很熟悉,影视解说中常用开头:这个女人叫小美。。。

edge-tts 介绍

edge-tts 是一个Python的库,继承了微软 Azure 的文本转语音功能(TTS),且是免费使用的。该库提供了一个简单的 API,可以将文本转换为语音,并且支持多种语言和声音。

只需要一行代码,即可将文本转换为语音!

edge-tts --text "Hello, world!" --write-media hello.mp3

详细步骤

  • 安装 Python 环境,这里我用的 Python 3.11.1 开发环境,这一步不会的可以参考我之前发过的文章。【保姆级】Python最新版3.11.1开发环境搭建,看这一篇就够了
  • 安装 edge-tts 库。
pip install edge-tts
  • 安装完成后,在 cmd 窗口中输入 edge-tts 命令,输出如下提示信息,说明已经安装完成。
  • 尝试一下,生成第一个 TTS 语音吧,默认会在本地生成一个 hello.mp3 的音频文件。
edge-tts --text "Hello, world!" --write-media hello.mp3
  • 这里使用的是默认的语音模型,你还可以通过 --list-voices 选项来查看可用的语音列表,然后通过 --voice 选项来选择你想要的声音。
edge-tts --list-voices
...

Name: zh-CN-XiaoxiaoNeural
Gender: Female

Name: zh-CN-XiaoyiNeural
Gender: Female

Name: zh-CN-YunjianNeural
Gender: Male

Name: zh-CN-YunxiNeural
Gender: Male

Name: zh-CN-YunxiaNeural
Gender: Male

Name: zh-CN-YunyangNeural
Gender: Male

Name: zh-CN-liaoning-XiaobeiNeural
Gender: Female

Name: zh-CN-shaanxi-XiaoniNeural
Gender: Female

...

edge-tts --voice zh-CN-YunxiNeural --text "你好,我是程序员树先生" --write-media hello_tree.mp3
  • 你还可以通过 --rate 和 --volume 选项来调整语速和音量,-50% 代表降低语速/音量。
edge-tts --rate=-50% --text "Hello, world!" --write-media hello_with_rate_halved.mp3
edge-tts --volume=-50% --text "Hello, world!" --write-media hello_with_volume_halved.mp3
  • 以上是在 cmd 命令行中执行的指令,我们也可以使用 python 进行读取文件内容转语音,直接献上代码。
import edge_tts
import asyncio

TEXT = ""
with open('C:\\Users\\Tree\\Desktop\\text2voicetest.txt', 'rb') as f:
    data = f.read()
    TEXT = data.decode('utf-8')
print(TEXT)
voice = 'zh-CN-YunxiNeural'
output = 'C:\\Users\\Tree\\Desktop\\text2voicetest.mp3'
rate = '-4%'
volume = '+0%'


async def my_function():
    tts = edge_tts.Communicate(text=TEXT, voice=voice, rate=rate, volume=volume)
    await tts.save(output)


if __name__ == '__main__':
    asyncio.run(my_function())

在桌面创建一个 text2voicetest.txt 文件,写上你想写的内容,直接运行上述代码,即可生成相应的 MP3 文件,搞定!

使用场景

  • 你可以用它来为你的博客文章或者电子书添加语音朗读,让你的读者可以边听边学。
  • 你可以用它来为你的游戏或者动画添加语音配音,让你的角色更有个性和表现力。
  • 你可以用它来为你的 chatGPT 聊天机器人或者智能助理添加语音交互,让你的用户更方便和舒适。
  • 你可以用它来学习不同语言的发音,或者听取不同声音的风格和情感。
  • 你可以用它来在任何地方使用文本转语音服务,无论是云端、本地还是边缘设备。

项目地址

https://github.com/rany2/edge-tts

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

人工智能python机器学习

若转载请注明出处: Python + edge-tts:一行代码,让你的文本轻松变成语音!
本文地址: https://pptw.com/jishu/2735.html
Java面试中真正的加分项,这套笔记说全了 | 极客时间 使用polars进行数据分析

游客 回复需填写必要信息