python 기반 음성 분석
음성 분석
실험에서 제작된 몇 개의 음성 분석 프로그램을 묘사하다.
실험용 음성 데이터
1분 30회 사운드 데이터를 사용했다.
샘플링 빈도: 48kHz
비트 크기: 24비트
FFT
며칠 전 투고한 내용과 같은 절차다.
FFT.pyprint("===== Wave2FFT_lim =====")
F = np.fft.fft(self.data)
Amp = np.abs(F/(self.frames/2))
Amp_tmp = np.abs(F/(self.frames/2))
Amp_new = Amp / Amp_tmp.max()
freq = np.fft.fftfreq(self.frames, 1/self.Fs)
fig = plt.figure()
plt.plot(freq[1:int(self.frames/2)],Amp_new[1:int(self.frames/2)])
plt.xlabel("Freq [Hz]")
plt.ylabel("Amp")
plt.title("FFT")
plt.ylim(0, 1)
fig.savefig("{}/FFT(Normalization).png".format(self.Folder))
plt.show()
plt.close()
실행 결과
느낌이 좋아, 특정 주기로 서 있어.
또 이번에는 반응 유무를 확인하기 위해 정규화했다.
분광도
spectrogram.pyprint("===== Wave2Spec =====")
fig = plt.figure()
pxx, freq, bins, t = plt.specgram(self.data[:,0], Fs = self.Fs)
plt.title("spec")
plt.xlabel("time [sec]")
plt.ylabel("Freq [Hz]")
fig.savefig("{}/Spec.png".format(self.Folder))
plt.show()
plt.close()
실행 결과
세로 스트라이프는 0∼2500Hz 사이에서 은은하게 보이지만, 저주파대가 짙어지기 때문에 중요하다.
STFT
STFT.pyprint("===== Wave2STFT =====")
pylab.figure()
f, t, stft = sp.stft(self.data[:,0],fs=self.Fs)
plt.pcolormesh(t, f, np.abs(stft),cmap='hot')
pylab.title("STFT")
plt.xlabel("time [sec]")
plt.ylabel("Freq [Hz]")
pylab.savefig("{}/STFT.png".format(self.Folder))
pylab.show()
실행 결과
취미를 중심으로 해봤는데 아까 스펙트럼보다 더 중요한 부분이 추출된 것 같아요.
또 학습 부족감을 부정할 수 없기 때문에 이 결과가 무엇을 의미하는지 배우고 싶다.
총결산
이번에 몇 차례 음성 분석을 실시했는데 하나하나가 시각적으로 이해하기 쉬워 연구에 사용할 수 있는 내용이다.
Reference
이 문제에 관하여(python 기반 음성 분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shota0620/items/5ea90c5b7bbee8f886f5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
print("===== Wave2FFT_lim =====")
F = np.fft.fft(self.data)
Amp = np.abs(F/(self.frames/2))
Amp_tmp = np.abs(F/(self.frames/2))
Amp_new = Amp / Amp_tmp.max()
freq = np.fft.fftfreq(self.frames, 1/self.Fs)
fig = plt.figure()
plt.plot(freq[1:int(self.frames/2)],Amp_new[1:int(self.frames/2)])
plt.xlabel("Freq [Hz]")
plt.ylabel("Amp")
plt.title("FFT")
plt.ylim(0, 1)
fig.savefig("{}/FFT(Normalization).png".format(self.Folder))
plt.show()
plt.close()
print("===== Wave2Spec =====")
fig = plt.figure()
pxx, freq, bins, t = plt.specgram(self.data[:,0], Fs = self.Fs)
plt.title("spec")
plt.xlabel("time [sec]")
plt.ylabel("Freq [Hz]")
fig.savefig("{}/Spec.png".format(self.Folder))
plt.show()
plt.close()
print("===== Wave2STFT =====")
pylab.figure()
f, t, stft = sp.stft(self.data[:,0],fs=self.Fs)
plt.pcolormesh(t, f, np.abs(stft),cmap='hot')
pylab.title("STFT")
plt.xlabel("time [sec]")
plt.ylabel("Freq [Hz]")
pylab.savefig("{}/STFT.png".format(self.Folder))
pylab.show()
Reference
이 문제에 관하여(python 기반 음성 분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shota0620/items/5ea90c5b7bbee8f886f5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)