Skip to main content

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, ffmpeg and libespeak1 as shown below

    sudo 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.

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)

Table of built distributions (wheels) for py3-tts 4.1
File Interpreter ABI Platform
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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page