DEV Community

charan
charan

Posted on

Python text to speech conversion

In order to convert a given text to speech, In python, we use pyttsx3 module. pyttsx3 is a text-to-speech conversion library in Python. It works offline, and is compatible with both Python 2 and 3.

Use this command for installation:

** pip install pyttsx3
**

**Usage:
**First we need to import the module pyttsx3 using import statement. Then we need to initialize it using init() function.

After initializing, we need the program to speak using say() function. This takes two arguments as below:

say(text, name string)

text : Any text you wish to hear.
name : To set a name for this speech. (optional)

To run the speech we use runAndWait(). The say() function texts won’t be said unless the interpreter encounters runAndWait().

Example Code #1:

importing the pyttsx library

import pyttsx3

initialisation

engine = pyttsx3.init()

testing

engine.say("Hello world")
engine.say("My first code on text-to-speech")
engine.runAndWait()

We can also change voice (Male or Female) and manage volume control, Also, we can increase or decrease voice rate.

Example Code #2:
Changing Voice, Volume and Voice rate:

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.say('The quick brown fox jumped over the lazy dog.')
engine.runAndWait()
engine.stop()

Top comments (0)