Text to speech

We can make the computer speak with Python.

Given a text string, it will speak the written words in the English language.
This process is called Text To Speech (TTS).

You may like: Deep Learning A-Z: Hands-On Artificial Neural Networks

Text to speech

Pyttsx text to speech

Pytsx is a cross-platform text-to-speech wrapper.
It uses different speech engines based on your operating system:

  • nsss – NSSpeechSynthesizer on Mac OS X 10.5 and higher
  • sapi5 – SAPI5 on Windows XP, Windows Vista, and (untested) Windows 7
  • espeak – eSpeak on any distro / platform that can host the shared library (e.g., Ubuntu / Fedora Linux)

Install with pip (using pyenv, pipenv or virtualenv):

sudo pip install pyttsx

Then run the example code:

gTTS text to speech

gTTS is a module and command line utility to save spoken text to mp3.
It uses the Google Text to Speech (TTS) API.

Listen to the voice sample below:

This module supports many languages and sounds very natural.

Install with the python package tool (pip):

sudo pip install gTTS


If you want to test it on the command line use:

gtts-cli.py “Hello” -l ‘en’ -o hello.mp3

iOS TTS and speech recognition

TTS in Pythonista for iOS:

To record sound:

To recognize it as text:

Microsoft speech engine

If you use Microsoft Windows 10, it has a speech engine included.
Install the module win32com, then you can use this code:

IBM Watson TTS

IBM has created an tts API, which is free for a limited amount of queries.

Their API has many languages including English, German, Spanish, French, Italian, Japanese and Portuguese. They also have different speakers.

You can listen to sample data on the Watson TTS page.

You can use the tts-watson module to interact.

pip install tts-watson

After registrating on the IBM watson site (generate keys there),
we can write our code:

Alternatively you can use curl to directly fetch from the API.

Previous Post
Next Post


Leave a Reply