PENN项目使用教程
penn Pitch Estimating Neural Networks (PENN) 项目地址: https://gitcode.com/gh_mirrors/pe/penn
1、项目介绍
PENN(Pitch Estimating Neural Networks)是一个用于音高估计的神经网络项目,由interactiveaudiolab开发。该项目基于PyTorch框架,旨在提供高效、准确的音高和周期性估计。PENN不仅支持预训练模型的推理,还提供了训练和评估自定义模型的功能。
2、项目快速启动
安装
要使用预训练的FCNF0++模型进行音高估计,请运行以下命令:
pip install penn
如果你想训练或使用自己的模型,请运行:
pip install penn[train]
推理示例
以下是一个使用预训练模型进行音高估计的示例代码:
import penn
import torchaudio
# 加载音频
audio, sample_rate = torchaudio.load('test/assets/gershwin.wav')
# 设置跳跃大小为10毫秒
hopsize = 0.01
# 设置频率范围
fmin = 30
fmax = 1000
# 选择GPU进行推理,设置为None则使用CPU
gpu = 0
# 设置批处理大小
batch_size = 2048
# 选择检查点,设置为None将下载并使用预训练的FCNF0++模型
checkpoint = None
# 设置帧中心
center = 'half-hop'
# 设置未发声区域的线性插值阈值
interp_unvoiced_at = 0.65
# 进行音高和周期性估计
pitch, periodicity = penn.from_audio(
audio, sample_rate, hopsize=hopsize, fmin=fmin, fmax=fmax,
checkpoint=checkpoint, batch_size=batch_size, center=center,
interp_unvoiced_at=interp_unvoiced_at, gpu=gpu
)
3、应用案例和最佳实践
应用案例
PENN可以广泛应用于音乐信息检索、语音处理和音频分析等领域。例如,在音乐信息检索中,PENN可以用于自动标记音高,帮助识别和分类音乐片段。
最佳实践
- 选择合适的频率范围:根据应用场景选择合适的
fmin
和fmax
,以确保音高估计的准确性。 - 优化批处理大小:根据GPU内存调整
batch_size
,以避免内存溢出。 - 使用GPU加速:尽可能使用GPU进行推理,以提高处理速度。
4、典型生态项目
PENN作为一个音高估计工具,可以与其他音频处理项目结合使用,形成更强大的音频分析生态系统。以下是一些典型的生态项目:
- Librosa:一个用于音频和音乐分析的Python库,可以与PENN结合使用,进行更复杂的音频特征提取。
- PyTorch:PENN基于PyTorch框架,可以与其他PyTorch模型结合,进行端到端的音频处理任务。
- Torchaudio:PyTorch的音频处理库,提供了丰富的音频加载和处理功能,与PENN无缝集成。
通过结合这些生态项目,PENN可以应用于更广泛的音频处理任务,如音乐生成、语音识别和音频分类等。
penn Pitch Estimating Neural Networks (PENN) 项目地址: https://gitcode.com/gh_mirrors/pe/penn