remisarrailh / yana-linux

Des petits bouts de code pour faire un client yana sous linux
2 stars 3 forks source link

Remplacer les scripts bash par la bibliothèque SpeechRecognition #5

Open remisarrailh opened 9 years ago

remisarrailh commented 9 years ago

La reconnaissance vocale est pour le moment géré par un script bash bien dégueux.

Ca serait bien plus pratique d'utiliser la bibliothèque SpeechRecognition qui gère ça plus proprement (à priori). https://pypi.python.org/pypi/SpeechRecognition/

J'ai testé vite fait sur mon Raspberry Pi mais pyAudio est pas content.

ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm28                                                                                                                 35.pcm.front.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned err                                                                                                                 or: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directo                                                                                                                 ry
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM front
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm28                                                                                                                 35.pcm.surround40.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned err                                                                                                                 or: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directo                                                                                                                 ry
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM surround40
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm28                                                                                                                 35.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned err                                                                                                                 or: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directo                                                                                                                 ry
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM surround41
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm28                                                                                                                 35.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned err                                                                                                                 or: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directo                                                                                                                 ry
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM surround50
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm28                                                                                                                 35.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned err                                                                                                                 or: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directo                                                                                                                 ry
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM surround51
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm28                                                                                                                 35.pcm.surround71.0:CARD=0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned err                                                                                                                 or: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directo                                                                                                                 ry
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM surround71
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm28                                                                                                                 35.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned err                                                                                                                 or: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directo                                                                                                                 ry
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM iec958
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm28                                                                                                                 35.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned err                                                                                                                 or: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directo                                                                                                                 ry
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm28                                                                                                                 35.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned err                                                                                                                 or: No such file or directory
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: No such file or directo                                                                                                                 ry
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playba                                                                                                                 ck stream
Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/hostap                                                                                                                 i/alsa/pa_linux_alsa.c', line: 1968
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, se                                                                                                                 lf->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_lin                                                                                                                 ux_alsa.c', line: 2643
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, s                                                                                                                 ampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )                                                                                                                 ' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2767
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 505, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/speech_recognition/__init__.py",                                                                                                                  line 321, in threaded_listen
    with source as s: audio = self.listen(s)
  File "/usr/local/lib/python2.7/dist-packages/speech_recognition/__init__.py",                                                                                                                  line 58, in __enter__
    input = True, # stream is an input stream
  File "/usr/lib/pymodules/python2.7/pyaudio.py", line 714, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/pymodules/python2.7/pyaudio.py", line 396, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno Invalid sample rate] -9997
PerraiD commented 8 years ago

Si cela peut aider j'ai trouvé la solution pour le problème de "invalid sample rate" en 'scrollan' un peut internet :

r = sr.Recognizer()
m = sr.Microphone(device_index = 2, sample_rate = 44100, chunk_size = 512)