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

Downloads PyPI version

Credits to nateshmbhat for creating the original library pyttsx3.

Offline Text To Speech (TTS) converter for Python

RLVoice is a text-to-speech conversion library in Python. Unlike alternative libraries, it works offline.

Installation :

pip install rlvoice-1

If you get installation errors , make sure you first upgrade your wheel version using :
pip install --upgrade wheel

DO NOT USE pip install rlvoice, make sure you add the -1 next to it, or it will download the wrong package.

Linux installation requirements :

  • If you are on a linux system and if the voice output is not working , then :

    Install espeak , ffmpeg and libespeak1 as shown below:

     sudo apt update && sudo apt install espeak ffmpeg libespeak1
    

OS X installation requirements :

  • If you are on a MacOS system and if you get an error such as NameError: name 'objc' is not defined. Did you mean: 'object'? , then :

    Install the pyobjc library as shown below:

     pip install pyobjc==9.0.1
    

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 rlvoice

engine = rlvoice.init()
engine.say("I will speak this text")
engine.runAndWait()

Single line usage with speak function with default options

import rlvoice

rlvoice.speak("I will speak this text")

Changing Voice , Rate and Volume :

import rlvoice

engine = rlvoice.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()

Full documentation is located in the docs folder.

Included TTS engines:

  • sapi5
  • nsss
  • espeak
  • coqui_ai_tts

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

Project Links :

Project details


Download files

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

Source Distribution

rlvoice-1-1.3.4.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

rlvoice_1-1.3.4-py3-none-any.whl (29.2 kB view details)

Uploaded Python 3

File details

Details for the file rlvoice-1-1.3.4.tar.gz.

File metadata

  • Download URL: rlvoice-1-1.3.4.tar.gz
  • Upload date:
  • Size: 27.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for rlvoice-1-1.3.4.tar.gz
Algorithm Hash digest
SHA256 2749105774c4306d746979672cc74302ff1d05dd56f9874eccbe8e04dd505558
MD5 fa4492bb2a8c4168eb144d5d709fe1be
BLAKE2b-256 0dbb33d32c8e3dcb750fa5b96d98a3923cfcc03b0c7ef31728387f8e3db2bbc4

See more details on using hashes here.

File details

Details for the file rlvoice_1-1.3.4-py3-none-any.whl.

File metadata

  • Download URL: rlvoice_1-1.3.4-py3-none-any.whl
  • Upload date:
  • Size: 29.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for rlvoice_1-1.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6caf0f854b47fd68b93b84428f5d4fa3e2c8aa0c5d8e58e89c993b8f9a797e4b
MD5 95efb32dc1350f655a63a0b593cb2044
BLAKE2b-256 34525433f8c21660977304bc530f0bd161212c316fafda2e971e4fe19da0f19b

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