Ich versuche, ein Skript mit Spracherkennung zu machen. Also ich habe 3 Dateien. 1 Datei hört zu was ich sage und dann drucke es in eine Datei. Das andere Skript liest die Datei und antwortet je nachdem, was die Datei sagt. Das dritte Skript beginnt gerade die 2 anderen SkriptenPython-Skript wartet nicht auf Eingabe in Dateien
1. Skript (stt.py):
import os
import pyttsx
import sys
from pocketsphinx import LiveSpeech, get_model_path
engine = pyttsx.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', 'english+f3')
f = open("test.out", 'w')
sys.stdout = f
model_path = get_model_path()
speech = LiveSpeech(
verbose=False,
sampling_rate=16000,
buffer_size=2048,
no_search=False,
full_utt=False,
hmm=os.path.join(model_path, 'en-us'),
lm=os.path.join(model_path, 'en-us.lm.bin'),
dic=os.path.join(model_path, 'cmudict-en-us.dict')
)
f = open("test.out", 'w')
sys.stdout = f
for phrase in speech:
print (phrase)
f.write ("end")
2st Skript (speak.py):
import pyttsx
import sys
engine = pyttsx.init()
voices = engine.getProperty('voices')
f = open("test.out", 'w')
sys.stdout = f
volume = engine.getProperty('volume')
engine.setProperty('voice', 'english+f3')
engine.setProperty('volume', volume-0.10)
engine.say("good morning master, I'm Moas. How can I help you?")
engine.runAndWait
if 'start' in open('test.out').read():
engine.say("Hello Admin")
else:
engine.say("I did not understand")
engine.runAndWait()
3. Skript (starten. py)
execfile("speak.py")
execfile("stt.py")
Also, wenn ich "start.py" Start Es Terminal öffnet, sagt " goodmorning master, im moas wie kann ich dir helfen, ich habe es nicht verstanden ". Dann sitzt es einfach und wartet auf nichts. Wenn ich nur "speak.py" starte, sagt es dasselbe wie oben und schaltet sich dann aus.
Was ich die Datei tun soll, ist die Datei alle 10 Sekunden zu überprüfen, um zu sehen, ob es sich geändert hat und dann zu antworten, je nachdem, was die Datei sagt.
Wer hat irgendwelche Ideen?
Die Antworten [hier] (https://stackoverflow.com/questions/1703640/how-to-implement-a-pythonic-equivalent -von-Schwanz-f) kann hilfreich sein. Aber warum öffnen beide Skripte "test.out" zum Schreiben, und warum öffnet stt.py es zweimal (ohne dazwischenliegende '.close()')? –