Python:从 Python 中的 wav 文件随时间计算频率?

我正在使用 scipy 的 wavfile 库来读取 wavfile。

rate, data = scipy.io.wavfile.read(filename)

这将返回给定 wav 文件名的速率和 RAW 数据。

我需要对数据数组进行什么转换才能从 RAW 数据转换为频率?

我知道FFT是用来去频域的,但我想去时域。

任何帮助表示赞赏!:)


倚天杖
浏览 278回答 1
1回答

凤凰求蛊

这将为您提供给定信号的平均频率:def spectral_statistics(y: np.ndarray, fs: int) -> float:    """    Compute mean frequency    :param y: 1-d signal    :param fs: sampling frequency [Hz]    :return: mean frequency    """    spec = np.abs(np.fft.rfft(y))    freq = np.fft.rfftfreq(len(y), d=1/fs)        amp = spec / spec.sum()    mean = (freq * amp).sum()    return mean 正如您所说,您可以使用scipy. 如果您想获取音频块的频率,只需将您的数组拆分为多个部分并将每个部分分别传递给函数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python