Skip to main content

使用 1 个命令对整个音频数据集进行复杂的预处理

项目描述

自述文件

praudio提供对象和脚本,用于通过一个命令对整个音频数据集执行复杂的预处理操作。

praudio的实施考虑了深度学习音频/音乐应用程序。

操作在 CPU 上进行。预处理也可以即时运行,例如,在训练模型时。

该库librosa用作音频处理后端。

如何安装库?

您可以通过 PyPi 安装praudio,也可以从 GitHub克隆praudio 存储库。pip

对于这两种方法,建议使用专用的 Python 虚拟环境。

从 PyPi 安装

从 PyPi 安装是最简单的选择。在终端类型中:

$ pip install praudio

从 GitHub 安装

首先,您应该从 GitHub 克隆存储库:

$ git clone git@github.com:musikalkemist/praudio.git

然后,移动到项目根目录,安装包,在终端输入:

$ pip install .

您还可以在可用的 Makefile 中使用规则(见下文):

$ make install 

要在开发模式下安装包,请使用:

$ pip install -e .[testing]

您还可以在 Makefile 中使用规则:

$ make install_dev 

这将安装运行测试、lint、类型检查器所需的所有包。它还将以“可编辑”模式安装包,这是开发的理想选择。

蟒蛇版本

praudio在 Python 3.6、3.7、3.8 中工作。

如何预处理音频数据集?

该库的核心是预处理入口点。此脚本适用于配置文件。您在 yaml 文件中设置要应用的预处理类型,然后运行脚本。您的数据集将被完全预处理,并将结果递归地存储在您选择的目录中,该目录可能会从头开始创建。

要运行入口点,请确保已安装库,然后键入:

$ preprocess /path/to/config.yml

在 config.yml 中,您应该提供以下参数:

  • dataset_dir:存储音频数据集的目录的路径
  • save_dir:保存预处理音频的路径。
  • 在 下file_preprocessor,您应该提供loader和的设置transforms_chain
  • loader:为加载程序提供设置。
  • transforms_chain:序列中每个变换的参数。应用于您的数据的转换(即,TransformChain)。

这些配置参数用于动态初始化库中的相关对象。要了解配置文件中每个级别可用的参数,请参阅相关对象中的文档字符串。

查看test/config.sampleconfig.yml有效配置文件的示例。

封装结构

该包分为多个子包:

  • 配置
  • 创建
  • io
  • 预处理器
  • 变换

config具有加载、保存和验证配置文件的工具,这些文件用于指定要使用的预处理管道的类型。

creation具有负责实例化库中关键对象的类。

io包含从文件加载/保存音频信号的设施。

preprocessors功能对象负责预处理单个音频文件,从加载到存储,以及批量文件。

transforms包含一系列操纵音频信号的对象,例如短时傅里叶变换、对数、缩放。

Makefile 有什么用?

Makefile 有一系列规则,可用于确保代码质量,并自动执行重复性任务。

短绒

该项目使用pylint. linter 有助于执行编码标准,嗅探代码异味并提供简单的重构建议。

要运行 linter 类型:

$ make lint

类型提示

该项目使用mypy. mypy是 Python 的可选静态类型检查器。您可以在 Python 程序中添加类型提示 (PEP 484),并使用 mypy 对其进行静态类型检查。

要运行类型检查器类型:

$ make typehint

测试

该项目pytest用于单元测试。测试可以使用 coverage. 这个包建议了单元测试中覆盖的代码百分比。

要运行所有单元测试类型:

$ make test

清单

Checklist 是一个实用程序规则,可以一次性运行 linter、类型检查器和测试套件:

$ make checklist

干净的

使用 clean 规则删除pyc文件和__pychache__

$ make clean

依赖项

praudio具有以下依赖项:

  • librosa==0.8.1
  • pyyaml==5.4.1
  • 类型-PyYAML==5.4.6

librosa广泛用于提取变换对象中的音频特征。

当前限制

praudio处理器只能对单声道信号进行操作。如果您从事生成音乐工作,这是一个很大的限制。如果您使用该库进行音频/音乐分析,这应该不是问题。

未来的改进

  • 添加音频增强/填充/裁剪变换。
  • 启用多通道信号预处理。
  • 将变换参数转换为成熟的对象(例如,STFTParams)
  • 不使用字典进行配置,而是通过验证实例化参数对象
  • 使用工厂实现不同类型的 Savers / Loaders 来生产它们。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

praudio-0.1.0.tar.gz (17.3 kB 查看哈希

已上传 source

内置分布

praudio-0.1.0-py3-none-any.whl (27.6 kB 查看哈希

已上传 py3