Lỗi speech_recognition khi nghe người nói

import speech_recognition #Tên thư viện

robot_ear = speech_recognition.Recognizer() #Khỏi tạo nên 1 cái mà robot có thể nghe được
with speech_recognition.Microphone() as mic: #Ở đây mình sử dụng with để bật cái mic sau khi dùng xong mic sẽ tự tắt
    print("Robot: I'm Listening")
    audio = robot_ear.listen(mic)
 
try:
    you = robot_ear.recognizer_google(audio) #Đây nó sẽ nhận dạng âm thanh
except:
    you = "" # nếu không nói gì hoặc âm thanh không đúng 
# ở phần try và except kia để xử lý việc khi bật mic lên mà không nói gì hoặc những âm thanh không đúng nó sẽ sinh ra lỗi và khi có lỗi sẽ hiển thị "" thay vì báo lỗi trên màn hình của bạn.
print("You: " + you)

running terminal

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users\HIEN>py -3 nghe.py 
Robot: I'm Listening
You:

cái này nó hướng dẫn cho mình nhưng phần you = “”
bình thường khi lập trình ai thì cái đống vai trò kết nối phần ai là phần mình lập trình cho nó giao tiếp được nhưng cái này you = “” phải điền vào như hello thì nó ra là

you = hello
robot = hello

mình nói gì như what your name phần lập trình của mình
thì nó vẫn ra

you = hello
robot = hello

mọi người giúp mình khắc phục sửa lỗi giùm mình với

Tức là đoạn mã trên nó luôn chạy vào phần except phải không? Nghĩa là có lỗi gì đó, có thể mic có vấn đề, hoặc bạn chưa bật mạng hoặc vấn đề gì đó khác… Để chắc nhất là bạn nên in ra thông tin lỗi cụ thể.

except Exception as e:
    logging.error(traceback.format_exc())
1 Like

mic mình mạng mình không bị sao hết mà nó bị vậy bạn giúp mình với

import speech_recognition #Tên thư viện
import pyttsx3
from datetime import date, datetime


robot_ear = speech_recognition.Recognizer() #Khỏi tạo nên 1 cái mà robot có thể nghe được
robot_mouth = pyttsx3.init()
robot_brain = ""

while True:
    with speech_recognition.Microphone() as mic: #Ở đây mình sử dụng with để bật cái mic sau khi dùng xong mic sẽ tự tắt
        print("Robot: I'm Listening")
        audio = robot_ear.listen(mic)
     
    print("Robot: ...")

    try:
        you = robot_ear.recognizer_google(audio) #Đây nó sẽ nhận dạng âm thanh
    except:
        you = "hello" 
        print("You: " + you)
    if you == "":
        robot_brain = "I can't hear you, try again"
    elif you == "hello":
        robot_brain = "hello hien"
    elif you == "what is today":
        today = date.today()
        robot_brain = today.strftime("%B %d, %Y")
    elif you == "what time is it":
        now = datetime.now()
        robot_brain = now.strftime("%H hours %M minutes %S seconds")
    elif you == "what your name":
        robot_brain = "My name is Hanh"
    elif "bye" in you:
        robot_brain = "Bye Hien"
        print("Robot: " + robot_brain)
        robot_mouth.say(robot_brain)
        robot_mouth.runAndWait()
        break
    else:
        robot_brain = "I'm fine thank you and you"

    print("Robot: " + robot_brain)
    robot_mouth.say(robot_brain)
    robot_mouth.runAndWait()

giờ nó bị vậy rồi thì mình cần thay dổi dòng có cho nó hợp với cái lỗi này vậy

Bạn không hiển thị thông tin lỗi trong except:. Do đó tụi mình không thể biết chính xác bạn đang gặp lỗi như thế nào.

Cách đơn giản nhất là bỏ try except đi, cho nó dừng app rồi đọc lỗi trên terminal.

6 Likes

Bạn bỏ cái dòng try except đi nhé …Đã méo biết lỗi kiểu gì lại còn bắt except all thì code kiểu gì ??

3 Likes

attributeError: ‘Recognizer’ object has no attribute ‘recognize_google’

giờ sửa lỗi sao vậy ?

sửa thành recognize_google nha. Sai chính tả.

Mình nghĩ là bạn nên học lại python trước khi tiếp tục. Sẽ còn nhiều lỗi khác nữa mà bạn không tự sửa được nếu thiếu kiến thức…

5 Likes

mình là người bắt đầu mà

sau khi mình sửa lại và chạy code thì lỗi
AttributeError: module ‘speech_recognition’ has no attribute ‘Recognizer’. Did you mean: ‘Recognizer’?

Các lỗi kiểu này có 2 trường hợp:

  • Bạn ghi sai chính tả
  • Module import của bạn không đúng đường dẫn:
    • Do bạn không rõ cấu trúc của thư viện bạn import
    • Do bạn đang sử dụng thư viện version cũ hơn thư viện của document hướng dẫn bạn

Bạn có thể tự kiểm tra bằng cách xem trong thư viện speech_recognition nó viết gì. https://github.com/Uberi/speech_recognition

Nếu bạn chưa hiểu cách python sử dụng import thế nào thì nên học cái đó trước khi làm tiếp. Mình cực kỳ hi vọng bạn bỏ chút thời gian tự học lại python trong vòng 1 tuần trước khi tiếp tục những gì bạn định làm, đặc biệt về import, library, Class, và method. Các khái niệm và ví dụ minh họa.

Sau khi bạn đọc và hiểu xong những khái niệm trên. Quay lại vấn đề debug lỗi ở trên, bạn sẽ xác định lỗi ở đâu bằng cách:

  • Tra từ khóa xem viết đúng chính tả chưa
  • Print tất cả attribute của speech_recognition để biết nó đang nằm ở vị trí nào. Ví dụ print(vars(speech_recognition))
5 Likes
import speech_recognition as sr
# initialize the recognizer
r = sr.Recognizer()
with sr.Microphone() as source:
    # read the audio data from the default microphone
    audio_data = r.record(source,duration=5)
    print("Recognizing...")
    # convert speech to text
    try:
        text = r.recognize_google(audio_data, language="vi")
    except:
        text = ""
    print(text)

nó cứ chạy nó miết vì không tắt được except
vì vậy mình nói gì thì nó không hiện ra và không chuyển âm thành văn bản
mọi người giúp mình thêm code bớt code giúp mình mình cảm ơn

Rất nể những ai ngồi kiên nhẫn chỉ từng tí cho chủ top chạy được mẩu code trên. Chủ top không biết Python thì bỏ công ra học đi đã rồi làm gì thì làm, chứ ngồi trông có người sửa hộ mãi sao được. Kiến thức học thì còn dùng mãi chứ có phải chỉ 1 lần này thôi đâu.

8 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?