python 中音频输入的傅里叶变换

Fourier transformation with audio input in python

我想使用神经网络识别声音,为此我需要先为神经网络获得良好的输入,但仅将录音作为输入我认为它不会起作用,因为它是基于频率和时间。所以我找到了傅里叶变换,现在我正在尝试用傅里叶变换我的音频文件并绘制它。

我的问题是:

如何在 python 中绘制带有音频输入的傅里叶变换?
如果这可行,我如何在神经网络中输入傅里叶变换(我想也许给每个神经元一个 y 值,神经元作为相应的 x 值)

我尝试了类似的东西(我在互联网上找到的东西的组合:

import matplotlib.pyplot as plt
from scipy.io import wavfile as wav
from scipy.fftpack import fft
import numpy as np
import wave
import sys

spf = wave.open('AAA.wav','r')

#Extract Raw Audio from Wav File
signal = spf.readframes(-1)
signal = np.fromstring(signal, 'Int16')
fs = spf.getframerate()
fft_out = fft(signal)


Time=np.linspace(0, len(signal)/fs, num=len(signal))

plt.figure(1)
plt.title('Signal Wave...')
plt.plot(Time,fft_out)
plt.show()

但考虑到我在麦克风中的输入 'aaaaaa' 这似乎不对。

首先,你的问题更适合Data Science Stack exchange site。 下次考虑在这里问你的问题。

为了绘制傅里叶变换,您需要 fft 的绝对值(模数)。 (除非在特定情况下信号是均匀且真实的,其中 fft 也是均匀且真实的)

对于您的输入,只需尝试为网络提供 fft 的振幅,对于所有频率或可能是第一个频率,因为通常 fft 中的振幅下降很快(或您认为值得在看到后给出的频率)情节)。
也许使用 fft 不是一个好主意,但我让你试试看。也许您可以找到已经尝试使用 fft 进行分类的人。如果您遇到困难或遇到困难,请尝试在我之前链接的网站上提出另一个问题。