跳转至

edge-tts语音转换工具简介

在数字时代,文字转语音技术正变得越来越重要。它可以用于创建有声读物、自动化助手、多媒体内容的生成,以及许多其他应用。而今,我们将探索一种强大的工具——edge-tts,它允许你在Python代码中或使用提供的命令行工具轻松访问Microsoft Edge的在线文字转语音服务。

安装edge-tts

使用pip安装

$ pip3 install edge-tts

基本用法

1、使用edge-tts命令,只需运行以下命令

$ edge-tts --text "你好,世界!" --write-media hello.mp3 --write-subtitles hello.vtt

2、如果你希望立即播放带字幕的语音,你可以使用edge-playback命令:

$ edge-tts --voice ar-EG-SalmaNeural --text "مرحبا كيف حالك؟" --write-media hello_in_arabic.mp3 --write-subtitles hello_in_arabic.vtt

3、帮助

edge-tts -h

Microsoft Edge TTS    
optional arguments:
  -h, --help            show this help message and exit
  -t TEXT, --text TEXT  what TTS will say
  -f FILE, --file FILE  same as --text but read from file
  -v VOICE, --voice VOICE
                    voice for TTS. Default: en-US-AriaNeural
  -l, --list-voices     lists available voices and exits
  --rate RATE           set TTS rate. Default +0%.
  --volume VOLUME       set TTS volume. Default +0%.
  --pitch PITCH         set TTS pitch. Default +0Hz.
  --words-in-cue WORDS_IN_CUE
                    number of words in a subtitle cue. Default: 10.
  --write-media WRITE_MEDIA
                    send media output to file instead of stdout
  --write-subtitles WRITE_SUBTITLES
                    send subtitle output to provided file instead of
                    stderr

--proxy PROXY use a proxy for TTS and voice list.

4、查看所支持的语言语音

edge-tts -l
edge-tts --list-voices

全书动画图解

"A picture is worth a thousand words."

“一图胜千言”


自定义SSML(已不再支持)

值得注意的是,自从5.0.0版本以后,自定义SSML支持已被移除,因为Microsoft采取了措施阻止其工作。你不能再使用自定义SSML。

Information about the SSML format can be found here on Microsoft's own website: https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/speech-synthesis-markup

更改语速、音量和音调

你可以对生成的语音进行微小的更改,比如改变语速、音量和音调。

$ edge-tts --rate=-50% --text "你好,世界!" --write-media hello_with_rate_halved.mp3 --write-subtitles hello_with_rate_halved.vtt

$ edge-tts --volume=-50% --text "你好,世界!" --write-media hello_with_volume_halved.mp3 --write-subtitles hello_with_volume_halved.vtt

$ edge-tts --pitch=-50Hz --text "你好,世界!" --write-media hello_with_pitch_halved.mp3 --write-subtitles hello_with_pitch_halved.vtt

请注意,为了改变语速,应使用--rate=-50%而不是--rate -50%(注意等号的缺失),否则-50%会被解释为另一个参数。

Python模块

除了命令行工具,你还可以直接从Python中使用edge-tts模块。以下是一些示例应用程序:

基本生成示例
动态语音选择示例
基本音频流示例
带字幕的音频流示例
实用工具模块
Home Assistant的自定义组件示例

结论

在这篇教程中,我们深入了解了如何使用edge-tts模块和命令行工具,将文字转化为语音,并进行各种定制。这一技术可以应用于许多领域,包括语音助手、有声书制作和多媒体内容创作等。希望这个教程对你有所帮助,开启你在文本转语音领域的探索之旅!

5 参考

Edge-tts在Python官方项目上的连接:

edge-tts · PyPI:https://pypi.org/project/edge-tts/

相关参考示例可以在github上查看:

edge-tts/examples:https://github.com/rany2/edge-tts/tree/master/examples