Also die Aufgabe war es ein kleines Programm zu schreiben das einen geschriebenen Text über die Hauseigene Computerstimme ausgibt. Dabei war mir wichtig das die Bestätigung (des eingegebenen Textes) sowohl über die "Return"-Taste als auch über ein Button funktioniert.
Des weiteren wollte ich die Möglichkeit von einigen wenigen Standardsätzen haben. Das heißt über die Betätigung verschiedener Button sollten direkt die Sätze aus gegeben werden.
So ich habe die Hoffnung das sich der ein oder andere diesen Code vielleicht doch ansieht und mir meine Fehler zeigt. Ich gehe davon aus das es einiges gibt das man anderes machen müsste. Zum Beispiel die Umsetzung der Standardsätze finde ich selbst hässlich.
Code: Alles auswählen
from tkinter import *
import win32com.client
"""
Stimme
------------------------------------------------------------
Es greift auf die Windows eigene Stimme zu.
Es ist möglich eine Eingabe von Hand zu tätigen oder einen Standardsatz
aus zu wählen.
"""
class Stimme():
def __init__(self):
self.fenster = Tk()
self.stimme = win32com.client.Dispatch("SAPI.SpVoice")
self.fenster.title( "Stimme v2.1" )
self.frame_oben = Frame( master = self.fenster, relief = RIDGE, bd = 3 )
self.frame_oben.pack(padx = 10, pady = 10)
self.frame_unten = Frame(master = self.fenster, relief = RIDGE, bd = 3 )
self.frame_unten.pack(padx = 10, pady = 10)
self.eingabe = Entry( master = self.frame_oben, width = 60 )
self.eingabe.pack(padx = 10, pady = 10)
self.eingabe.bind( "<Return>", self.sprachausgabe_entry )
self.button = Button( master = self.frame_oben, text = "Sprechen", width = 10, height = 3)
self.button.pack(padx = 10, pady = 10)
self.button.bind( "<Button-1>", self.sprachausgabe_entry )
self.beispiel1 = Button( master = self.frame_unten, text = "Blödmann!", width = 54 )
self.beispiel1.pack()
self.beispiel1.bind( "<Button-1>", self.sprachausgabe_beispiel1 )
self.beispiel2 = Button( master = self.frame_unten, text = "Wie geht es dir?", width = 54 )
self.beispiel2.pack()
self.beispiel2.bind( "<Button-1>", self.sprachausgabe_beispiel2 )
self.beispiel3 = Button( master = self.frame_unten, text = "Wie ist das Wetter heute?", width = 54 )
self.beispiel3.pack()
self.beispiel3.bind( "<Button-1>", self.sprachausgabe_beispiel3 )
self.fenster.mainloop()
def sprachausgabe_entry(self, event):
self.txt = self.eingabe.get()
self.stimme.speak( self.txt )
self.eingabe.delete( 0, len(self.txt) )
def sprachausgabe_beispiel1(self, event):
self.txt = "Blödmann!"
self.stimme.speak( self.txt )
def sprachausgabe_beispiel2(self, event):
self.txt = "Wie geht es dir?"
self.stimme.speak( self.txt )
def sprachausgabe_beispiel3(self, event):
self.txt = "Wie ist das Wetter heute?"
self.stimme.speak( self.txt )
def main():
vocal = Stimme()
if __name__ == "__main__":
main()
P.S.: Danke dafür: viewtopic.php?f=1&t=26700&p=201865&hili ... be#p201865
hat sehr geholfen.