Tkinter interface for text to speech

Google text to speech api allows you to transform text into speech. You need:

pip install gtts

and then you need to import this module.

To save an mp3 with a text to speech text is very easy. I made an interface to use it.

Github repository.

Tkinter interface for text to speech

"""Use gtts with Python.

Create mp3 from text with python, tkinter and gtts
2018
@ Giovanni Gatto
"""

# A PROGRAM FROM GIOVANNI GATTO AKA EDUCATIONAL CHANNEL ON YOUTUBE
# AKA PYTHONPROGRAMMI ON TWITTER
# published on http://pythonprogramming.altervista.org

from gtts import gTTS
import os
import tkinter as tk

root = tk.Tk()
root.geometry("400x400+500+100")

# THE ACTION LINKED TO THE EVENT LISTENER
def create_mp3(lang="en"):

    print(lan.get())
    if lan.get() != None:
        lang = str(lan.get())
    s = gTTS(text.get(0.0, tk.END), lang=lang)
    s.save(f"{str(mp3.get())}.mp3")
    filename = mp3.get() + ".mp3"
    os.system("start " + filename)

# THE FIRST LABEL TELLS YOU WHAT TO DO TO MAKE IT WORK
title = tk.Label(root, text="PRESS ENTER TO HEAR THE TEXT")
title.pack()
title['bg'] = 'yellow'
# WHERE YOU WRITE THE TEXT

# THE LANGUAGE
    # THE LABEL
l2 = tk.Label(root, text="Choose language (default is english=en)")
l2.pack()
    # THE ENTRY WIDGET
lan = tk.StringVar()
language = tk.Entry(root, textvariable=lan)
language.pack()
lan.set("en")

# THE NAME OF THE FILE
mp3 = tk.StringVar()
mp3title = tk.Entry(root, textvariable=mp3, width=50)
mp3title.pack()
mp3.set("myfile")

# THE EVENT LISTENER
root.bind("<Return>", lambda x: create_mp3())

t = tk.StringVar()
text = tk.Text(root, bg="gold")
text.pack()

root.mainloop()


Subscribe to the newsletter for updates
Tkinter templates
Avatar My youtube channel

Twitter: @pythonprogrammi - python_pygame

Videos

Speech recognition game

Pygame's Platform Game

Other Pygame's posts

Published by pythonprogramming

Started with basic on the spectrum, loved javascript in the 90ies and python in the 2000, now I am back with python, still making some javascript stuff when needed.