• Hackers Realm

Convert Text to Speech using Python | Speech Synthesis | TTS Tutorial

Converting Text to Speech (TTS) is a project that transform any text data into an audio file using various Machine Learning techniques and libraries. This is very useful for educational features for kids who struggle with reading. TTS gives access to your content to a greater population, such as those with literacy difficulties, learning disabilities, reduced vision and those learning a language.


For this project tutorial we will install the Google text to speech API and the pyttsx3 API and convert a text sentence into and audio file.



You can watch the step by step explanation video tutorial down below


Project Information

The objective of the project is to convert text to speech in real time and convert text to audio file. It uses google text to speech API to convert the text to audio. It also uses pyttsx3 (offline module) that converts text to audio with various customizations.



Google Text to Speech API


We will proceed to install the gTTS module

# install the module
!pip install gTTS

Collecting gTTS Downloading gTTS-2.2.3-py3-none-any.whl (25 kB) Requirement already satisfied: six in c:\programdata\anaconda3\lib\site-packages (from gTTS) (1.15.0) Requirement already satisfied: requests in c:\programdata\anaconda3\lib\site-packages (from gTTS) (2.24.0) Requirement already satisfied: click in c:\programdata\anaconda3\lib\site-packages (from gTTS) (7.1.2) Requirement already satisfied: idna<3,>=2.5 in c:\programdata\anaconda3\lib\site-packages (from requests->gTTS) (2.10) Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\programdata\anaconda3\lib\site-packages (from requests->gTTS) (1.25.11) Requirement already satisfied: certifi>=2017.4.17 in c:\programdata\anaconda3\lib\site-packages (from requests->gTTS) (2020.6.20) Requirement already satisfied: chardet<4,>=3.0.2 in c:\programdata\anaconda3\lib\site-packages (from requests->gTTS) (3.0.4) Installing collected packages: gTTS Successfully installed gTTS-2.2.3



from gtts import gTTS
import os

# input
text = 'Welcome to Hackers Realm. It contains tutorial videos on technology'

# convert text to speech
text_to_speech = gTTS(text=text, lang='en', slow=False)

# save the audio file
text_to_speech.save('test.mp3')

# play the audio
os.system('test.mp3')

0


  • os - used to handle files using system commands

  • lang='en' - Language conf. to English, you may change the language by preference

  • slow=False - Parameter to change audio speed



Pyttsx - Offline


We will install the pyttsx3 module

# install the module
!pip install pyttsx3

Collecting pyttsx3 Downloading pyttsx3-2.90-py3-none-any.whl (39 kB) Requirement already satisfied: comtypes in c:\programdata\anaconda3\lib\site-packages (from pyttsx3) (1.1.7) Collecting pypiwin32 Downloading pypiwin32-223-py3-none-any.whl (1.7 kB) Requirement already satisfied: pywin32 in c:\programdata\anaconda3\lib\site-packages (from pyttsx3) (227) Installing collected packages: pypiwin32, pyttsx3 Successfully installed pypiwin32-223 pyttsx3-2.90



import pyttsx3

# input
text = 'Welcome to Hackers Realm. It contains tutorial videos on technology'

# initialize the module
text_to_speech = pyttsx3.init()

# adjust the speed
text_to_speech.setProperty('rate', 150)

# change the voice
voices = text_to_speech.getProperty('voices')
text_to_speech.setProperty('voice', voices[1].id) # 0 for male and 1 for female

# convert text to speech
text_to_speech.say(text)

# save the audio file
text_to_speech.save_to_file(text, 'test.mp3')

# listen to audio
text_to_speech.runAndWait()
  • pyttsx3.init() - Initialization of the module

  • setProperty('rate', 150) - Set speed of audio

  • setProperty('voice', voices[1].id) - Change voice type to male or female

  • save_to_file() - stores the audio file

  • runAndWait() - stream the converted audio for real time listening

  • Check the documentation to see more customization available for the audio



Final Thoughts


  • Two best modules to convert any text to speech, you may use other similar modules by your preference.

  • The pyttsx3 module has many customization tools for the audio.

  • Very useful tool for educational purposes for learning or fortifying a specific language.


In this project tutorial, we have explored the Convert Text to Speech process using the Google Text to Speech module and the pyttsx3 module. A basic text was converted into an audio file and customization of the audio is also done with the modules.


Get the project notebook from here


Thanks for reading the article!!!


Check out more project videos from the YouTube channel Hackers Realm

79 views