24ビットpcmフォーマットのwavファイルからデータを読み込み、floatに変換する必要があります。私はPython 2.7.2を使用しています。24ビットwav pcm形式から浮動小数点形式に変換するための高速な方法はありますか?
波パッケージには、文字列としてのデータを読み込むので、私が試したことはある:
import wave
import numpy as np
import array
import struct
f = wave.open('filename.wav')
# read in entire wav file
wdata = f.readframes(nFrames)
f.close()
# unpack into signed integers and convert to float
data = array.array('f')
for i in range(0,nFrames*3,3):
data.append(float(struct.unpack('<i', '\x00'+ wdata[i:i+3])[0]))
# normalize sample values
data = np.array(data)
data = data/0x800000
これはかなり私の以前のアプローチよりも速いが、それでもかなり遅いです。誰かがより効率的な方法を提案できますか?
を持っています。どうしてそれを使ってみませんか? –