私はpythonを使用して自分のrpi3で8KhzのUSBマイクから音声を録音しようとしています。私はpyaudio、sounddevice、およびsoundfileライブラリを使用しましたが、それらは44100Hzまたは48000Hzでしかサンプルを送れませんでした。私は、コマンド使用時に一方ラズベリーpi3のpythonで8khzのサンプルレートを使用
"PortAudioError: Error opening InputStream: Invalid sample rate".
::私は8KHzの中でサンプルしようとしたとき、私は次のエラーを得た、コマンドラインのすべてに
"arecord -D plughw:1,0 -f S16_LE -r 8000 -d 2 test.wav"
を大丈夫でした。
これは私が使用するコードです:
import pyaudio
import wave
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 8000
CHUNK = 4000
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "test1.wav"
audio = pyaudio.PyAudio()
print audio.get_default_input_device_info()
# start Recording
stream = audio.open(format=FORMAT, channels=CHANNELS,rate=RATE, input=True,frames_per_buffer=CHUNK,input_device_index=1)
print ("recording...")
frames = []
for i in range(0, int(RATE/CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print ("finished recording")
# stop Recording
stream.stop_stream()
stream.close()
audio.terminate()
waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
waveFile.setnchannels(CHANNELS)
waveFile.setsampwidth(audio.get_sample_size(FORMAT))
waveFile.setframerate(RATE)
waveFile.writeframes(b''.join(frames))
waveFile.close()
これが結果です:
{'defaultSampleRate': 44100.0, 'defaultLowOutputLatency': -1.0, 'defaultLowInputLatency': 0.008684807256235827, 'maxInputChannels': 1L, 'structVersion': 2L, 'hostApi': 0L, 'index': 1L, 'defaultHighOutputLatency': -1.0, 'maxOutputChannels': 0L, 'name': u'USB PnP Sound Device: Audio (hw:1,0)', 'defaultHighInputLatency': 0.034829931972789115}
Traceback (most recent call last):
File "/home/pi/wave1.py", line 20, in <module>
stream = audio.open(format=FORMAT, channels=CHANNELS,rate=RATE, input=True,frames_per_buffer=CHUNK,input_device_index=1)
File "build/bdist.linux-armv7l/egg/pyaudio.py", line 750, in open
stream = Stream(self, *args, **kwargs)
File "build/bdist.linux-armv7l/egg/pyaudio.py", line 441, in __init__
self._stream = pa.open(**arguments)
IOError: [Errno -9997] Invalid sample rate
私がチェックし、私は右のデバイスを使用していることを知っている、しかし、あなたが見ることができるようにデフォルトのサンプルレートは変更されず、同じエラーが発生します。
あなたの質問は何ですか? – feedMe
8KHzでPythonを使ってサンプルするには? – tomash
オーディオの録音に使用したPythonコードを表示できますか? –