edge-tts(文本转语音开源免费工具)简介
edge-tts是一个文本转语音开源免费工具,是一个免费开源的Python工具,它能够利用微软 Edge 浏览器在线语音合成服务,将文本转换为高质量的语音输出,而无需安装微软 Edge 浏览器或 Windows 操作系统,也不需要申请 API 密钥,用户能够直接通过 Python 代码或命令行工具来使用该服务,支持超过 100 种语言和口音,用户可以根据需求选择不同的语音,同时还提供了一些自定义选项,如调整语音的语速、音量和音高等。
edge-tts(文本转语音开源免费工具)官网及教程
- Github项目主页:https://github.com/rany2/edge-tts
使用 edge-tts 非常简单。我们只需安装该模块,就可以在 Python 代码中调用相应的函数,将文本传递给语音合成引擎,生成高质量的语音文件。此外,该项目还提供了两个命令行工具 edge-tts 和 edge-playback,允许用户在终端中直接输入文本,生成和播放相应的语音输出。
安装步骤如下:
运行以下命令:
pip install edge-tts
如果您只想使用 edge-tts and edge-playback 命令,最好使用 pipx:
pipx install edge-tts
基本用法如下:
如果要使用该 edge-tts 命令,只需使用以下命令运行它:
edge-tts --text "Hello, world!" --write-media hello.mp3 --write-subtitles hello.vtt
如果您希望立即播放带有字幕的播放,您可以使用以下 edge-playback 命令:
edge-playback --text "Hello, world!"
请注意,上述内容需要安装命令行播放器 mpv ,所有 edge-tts 命令也都适用于 edge-playback命令 。
Changing the voice 改变声音
如果想更改语音语言,必须首先使用以下 –list-voices 选项检查可用语音:
edge-tts --list-voices
Name: Microsoft Server Speech Text to Speech Voice (af-ZA, AdriNeural)
ShortName: af-ZA-AdriNeural
Gender: Female
Locale: af-ZA
Name: Microsoft Server Speech Text to Speech Voice (am-ET, MekdesNeural)
ShortName: am-ET-MekdesNeural
Gender: Female
Locale: am-ET
Name: Microsoft Server Speech Text to Speech Voice (ar-EG, SalmaNeural)
ShortName: ar-EG-SalmaNeural
Gender: Female
Locale: ar-EG
Name: Microsoft Server Speech Text to Speech Voice (ar-SA, ZariyahNeural)
ShortName: ar-SA-ZariyahNeural
Gender: Female
Locale: ar-SA
...
edge-tts --voice ar-EG-SalmaNeural --text "مرحبا كيف حالك؟" --write-media hello_in_arabic.mp3 --write-subtitles hello_in_arabic.vtt
可以对生成的语音进行细微的修改。
$ edge-tts --rate=-50% --text "Hello, world!" --write-media hello_with_rate_halved.mp3 --write-subtitles hello_with_rate_halved.vtt
$ edge-tts --volume=-50% --text "Hello, world!" --write-media hello_with_volume_halved.mp3 --write-subtitles hello_with_volume_halved.vtt
$ edge-tts --pitch=-50Hz --text "Hello, world!" --write-media hello_with_pitch_halved.mp3 --write-subtitles hello_with_pitch_halved.vtt
此外,它需要使用 –rate=-50% 而不是 –rate -50% (注意缺少等号),否则 -50% 将被解释为只是另一个参数。