2016-05-30 64 views
0

我正在寫一個基本的談話類似代碼的代碼,它聽取人的意見並重復其旁邊的音頻,我希望它能顯示發言人發言的文本。 我面臨的問題是我無法同時使用打印和收聽命令。 我需要說兩次,即一次用於在屏幕上打印,另一次用於重複它。 我想知道這兩種事情只發生在一次,即音頻應該重複並顯示在同一時間沒有我重複兩次的短語。無法同時打印和收聽

import speech_recognition 
import pyttsx 

speech_engine = pyttsx.init() 
speech_engine.setProperty('rate', 150) 

def speak(text): 
    speech_engine.say(text) 
    speech_engine.runAndWait() 

recognizer = speech_recognition.Recognizer() 

def listen(): 
    with speech_recognition.Microphone() as source: 
     recognizer.adjust_for_ambient_noise(source) 
     audio = recognizer.listen(source) 

try: 

     return recognizer.recognize_google(audio)  
except speech_recognition.UnknownValueError: 
    print("Could not understand audio") 
except speech_recognition.RequestError as e: 
    print("Recog Error; {0}".format(e)) 

return "" 

speak("Say something!") 
print (listen()) 
speak("I heard you say " + listen()) 

回答

2
speak("Say something!") 
text = listen() 
speak("I heard you say " + text) 
+0

那不是工作PAL :( 它只是重複這句話,但不顯示它 –

+3

把'打印(文本)'在最後。 – Kevin

0

寫:

print(audio) 

下:

return recognizer.recognize_google(audio) 
+0

仍然是相同的結果:/ –