前提・実現したいこと
リアルタイム音声処理に関して勉強し始めて、とりあえずreverbを実現させたく思い、以下のコードを実行しました。すると、次のようなエラーメッセージが出たのですが、どういうことでしょうか。また、どこを改善すれば良いのでしょうか。pythonです。
発生している問題・エラーメッセージ
Traceback (most recent call last):
File "rev.py", line 32, in <module>
input = reverb(input)
File "rev.py", line 27, in reverb
newdata = struct.pack("h"*len(newdata), *newdata)
struct.error: short format requires (-32767 -1) <= number <= 32767
該当のソースコード
python
1import wave 2import struct 3import pyaudio 4from pylab import * 5 6CHUNK = 4096 7RATE = 44100 8p = pyaudio.PyAudio() 9 10stream = p.open(format=pyaudio.paInt16, channels=1, rate=RATE, frames_per_buffer = CHUNK, input=True, output = True) #inputとoutputを同時に実行 11 12def reverb(input): 13 fs = RATE 14 data = input 15 data = frombuffer(data, dtype="int16") / 32768.0 16 a = 0.7 17 repeat = 3 18 d = 1000 19 newdata = [0.0] * CHUNK 20 for n in range(CHUNK): 21 newdata[n] = data[n] 22 for i in range(1, repeat+1): 23 m = int(n - i * d) 24 if m>=0: 25 newdata[n] += (a ** i) * data[m] 26 newdata = [int(x * 32767.0) for x in newdata] 27 newdata = struct.pack("h"*len(newdata), *newdata) 28 return newdata 29 30while stream.is_active(): 31 input = stream.read(CHUNK) 32 input = reverb(input) 33 output = stream.write(input) 34 35stream.stop_stream() 36stream.close() 37p.terminate() 38 39print("Stop Streaming")

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。