python - 如何使用 Librosa 获得音频的音高?(不是二维数组,但与可丽饼类似)
问题描述
目前,我正在寻找用于音频音高检测(f0 频率)的 python 包。我找到了一个名为librosa的库,并尝试使用piptrack函数来跟踪音高。但是,结果是二维数组(如下所示)而不是一维数组。
问题是,我想得到一个描述音频音高的简单折线图(就像其他包,如crepe、aubio和parselmouth)。
那么如何使用 librosa 获得类似的结果呢?
这是代码:
import librosa
import librosa.display
import os
import matplotlib.pyplot as plt
import numpy as np
audio_path = 'test.wav'
y, sr = librosa.load(audio_path, sr=None)
pitches, magnitudes = librosa.piptrack(y=y, sr=sr)
plt.figure()
plt.plot(np.tile(np.arange(pitches.shape[1]), [100, 1]).T,
pitches[:100, :].T, '.')
plt.xlabel('samples', fontsize=18)
plt.ylabel('pitch (Hz)', fontsize=18)
plt.savefig("pitch_array_by_fps.png")
解决方案
推荐阅读
- vuejs2 - 如何在单元测试中更新组件的属性?
- dart - 部分可见的底片 - 颤动
- angular - 自定义高阶可观察映射
- cassandra - Cassandra READ 请求丢弃
- delphi - 在 Delphi RAD Studio 10 中获取 TCombobox 的选定值
- ruby - NoMethodError in Welcome#show
- sql - 在 2 个查询之间添加一个空行
- php - 在不刷新表单内容的情况下,验证来自 ajax 的 php 表单中数据库的唯一键
- java - 没有类型作为方法参数的泛型 - 无法解析它的字段类型
- javascript - 如何使用jquery中的函数设置值元素输入