Skip to main content

Text to Speech (TTS) library for Python 3. Works without internet connection or delay. Supports multiple TTS engines, including Sapi5, nsss, and espeak.

Project description

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' and 'ffmpeg' are installed
engine.save_to_file('Hello World', 'test.mp3')
engine.runAndWait()

Included TTS engines

  • sapi5
  • nsss
  • espeak

Feel free to wrap another text-to-speech engine for use with pyttsx3.

Project Links

Credits

nateshmbhat for the original code pyttsx3

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

py3_tts-3.5-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file py3_tts-3.5-py3-none-any.whl.

File metadata

  • Download URL: py3_tts-3.5-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for py3_tts-3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a4dbe26f328db0d8f120f30dc881c2ecd4fd18e13c7a3bcd4f0cbec61b419f2f
MD5 69c761b40de97c5470189646b857ea18
BLAKE2b-256 fb342691608c5f88afe2af4245d371d77f2879fd4cc32e9cdf00102ba3da5a8e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page