With this app you write a word, press space and the computer say it. It’s as simple as it is. I uses the google api gtts and you need to install gtts
pip install gtts
When you got a new word it will be saved in a folder. When it’s yet saved, it just plays it.

You can find the repository here: https://github.com/formazione/textspeak
# create the mp3 letters audio files
import os
from gtts import gTTS
import tkinter as tk
from pygame import mixer
def speak(word):
print("looking for word in dictionary")
print(os.listdir("audio/"))
if f"{word}.mp3" not in os.listdir("audio/"):
print("This is not present... creating")
t = gTTS(word, "it")
t.save(f"audio/{word}.mp3")
print("created " + word)
show_list()
def show_list():
global lbx
lbx.delete("0", tk.END)
elenco = os.listdir("audio")
elenco.sort(reverse=False)
for file in elenco:
if len(file[:-4]) == 1:
lbx.insert("end", f"")
lbx.insert("end", f"=== [ {file[:-4]} ] ====")
else:
lbx.insert("end", file)
def start():
global word, lbx, text
mixer.init()
word = ""
def audiokey(event):
global word
print(event.char)
try:
if event.char == " " or event.char in ",.!?":
speak(word)
mixer.music.load("audio/" + word + ".mp3")
mixer.music.play()
word = ""
else:
word += str(event.char)
print(word)
except:
word=""
def indietro(event):
global word
print(event.char)
word = word[:-1]
print(word)
try:
mixer.music.load("indietro.mp3")
mixer.music.play()
except:
pass
def _return(evt):
global word
speak(word)
mixer.music.load("audio/" + word + ".mp3")
mixer.music.play()
word = ""
root = tk.Tk()
root.title("Type to hear the pc reading the text when press space")
root.geometry("600x400+200+400")
# text widget where you write
lbx = tk.Listbox(
root,
bg="black",
fg="white"
)
lbx.pack(side="left", fill="both")
show_list()
text = tk.Text(root)
text.pack()
lbx.bind("<Double-Button>", add_word_to_text)
text.focus()
text.bind("<Key>", audiokey)
text.bind("<BackSpace>", indietro)
text.bind("<Return>", _return)
root.mainloop()
def add_word_to_text(evt):
global lbx, text
word = lbx.get(lbx.curselection())
word = word[:-4]
print(word)
text.insert("end", word)
mixer.music.load("audio/" + word + ".mp3")
mixer.music.play()
text.insert("end", " ")
speak(word="spazio, indietro")
start()

Subscribe to the newsletter for updates
Tkinter templatesTwitter: @pythonprogrammi - python_pygame
Claude's Games
1. Memory gameVideos
Speech recognition gamePygame's Platform Game