4096サンプルごとにオーディオの簡単なリアルタイム処理を行いたい。ただし、このコードは1024サンプルごとにコールバック関数を呼び出します。frame_countを4096に変更したいだけです。
import pyaudio
import time
WIDTH = 2
CHANNELS = 1
RATE = 44100
p = pyaudio.PyAudio()
def callback(in_data, frame_count, time_info, status):
out=do_something(in_data)
print(frame_count)#1024
return (out, pyaudio.paContinue)
stream = p.open(format=p.get_format_from_width(WIDTH),
channels=CHANNELS,
rate=RATE,
input=True,
output=True,
stream_callback=callback)
stream.start_stream()
while stream.is_active():
time.sleep(0.1)
stream.stop_stream()
stream.close()
p.terminate()
私はそれをテストしていませんが、ドキュメントから、ストリームのオープンラインを次のように変更すると思われます:
stream = p.open(format=p.get_format_from_width(WIDTH),
channels=CHANNELS,
rate=RATE,
input=True,
output=True,
frames_per_buffer=4096,
stream_callback=callback)
ブロックごとに必要な数のサンプルを取得する必要があります。frame_per_bufferのデフォルトは1024であるため、テストでこの値を取得しているのはおそらくそのためです。
がんばろう!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加