为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

倚天杖 2021-11-16 18:20:00
我正在使用 scipy 的 wavfile 库来读取 wavfile。rate, data = scipy.io.wavfile.read(filename)这将返回给定 wav 文件名的速率和 RAW 数据。我需要对数据数组进行什么转换才能从 RAW 数据转换为频率?我知道FFT是用来去频域的,但我想去时域。任何帮助表示赞赏!:)
查看完整描述

1 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

这将为您提供给定信号的平均频率:


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. 如果您想获取音频块的频率,只需将您的数组拆分为多个部分并将每个部分分别传递给函数。


查看完整回答
反对 回复 2021-11-16
  • 1 回答
  • 0 关注
  • 277 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信