scipy라든지 사용해 본다

octave에서 scipy/numpy/matplotlib로 마이그레이션하기로 결정했습니다.

octave도 별로 나쁘지는 않지만, GUI와의 제휴가 너무 약했다…

우선, 이 사이트을 참고로 스펙트로 그램을 표시 해 보았다.

spectrogram.py
#!/usr/bin/env python

import sys
import wave
import urllib2
import scipy as sp
import matplotlib.pyplot as plt

if __name__ == "__main__":
    if len(  sys.argv ) > 1:
        wo  = wave.open( sys.argv[1], 'rb' )
    else:
        url = 'http://www.it.ice.uec.ac.jp/SRV-DB/archive/HENSHU00_PF00/HENSHU00_PF00_0951.wav'
        wo = wave.openfp( urllib2.urlopen( url ).fp, 'rb' )

    chunk = 65536
    data = sp.fromstring( wo.readframes( chunk ), sp.int16 )
    srate = wo.getframerate()
    nFFT = 1024
    window = sp.hamming(nFFT)

    Pxx, freq, bins, im = plt.specgram(
            data,
            NFFT=nFFT,
            Fs=srate,
            noverlap=512,
            window=window)

    plt.show()

좋은 웹페이지 즐겨찾기