É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