thevickypedia / py3-tts

Offline Text To Speech library for python
https://py3-tts.vigneshrao.com/
Mozilla Public License 2.0
19 stars 3 forks source link
py3-tts pytts pyttsx3 text-to-speech

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

Features

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

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

Project Links

Credits

nateshmbhat for the original code pyttsx3