Я новичок в Alsa на Raspbian, и мне нужен мой микрофон, чтобы обеспечить частоту дискретизации 16 кГц для обнаружения горячих слов у дикобраза / снежного человека.Однако я не смог найти ни одного способа сделать это.Мне нужно сделать это для моего проекта в последний год, и я застрял на нем около недели, но я ничего не могу сделать.Тот же микрофон / звуковая карта отлично работает с Windows (дикобраз), но он дает "errno -9997 недопустимая частота дискретизации" с Raspbian.
РЕДАКТИРОВАННЫЙ КОД:
import snowboydecoder
import sys
import signal
interrupted = False
def signal_handler(signal, frame):
global interrupted
interrupted = True
def interrupt_callback():
global interrupted
return interrupted
if len(sys.argv) == 1:
print("Error: need to specify model name")
print("Usage: python demo.py your.model")
sys.exit(-1)
model = sys.argv[1]
# capture SIGINT signal, e.g., Ctrl+C
signal.signal(signal.SIGINT, signal_handler)
detector = snowboydecoder.HotwordDetector(model, sensitivity=0.5)
print('Listening... Press Ctrl+C to exit')
# main loop
detector.start(detected_callback=snowboydecoder.play_audio_file,
interrupt_check=interrupt_callback,
sleep_time=0.03)
detector.terminate()
вот моя ошибка:
Expression 'paInvalidSampleRate' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2048
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2719
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2843
Traceback (most recent call last):
File "demo.py", line 27, in <module>
detector = snowboydecoder.HotwordDetector(model, sensitivity=0.5)
File "/home/pi/Downloads/snowboy/snowboydecoder.py", line 115, in __init__
stream_callback=audio_callback)
File "/usr/local/lib/python2.7/dist-packages/pyaudio.py", line 750, in open
stream = Stream(self, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pyaudio.py", line 441, in __init__
self._stream = pa.open(**arguments)
IOError: [Errno -9997] Invalid sample rate
Проблема, скорее всего, связана с Alsa, но я не могу конвертировать скорость на лету в 16 кГц.Если кто-нибудь знает, как это сделать, это очень поможет.