simlock
A control plane so parallel coding agents stop fighting over the same simulator.
Offline Text To Speech synthesis for python
Translation pending
Developer toolsPython · MakefileGitHub @nateshmbhatSelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗pyttsx3 is a text-to-speech conversion library in Python. Unlike alternative libraries, it works offline.
Buy me a coffee 😇
pip install pyttsx3
If you get installation errors , make sure you first upgrade your wheel version using :
pip install --upgrade wheel
If you are on a Linux system and if the voice output is not working, then :
Install espeak-ng and libespeak1 as shown below:
sudo apt update && sudo apt install espeak-ng libespeak1
import pyttsx3
engine = pyttsx3.init()
# For Mac, If you face error related to "pyobjc" when running the `init()` method :
# Install 9.0.1 version of pyobjc : "pip install pyobjc>=9.0.1"
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()
https://pyttsx3.readthedocs.io
| Linux | macOS | Windows | |
|---|---|---|---|
| AVSpeech | ✅︎ | ||
| eSpeak | ✅︎ | ✅︎ | ✅︎ |
| NSSpeechSynthesizer | ✅︎ | ||
| SAPI5 | ✅︎ |
[!NOTE]
- AVSpeechSynthesizer support is still experimental.
- NSSpeechSynthesizer is deprecated by Apple.
Feel free to wrap another text-to-speech engine for use with pyttsx3.