Modul SpeechRecogniton terlalu lambat di python
Saya mencoba menggunakan Speech Recognition untuk Deep Learning Chatbot saya untuk mendapatkan masukan dari pengguna. Sebenarnya kode fungsi Speech-Recognition saya adalah ini:
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()
Tidak ada kesalahan, dan itulah kesalahan terbesar! Tidak ada masalah dengan koneksi internet saya karena saya dapat melakukan streaming video berkualitas tinggi pada saat yang sama, dan ini bahkan bukan video, ini adalah string, jadi apa masalahnya? Saya harus menunggu hampir 15 menit untuk mendapatkan SMS.
Nah, saya juga mencoba API offline: recognize_sphinix()metodenya. Anda perlu membangun file instalasi biner (whl) dari pocketsphinix. Oh, saya lupa menyebutkan, Anda juga perlu membangun pyaudio di mesin Anda untuk menggunakan speech_recognition. Saya telah melakukan semua itu, bahkan masalah yang sama adalah dengan API offline ini ... Di pagi hari recognize.sphinix()mengenali 2-3 kali lipat dari apa yang saya katakan, tetapi sekarang, itu bahkan tidak menanggapi itu!
CATATAN: Saya telah memantau pc saya dengan task manager dengan hanya menjalankan fungsi pengenalan suara, dan Python hanya mengambil 9MB RAM, dan penggunaan CPU 0,3%. Jadi tidak ada masalah dengan Computing Power yang terbatas.
Adakah yang bisa mengatasi ini? Anda akan membuat hari saya menyenangkan jika Anda mengatasi sakit kepala ini. Terima kasih sebelumnya!
Jawaban
Parameter durasi sudah tidak digunakan lagi sekarang. Ref pertanyaan StackOverflow .
Sebagai gantinya gunakan phrase_time_limitatau timeout.
Berikut adalah blok kode yang menggunakan 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
Ini bekerja dengan baik.