我想用语音识别做一个小程序。
这是我的代码(经典代码):
import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:
print("SAY SOMETHING")
audio = r.listen(source,timeout=3, phrase_time_limit=3)
print("TIME OVER")
try:
print("TEXTE : "+r.recognize_google(audio, language="fr-FR"))
except Exception:
print("ERROR")
但是当我尝试启动程序时,出现此错误:
ALSA库pcm_dsnoop.c:638:(snd_pcm_dsnoop_open)无法打开从属
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate)未知PCM卡.pcm.rear
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate)未知PCM卡.pcm.center_lfe
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate)未知PCM卡.pcm.side
ALSA lib pcm_route.c:869:(find_matching_chmap)未找到匹配的频道地图
ALSA lib pcm_route.c:869:(find_matching_chmap)未找到匹配的频道地图
ALSA lib pcm_route.c:869:(find_matching_chmap)未找到匹配的频道地图
ALSA lib pcm_dsnoop.c:638:(snd_pcm_dsnoop_open)无法打开从属
无法连接到服务器套接字err =没有这样的文件或目录
无法连接到服务器请求Channeljack服务器未运行或无法启动
JackShmReadWritePtr ::〜JackShmReadWritePtr--1初始化未完成,跳过解锁
JackShmReadWritePtr ::〜JackShmReadWritePtr--1初始化未完成,跳过解锁
追溯(最近一次通话):
中第6行的文件“ record.py” 以sr.Microphone()作为来源:
文件“ /usr/lib/python2.7/site- package / speech_recognition / __ init__.py”,第__init__行中的第86行,
device_info = audio.get_device_info_by_index(device_index)如果
device_index不是别的audio.get_default_input_device_info()
中的文件“ /usr/lib64/python2.7/site-packages/pyaudio.py”,行949 get_default_input_device_info
device_index = pa.get_default_input_device()
IOError:没有可用的默认输入设备
当我做arecord -l
时,我有这个东西:
**** CAPTURE硬件设备列表****
卡0:PCH [HDA Intel PCH],设备0:ALC298模拟[ALC298模拟]
子设备:0/1
子设备#0:子设备#0
Ps:麦克风可以与Skype或Google之类的任何软件配合使用
答案 0 :(得分:0)
答案 1 :(得分:0)
我的一个项目中有一个有效的代码片段试试这个它可能会工作:
import speech_recognition as sr
rObject = sr.Recognizer()
audio = ''
with sr.Microphone() as source:
print("Speak...")
audio = rObject.listen(source, phrase_time_limit = 0)
print("Stop.")
try:
text = rObject.recognize_google(audio, language ='fr-FR')
print("You : "+ text)
except:
speak("Could not understand your audio...PLease try again !")
运行此代码段,我认为名为 PyAudio 的软件包存在一些问题...未正确安装,如果没有 pyaudio 它将无法工作(特别是在 python 2.7 中,没有 pyaudio 它将无法工作)。
答案 2 :(得分:0)
在异常块中添加 Speech_regognition Timeout 错误怎么样
with sr.Microphone() as source:
print("SAY SOMETHING")
audio = r.listen(source,timeout=3, phrase_time_limit=3)
print("TIME OVER")
try:
print("TEXTE : "+r.recognize_google(audio, language="fr-FR"))
except sr.WaitTimeoutError:
print("ERROR")
答案 3 :(得分:0)
def takecommand():
r = sr.Recognizer()
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source, 1)
print("Listening....")
speak("listening")
audio = r.listen(source)
try:
print("Recognizing...")
query = r.recognize_google(audio, language='en-in')
print(f"You said: {query}\n ")
except sr.UnknownValueError:
speak("Could not hear that, Try saying again")
except sr.RequestError:
speak("Make Sure that you have a good Internet connection")
return query
您必须在 import pyttsx3
之前 pip install pyttsx3
以及 import speech_recognition as sr
之前 pip install SpeechRecognition
然后您的代码才能工作。
答案 4 :(得分:-1)
尝试将 PyAudio 安装到您的代码中以消除错误。甚至尝试连接到网络或让您的麦克风正常工作。