You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
scale = np.linspace(0, 1, freqbins) ** factor
scale *= (freqbins-1)/max(scale)
scale = np.unique(np.round(scale))
# create spectrogram with new freq bins
newspec = np.complex128(np.zeros([timebins, len(scale)]))
for i in range(0, len(scale)):
if i == len(scale)-1:
newspec[:,i] = np.sum(spec[:,int(scale[i]):], axis=1)
else:
newspec[:,i] = np.sum(spec[:,int(scale[i]):int(scale[i+1])], axis=1)
# list center freq of bins
allfreqs = np.abs(np.fft.fftfreq(freqbins*2, 1./sr)[:freqbins+1])
freqs = []
for i in range(0, len(scale)):
if i == len(scale)-1:
freqs += [np.mean(allfreqs[int(scale[i]):])]
else:
freqs += [np.mean(allfreqs[int(scale[i]):int(scale[i+1])])]
return newspec, freqs
wav용 파일로 작성된 부분을 사용.
amplitude 가 sample 값 이란 부분을 db로 변경
크기를 비율적으로 조절해서 사용하고 수치를 알수 있게 사용
코드 내용과 내용수정으로 볼수 있도록 사용
코드를 완전 바꾼거고 stackoverflow 에 있던 코드 사용 및 분석
결과 사진.
배고픔3
배고픔3 200 db 이상.
아픔 3
아픔3 200 db 이상
잠 1
잠 1 db 200 이상.
코드 부분
`
import numpy as np
from matplotlib import pyplot as plt
import scipy.io.wavfile as wav
from numpy.lib import stride_tricks
filepath = 's1' + '.wav'
short time fourier transform of audio signal
def stft(sig, frameSize, overlapFac=0.5, window=np.hanning):
#sig = signal frameSize = 2 ** 10
scale frequency axis logarithmically
def logscale_spec(spec, sr=44100, factor=20.):
timebins, freqbins = np.shape(spec)
plot spectrogram
def plotstft(audiopath, binsize=2**10, plotpath=None, colormap="jet"):
#sr , sample
samplerate, samples = wav.read(audiopath)
ims = plotstft(filepath)
`
The text was updated successfully, but these errors were encountered: