01/10/2018, 09:47

Speech Recognition Python3

E đang cố nhận giọng nói bằng speech_recognition. Nhưng mặc dù e đã hét khàn tiếng như hình như nó chưa chạy tới được cái print("you said") nữa. Trong khi e thử chạy trên cmd với lệnh python -m speech_recognition thì nó vẫn nhận được cái e nói.
Anh chị cho e cái hướng dẫn với. E cám ơn ạ

import speech_recognition as sr

r = sr.Recognizer()
with sr.Microphone() as source:
    print("Say something!")
    audio = r.listen(source)
    print("You said: " + r.recognize_google(audio))
Đào An viết 11:59 ngày 01/10/2018

recognize_google(audio)
Hình như phải có key api
Còn cái trên terminal là offline dùng cmu sphinx

Henry viết 12:03 ngày 01/10/2018

recognize_google(audio) Hình như phải có key api

Vậy bạn có giải pháp nào cho mình không?

Đào An viết 11:58 ngày 01/10/2018

recogize_sphinx. Học dùng wit.ai chính xác hơn (free)

Henry viết 12:00 ngày 01/10/2018

không biết phải mình sai không. Nhưng không catch được

Đào An viết 12:00 ngày 01/10/2018

Đăng ký tài khoản wit.ai rồi lấy api key vào đây xem doc mà làm ý. chứ thằng kia thì m ko rõ lắm

GitHub

wit-ai/pywit

pywit - Python library for Wit.ai

Henry viết 11:58 ngày 01/10/2018

thật sự là vẫn bối rối, chưa biết làm sao cả.

Thành Phạm viết 11:50 ngày 01/10/2018

Mình vừa test thử thấy cái hàm listen này nó dở dở kiểu gì ấy , kiểu nó tự động nhận diện khi nào có giọng nói khi nào không => trường hợp của bạn chắc là nó không nhận diện được khi nào bạn nói/ngừng nói => không qua được dòng listen.

Giải pháp là dùng record kết hợp với parameter duration, nó lập tức thu âm thanh của bạn trong bao nhiêu giây xong rồi dừng, như vậy sẽ đảm bảo là qua được đoạn record âm thanh.

À mà ở đây api google là đang dùng api default, nghĩa là chỉ dùng nghịch chơi chơi thôi, còn muốn dùng lâu dài thì nên thuê api xịn mà dùng, chứ hàng free thì kiểu gì cũng bị giới hạn thôi, cái này hình như là 50 request 1 ngày thì phải.

Chi tiết xin liên hệ:
https://github.com/Uberi/speech_recognition
https://github.com/Uberi/speech_recognition/blob/master/reference/library-reference.rst
https://github.com/Uberi/speech_recognition/blob/master/examples/microphone_recognition.py#L27

GIF


In [73]: import speech_recognition as sr
    ...:
    ...: r = sr.Recognizer()
    ...: with sr.Microphone() as source:
    ...:     print("Say something!")
    ...:     audio = r.record(source, duration=4)
    ...:     print("You said: " + r.recognize_google(audio, language='vi-VN')
    ...:
Say something!
You said: Dạy Nhau Học

In [74]: XD gg ezezeze
  File "<ipython-input-74-0983e12d1575>", line 1
    XD gg ezezeze
        ^
SyntaxError: invalid syntax
Henry viết 11:56 ngày 01/10/2018

e thì e test được rồi, cả tiếng Việt luôn nhưng mà trời mưa là nó ngu luôn

Henry viết 11:56 ngày 01/10/2018

e phải gián tiếp đi qua pyaudio đấy chứ

Le Thanh Thai viết 12:02 ngày 01/10/2018

bạn ơi cho mình hỏi tí. mình cũng code

import speech_recognition as sr

r = sr.Recognizer()

with sr.Microphone() as source:
print (‘Say Something!’)
audio = r.listen(source)
print (‘Done!’)
print(‘Google thinks you said:\n’ + r.recognize_google(audio,language=‘vi-VN’))

nhưng khi nói vào thì lại không nhận được âm thanh hay sao mà nó cứ hiện:

ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:947:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
Say Something!
bạn giúp mình với

Henry viết 11:55 ngày 01/10/2018

Chắc máy bạn bị gì rồi . Xưa mình sửa lại mic, thu tốt luôn ấy. Còn hỗ trợ cả tiếng Việt

Bài liên quan
0