Écrivez quelques programmes d'analyse de la parole créés dans l'expérience.
Les données audio de 30 taps ont été utilisées pendant 1 minute. Fréquence d'échantillonnage: 48 kHz Taille de bits: 24 bits
FFT C'est le même programme que j'ai posté l'autre jour.
FFT.py
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()
Résultat d'exécution Il se tient dans un cycle spécifique avec une bonne sensation. De plus, cette fois, il est normalisé pour voir s'il y a une réaction.
spectrogram.py
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()
Résultat d'exécution Des rayures verticales sont légèrement visibles entre 0 et 25 000 Hz, mais c'est important car la bande de basses fréquences est un peu plus sombre.
STFT
STFT.py
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()
Résultat d'exécution J'ai essayé de le faire avec intérêt, mais je pense que la partie importante est extraite du spectrogramme précédent. De plus, je ne peux nier le sentiment de manque d'étude, alors j'aimerais savoir ce que montre ce résultat.
J'ai fait quelques analyses vocales cette fois, et toutes étaient visuellement faciles à comprendre et pouvaient être utilisées dans la recherche.
Recommended Posts