语音识别无法正常工作(未检测到麦克风)

时间:2019-05-17 15:25:53

标签: python audio speech-recognition microphone alsa

我想用语音识别做一个小程序。

这是我的代码(经典代码):

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之类的任何软件配合使用

5 个答案:

答案 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 安装到您的代码中以消除错误。甚至尝试连接到网络或让您的麦克风正常工作。