Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rany2/edge-tts
Use Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key
https://github.com/rany2/edge-tts
speech-synthesis text-to-speech tts
Last synced: 3 days ago
JSON representation
Use Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key
- Host: GitHub
- URL: https://github.com/rany2/edge-tts
- Owner: rany2
- License: gpl-3.0
- Created: 2021-05-10T18:55:14.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-25T09:29:23.000Z (about 2 months ago)
- Last Synced: 2024-10-29T11:29:30.491Z (about 1 month ago)
- Topics: speech-synthesis, text-to-speech, tts
- Language: Python
- Homepage: https://pypi.org/project/edge-tts/
- Size: 2.01 MB
- Stars: 6,075
- Watchers: 51
- Forks: 605
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- StarryDivineSky - rany2/edge-tts
- gitcat - edge-tts
- AiTreasureBox - rany2/edge-tts - 12-07_6497_0](https://img.shields.io/github/stars/rany2/edge-tts.svg)|Use Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key| (Repos)
- awesome-language-learning - edge-tts - A Python library the uses the reverse engineered Text To Speech API of the Edge browser, producing extremely high quality output. (Developer Resources / Text To Speech)
- awesome - rany2/edge-tts - Use Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key (Python)
- awesome - rany2/edge-tts - Use Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key (Python)
README
# edge-tts
`edge-tts` is a Python module that allows you to use Microsoft Edge's online text-to-speech service from within your Python code or using the provided `edge-tts` or `edge-playback` command.
## Installation
To install it, run the following command:
$ pip install edge-tts
If you only want to use the `edge-tts` and `edge-playback` commands, it would be better to use `pipx`:
$ pipx install edge-tts
## Usage
### Basic usage
If you want to use the `edge-tts` command, you can simply run it with the following command:
$ edge-tts --text "Hello, world!" --write-media hello.mp3 --write-subtitles hello.srt
If you wish to play it back immediately with subtitles, you could use the `edge-playback` command:
$ edge-playback --text "Hello, world!"
Note that `edge-playback` requires the installation of the [`mpv` command line player](https://mpv.io/).
All `edge-tts` commands work with `edge-playback` with the exception of the `--write-media`, `--write-subtitles` and `--list-voices` options.
### Changing the voice
You can change the voice used by the text-to-speech service by using the `--voice` option. The `--list-voices` option can be used to list all available voices.
$ edge-tts --list-voices
Name Gender ContentCategories VoicePersonalities
--------------------------------- -------- --------------------- --------------------------------------
af-ZA-AdriNeural Female General Friendly, Positive
af-ZA-WillemNeural Male General Friendly, Positive
am-ET-AmehaNeural Male General Friendly, Positive
am-ET-MekdesNeural Female General Friendly, Positive
ar-AE-FatimaNeural Female General Friendly, Positive
ar-AE-HamdanNeural Male General Friendly, Positive
ar-BH-AliNeural Male General Friendly, Positive
ar-BH-LailaNeural Female General Friendly, Positive
ar-DZ-AminaNeural Female General Friendly, Positive
ar-DZ-IsmaelNeural Male General Friendly, Positive
ar-EG-SalmaNeural Female General Friendly, Positive
...$ edge-tts --voice ar-EG-SalmaNeural --text "مرحبا كيف حالك؟" --write-media hello_in_arabic.mp3 --write-subtitles hello_in_arabic.srt
### Custom SSML
Support for custom SSML was removed because Microsoft prevents the use of any SSML that could not be generated by Microsoft Edge itself. This means that all the cases where custom SSML would be useful cannot be supported as the service only permits a single `` tag with a single `` tag inside it. Any available customization options that could be used in the `` tag are already available from the library or the command line itself.
### Changing rate, volume and pitch
You can change the rate, volume and pitch of the generated speech by using the `--rate`, `--volume` and `--pitch` options. When using a negative value, you will need to use `--[option]=-50%` instead of `--[option] -50%` to avoid the option being interpreted as a command line option.
$ edge-tts --rate=-50% --text "Hello, world!" --write-media hello_with_rate_lowered.mp3 --write-subtitles hello_with_rate_lowered.srt
$ edge-tts --volume=-50% --text "Hello, world!" --write-media hello_with_volume_lowered.mp3 --write-subtitles hello_with_volume_lowered.srt
$ edge-tts --pitch=-50Hz --text "Hello, world!" --write-media hello_with_pitch_lowered.mp3 --write-subtitles hello_with_pitch_lowered.srt## Python module
It is possible to use the `edge-tts` module directly from Python. Examples from the project itself include:
* [/examples/](/examples/)
* [/src/edge_tts/util.py](/src/edge_tts/util.py)Other projects that use the `edge-tts` module include:
* [hass-edge-tts](https://github.com/hasscc/hass-edge-tts/blob/main/custom_components/edge_tts/tts.py)
* [Podcastfy](https://github.com/souzatharsis/podcastfy/blob/main/podcastfy/tts/providers/edge.py)