У меня есть Jetson Xavier, USB-микрофон и веб-камера с mi c внутри. Всего 2 микрофона. Я использую распознавание речи. Когда я пытаюсь использовать и веб-камеру, и usb mi c, mi c на веб-камере используется программным обеспечением по умолчанию. Я хочу использовать USB Mi c, когда я подключил оба устройства. Я нашел его device_index и записал в программу. Однако у меня есть ошибка:
"OSError: [Errno -9997] Invalid sample rate"
Это мой микрофон:
Microphone with name "UAC 1.0 Microphone & HID-Mediak: USB Audio (hw:2,0)" found for `Microphone(device_index=24)
Вы можете найти соответствующий код ниже. Я попытался изменить частоту дискретизации на 44100. Ошибка исчезла, но mi c не работает.
PS: USB Mi c работает нормально, когда я подключаю его самостоятельно. Код использует его по умолчанию. У меня проблема только тогда, когда у меня 2 подключенных устройства.
from speech_recognition import (
Microphone,
AudioSource,
AudioData
)
class xMicrophone(Microphone):
def __init__(self, device_index=None, sample_rate=16000, chunk_size=1024,
mute=False):
Microphone.__init__(self, device_index=device_index,
sample_rate=sample_rate, chunk_size=chunk_size)
self.muted = False
if mute:
self.mute()
self.StreamClass = MutableStream
def __enter__(self):
return self._start()
def _start(self):
"""Open the selected device and setup the stream."""
assert self.stream is None, \
"This audio source is already inside a context manager"
with contexts.ignore_stderr(), contexts.ignore_stdout():
self.audio = pyaudio.PyAudio()
self.stream = self.StreamClass(self.audio.open(
input_device_index=self.device_index, channels=1,
format=self.format, rate=self.SAMPLE_RATE,
frames_per_buffer=self.CHUNK,
input=True, # stream is an input stream
), self.format, self.muted)
return self