โมดูล SpeechRecogniton ช้าเกินไปใน python
ฉันพยายามใช้การรู้จำเสียงสำหรับ Deep Learning Chatbot ของฉันเพื่อรับข้อมูลจากผู้ใช้ จริงๆแล้วรหัสฟังก์ชันการรู้จำเสียงของฉันคือ:
def get_audio():
r = sr.Recognizer()
with sr.Microphone() as source:
r.pause_threshold = 1
r.adjust_for_ambient_noise(source, duration=1)
audio = r.listen(source)
said = ""
try:
print("Listening...")
said = r.recognize_google(audio)
print("You said: " + said)
except Exception as e:
print("Exception: " + str(e))
return said.lower()
ไม่มีข้อผิดพลาดใด ๆ และนั่นเป็นข้อผิดพลาดที่ใหญ่ที่สุด! ไม่มีปัญหากับการเชื่อมต่ออินเทอร์เน็ตเนื่องจากฉันสามารถสตรีมวิดีโอคุณภาพสูงได้ในเวลาเดียวกันและนี่ไม่ใช่วิดีโอด้วยซ้ำเพราะเป็นสตริงดังนั้นปัญหาอาจเกิดจากอะไร ต้องรอเกือบ 15 นาทีจึงจะได้รับข้อความ
ฉันได้ลองใช้ API ออฟไลน์แล้วด้วย: recognize_sphinix()วิธีนี้ คุณต้องสร้างไฟล์การติดตั้งไบนารี (whl) ของ pocketsphinix อ้อฉันลืมพูดถึงคุณต้องสร้าง pyaudio ในเครื่องของคุณด้วยเพื่อใช้การจดจำเสียงพูด ฉันได้ทำทุกอย่างแล้วแม้จะมีปัญหาเดียวกันกับ API ออฟไลน์นี้ ... เมื่อเช้าrecognize.sphinix()จำสิ่งที่ฉันบอกได้ 2-3 ครั้ง แต่ตอนนี้มันยังไม่ตอบสนองเลย!
หมายเหตุ:ฉันได้ตรวจสอบพีซีของฉันด้วยตัวจัดการงานโดยมีเพียงฟังก์ชั่นการรู้จำเสียงที่ทำงานอยู่และ Python ใช้ RAM เพียง 9MB และใช้งาน CPU 0.3% ดังนั้นจึงไม่มีปัญหากับพลังคอมพิวเตอร์ที่ จำกัด
ใครสามารถแก้ปัญหานี้? คุณจะทำให้วันของฉันถ้าคุณแก้ปวดหัวนี้ ขอบคุณล่วงหน้า!
คำตอบ
ตอนนี้เลิกใช้พารามิเตอร์ระยะเวลาแล้ว Ref คำถาม StackOverflow
ใช้แทนphrase_time_limitหรือtimeout.
นี่คือบล็อกของรหัสโดยใช้phrase_time_limit:
import speech_recognition as sr
def myCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
audio = r.listen(source, phrase_time_limit = 5)
try:
command = r.recognize_google(audio).lower()
print("you said: " + command)
except sr.UnknownValueError:
print("Sorry, Cant understand, Please say again")
command = myCommand()
return command
ทำงานได้ดีอย่างสมบูรณ์