Невозможно установить частоту дискретизации микрофона с Alsa на Raspbian - PullRequest
0 голосов
/ 10 октября 2018

Я новичок в 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 кГц.Если кто-нибудь знает, как это сделать, это очень поможет.

...