wav를 읽을 다른 Python 모듈 :
웨이브 오디오 파일을 읽기 위해 최소한 다음 라이브러리가 있습니다.
가장 간단한 예 :
다음은 SoundFile을 사용한 간단한 예입니다.
import soundfile as sf
data, samplerate = sf.read('existing_file.wav')
출력 형식 :
경고, 데이터는 라이브러리에 따라 항상 동일한 형식이 아닙니다. 예를 들면 :
from scikits import audiolab
from scipy.io import wavfile
from sys import argv
for filepath in argv[1:]:
x, fs, nb_bits = audiolab.wavread(filepath)
print('Reading with scikits.audiolab.wavread:', x)
fs, x = wavfile.read(filepath)
print('Reading with scipy.io.wavfile.read:', x)
산출:
Reading with scikits.audiolab.wavread: [ 0. 0. 0. ..., -0.00097656 -0.00079346 -0.00097656]
Reading with scipy.io.wavfile.read: [ 0 0 0 ..., -32 -26 -32]
SoundFile 및 Audiolab은 -1과 1 사이의 부동 소수점을 반환합니다 (matab이 수행하는 것처럼 오디오 신호에 대한 규칙). Scipy 및 wave는 정수를 반환하며, 인코딩 비트 수에 따라 부동 소수점으로 변환 할 수 있습니다. 예를 들면 다음과 같습니다.
from scipy.io.wavfile import read as wavread
samplerate, x = wavread(audiofilename)
if x.dtype == 'int16':
nb_bits = 16
elif x.dtype == 'int32':
nb_bits = 32
max_nb_bit = float(2 ** (nb_bits - 1))
samples = x / (max_nb_bit + 1)