簡體   English   中英

speech_recognition模塊卡在“說些什么”中-python

[英]speech_recognition module stuck in “say something” - python

我正在嘗試用於語音識別的python腳本,我已經在我的環境中安裝了所需的pyaudio和SpeechRecognition模塊。

該程序運行良好,直到昨天,但是現在被困在“說些什么”了。 下面是我的代碼。

import speech_recognition as sr
print "say something1"
r = sr.Recognizer()
print "say something2"
with sr.Microphone() as source:                # use the default microphone as the audio source
    print "say something3"
    audio = r.listen(source,timeout=3)                   # listen for the first phrase and extract it into audio data

print "say something"
try:
    print("You said " + r.recognize(audio))    # recognize speech using Google Speech Recognition
except LookupError:                            # speech is unintelligible
    print("Could not understand audio")

控制台o / p:-

say something1
say something2
ALSA lib pcm_dsnoop.c:606:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1029:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:1029:(snd_pcm_dmix_open) unable to open slave
say something3

不重復/已轉為:- 語音識別python代碼不起作用

也許這可以解決您的問題。

print "say something2"
with sr.Microphone() as source:                # use the default microphone as the audio source
    r.adjust_for_ambient_noise(source)  # here
    print "say something3"
    audio = r.listen(source,timeout=3)   

看這個。 https://github.com/Uberi/speech_recognition/issues/191

最后的解決方案對我有用。 希望你能做同樣的工作

我也遇到了同樣的問題,我最終安裝了jack2d和Pulseaudio,什么也沒有。

那是問題,然后我通過運行卸載了jack2d

sudo apt-get remove --auto-remove jack

然后重新啟動系統,然后運行

jack_control  stop

然后,這會將語音輸入提供給pulse-aduio。

運行程序時,控制台應打印

ALSA lib pcm_dsnoop.c:606:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:867:(find_matching_chmap) Found no matching channel map
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

最后一行指出Jack已停止並且語音輸入正被重定向為pulse。

實際發生的是,音頻resoruce(mic)僅被引導到插孔或脈沖,所以我卸載了jack

現在我的程序運行正常

當我嘗試您的代碼時,出現以下attribute錯誤。

AttributeError: 'Recognizer' object has no attribute 'recognize'

看完文檔后Recognizer類似乎沒有方法可recognize 您將需要使用recognize類提供的幾種recognize_*方法之一。
看來您想使用recognize_google ,所以當我從

print("You said " + r.recognize(audio))

print("You said " + r.recognize_google(audio))

該代碼為我工作。

我說了“你好”,這在下面得到了認可。

Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
say something1
say something2
say something3
say something
You said hello

希望這可以幫助。

我也有這個問題,並且不斷變化

audio = r.listen(source,timeout=3)

audio = r.listen(source,timeout=3, phrase_time_limit=3)

為我解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM