Python 3 を使用していくつかの生体音響実験のために 192 kHz のオーディオをキャプチャする必要があります。ハードウェア、Sound Devices USBPre 2 サウンド カード、最大 100 kHz の良好な周波数応答曲線を持つマイクがあり、OS を有効にしました (ubuntu 13.04)このカードから 192 kHz でサンプリングします。
PyAudioで録音してみました。動作しているようで、サンプリング レートが 192 kHz の wav ファイルが生成されます。ただし、スペクトルを見ると、24 kHz を超えるパワーはありません。これは、PyAudio が実際には 192 kHz ではなく、48 kHz でキャプチャしていることを示唆しています。しかし、JACK からの入力で Audacity を使用して録音すると、96kHz までのパワーで素晴らしい録音が得られます。そのため、PyAudio は 192 kHz でサウンドをサンプリングできるはずなのに、実際にはサンプリングしていないという印象があります。これを修正する方法は?
エラーなしで JACK を起動します。
/usr/bin/jackd -R -dalsa -Chw:1,0 -n3 -o1 -p2048 -r192000
jackd 0.122.0
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK compiled with System V SHM support.
loading driver ..
apparent rate = 192000
creating alsa driver ... -|hw:1,0|2048|3|192000|0|1|nomon|swmeter|-|32bit
control device hw:0
configuring for 192000Hz, period = 2048 frames (10.7 ms), buffer = 3 periods
ALSA: final selected sample format for capture: 24bit little-endian
ALSA: use 3 periods for capture
PyAudio を初期化します (実際のエラーはありません (私が知る限り)):
p = pyaudio.PyAudio()
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
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
PyAudio ストリームを開きます。
stream = p.open(format=pyaudio.paInt32,
channels=1,rate=192000,
input=True,
frames_per_buffer=2048)
PyAudioが192 kHzでキャプチャしないという私の解釈を誰かが検証したい場合に備えて、スペクトログラムの画像があります(ただし、Audacityはキャプチャします):
PyAudio を使用してキャプチャされたサウンドのスペクトログラム
Audacity を使用してキャプチャされたサウンドのスペクトログラム
PyAudioを使用して192,000サンプル/秒でサウンドを録音するにはどうすればよいですか? Python 3 を使用してサウンドをキャプチャする他の方法の提案も歓迎します。