Offline Text To Speech (TTS) converter for Python
py3-tts (originally pyttsx3) is a text-to-speech conversion library in Python. Unlike alternative libraries, it works offline.
Installation
pip install py3-tts
If you get installation errors, make sure you first upgrade your wheel version using
pip install --upgrade wheel
Linux installation requirements
-
If you are on a linux system and if the voice output is not working,
Install
espeak,ffmpegandlibespeak1as shown belowsudo apt update && sudo apt install espeak ffmpeg libespeak1
Features
- ✨Fully OFFLINE text to speech conversion
- 🎈 Choose among different voices installed in your system
- 🎛 Control speed/rate of speech
- 🎚 Tweak Volume
- 📀 Save the speech audio as a file
- ❤️ Simple, powerful, & intuitive API
Usage
import pyttsx3
engine = pyttsx3.init()
engine.say("I will speak this text")
engine.runAndWait()
Single line usage with speak function with default options
import pyttsx3
pyttsx3.speak("I will speak this text")
Changing Voice, Rate and Volume
import pyttsx3
engine = pyttsx3.init() # object creation
# RATE
rate = engine.getProperty('rate') # getting details of current speaking rate
print (rate) # printing current voice rate
engine.setProperty('rate', 125) # setting up new voice rate
# VOLUME
volume = engine.getProperty('volume') # getting to know current volume level (min=0 and max=1)
print (volume) # printing current volume level
engine.setProperty('volume',1.0) # setting up volume level between 0 and 1
# VOICE
voices = engine.getProperty('voices') # getting details of current voice
#engine.setProperty('voice', voices[0].id) # changing index, changes voices. o for male
engine.setProperty('voice', voices[1].id) # changing index, changes voices. 1 for female
engine.say("Hello World!")
engine.say('My current speaking rate is ' + str(rate))
engine.runAndWait()
engine.stop()
# Saving Voice to a file
# On Linux, make sure that 'espeak-ng' is installed
engine.save_to_file('Hello World', 'test.mp3')
engine.runAndWait()
Included Text-To-Speech Engines by Operating System
| Linux | macOS | Windows | |
|---|---|---|---|
| AVSpeech | ✅︎ | ||
| eSpeak | ✅︎ | ✅︎ | ✅︎ |
| NSSpeechSynthesizer | ✅︎ | ||
| SAPI5 | ✅︎ |
Feel free to wrap another text-to-speech engine for use with pyttsx3.
Project Links
- PyPI (https://pypi.org/project/py3-tts/)
- GitHub (https://github.com/thevickypedia/py3-tts)
- Full Documentation (https://py3-tts.vigneshrao.com/)
Credits
nateshmbhat for the original code pyttsx3
Metadata
Release files for py3-tts 4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py3_tts-4.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / py3_tts-4.1-py3-none-any.whl
| Download URL | py3_tts-4.1-py3-none-any.whl |
|---|---|
| Size | 37.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
392d8843ddadd0758a2a7aaa5e6d96af23bb61eaaf8613758bdae4465d75e9e0
|
|
BLAKE2b-256 checksum How to use checksums |
5edfcad936f9f261ee07b01732c801729e42909d9700028b572086c687ede211
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0rc1
|