前提・実現したいこと
wavファイルを読み込んで、scipy signal decimate()を用いたLPF込みの間引きを行い、wavファイルを書き出したいと考えているのですが、以下のようなエラーが出ており書き出すことができません。
発生している問題・エラーメッセージ
File "bandpass.py", line 109, in <module> write(wav_filename_out,rate_d,data_d) File "/Applications/anaconda3/lib/python3.8/site-packages/scipy/io/wavfile.py", line 788, in write fmt_chunk_data = struct.pack('<HHIIHH', format_tag, channels, fs, struct.error: required argument is not an integer
該当のソースコード
python
1import numpy as np 2import matplotlib.pyplot as plt 3import sys 4import scipy.io.wavfile 5from scipy.io.wavfile import write 6from scipy.io.wavfile import read 7from scipy.fftpack import rfft,irfft,fftfreq 8from scipy import signal 9 10##音声ファイル読み込み## 11args = sys.argv 12wav_filename = args[1] 13rate, data = scipy.io.wavfile.read(wav_filename) 14time = np.arange(0,data.shape[0]/rate,1/rate) #時間軸作成 15 16print(len(time)) 17print(len(data)) 18print("data_MAX:",np.max(data)) 19print("data_min:",np.min(data)) 20 21 22#dataを高速フーリエ変換 23fft_data = np.fft.fft(data) 24freqList = np.fft.fftfreq(data.shape[0], 1.0/rate) #周波数取得 25 26fft_data = fft_data/22050 #サンプル数/2 27 28###################### scipy.signal.decimate ############################# 29data_d = signal.decimate(data, 10) # 間引き 30rate_d = rate/10 #間引き後のサンプリング周波数 31time_d = np.arange(0,data_d.shape[0]/rate_d,1/rate_d) #間引き後の時間軸 32 33print("data_d:",len(data_d)) 34print("time_d:",len(time_d)) 35print("data_d_MAX:",np.max(data_d)) 36print("data_d_min:",np.min(data_d)) 37 38#dataを高速フーリエ変換 39fft_data_d = np.fft.fft(data_d) 40freqList_d = np.fft.fftfreq(data_d.shape[0], 1.0/rate_d) #周波数取得 41 42fft_data_d = fft_data_d/22050 #サンプル数/2 43 44###################################################################################### 45 46 47 48##音声ファイル書き込み## 49data_d = data_d.real.astype(np.int16) 50args = sys.argv 51wav_filename_out = args[2] 52data_d.flags.writeable = True 53write(wav_filename_out,rate_d,data_d)
試したこと
今回使用しているwavファイルは16bitのサンプリングレートが44.1kHzのものを使用しています。
補足情報(FW/ツールのバージョンなど)
python3
実行時:python3 file名 入力ファイル 出力ファイル
回答1件
あなたの回答
tips
プレビュー