使用神经网络分割和注释发声的库

vak的Python项目详细描述


DOIPyPI versionLicense

VAK

一个库,用于对发声进行分段和注释的神经网络

Build Status

安装

要安装,请在命令行运行以下命令:

you@your-computer: ~/Documents $ pip install vak

(只需键入pip install vak部分即可)

在安装之前,您需要设置一个虚拟环境 (有关原因的解释,请参见 https://www.geeksforgeeks.org/python-virtual-environment/)。 创建虚拟环境并不像听起来那么困难; 下面是关于python工具的入门知识:https://realpython.com/python-virtual-environments-a-primer/
对于许多依赖于
除了python之外的语言,您可能会发现它更易于使用 致力于管理这些依赖关系的平台,例如 Anaconda(免费)。 您可以使用他们开发的conda命令行工具 创建环境并安装此软件包的科学库 取决于。此外,使用conda安装依赖项可能会提高一些性能 (见https://www.anaconda.com/blog/developer-blog/tensorflow-in-anaconda/)。
以下是如何设置conda环境:

you@your-computer: ~/Documents $ conda create -n vak-env python=3.6 numpy scipy joblib tensorflow-gpu ipython jupyter    
you@your-computer: ~/Documents $source activate vak-env

(您不必在windows上source> activate vak-env

然后可以在conda环境中使用pip
(vak-env)/home/you/code/ $ pip install vak

您还可以使用代码的本地副本。 可以使用pip安装本地副本,以便您仍然可以编辑 代码,然后将其行为作为已安装的库来反映这些编辑。

  • 使用版本控制工具从github克隆repo git
    (vak-env) you@your-computer: ~/Documents $ git clone https://github.com/NickleDave/vak
    (您可以从github安装git,也可以使用conda。)
  • 使用-e标志(用于editable)安装带有pip的包。
$(vak-env) you@your-computer: ~/Documents $ cd vak
$(vak-env) you@your-computer: ~/Documents $ pip install -e .

用法

分割和标记鸟鸣的训练模型

目前使用vak最简单的方法是通过命令行。 您可以使用config.ini文件运行它,使用少数命令之一。 下面是运行$ vak-cli --help时打印的帮助文本:

usage: vak [-h] [-d DATASET] [-g GLOB] [-t TXT] command configfile

vak command-line interface

positional arguments:
  command               Command to run, valid options are:
                        ['prep', 'train', 'predict', 'finetune', 'learncurve', 'summary']
                        $ vak train ./configs/config_2018-12-17.ini
  configfile            name of config.ini file to use 
                        $ vak train ./configs/config_2018-12-17.ini

optional arguments:
  -h, --help            show this help message and exit
  -d DATASET, --dataset DATASET
                        Create a dataset from a list of files in a .txt file, by passing in the name of the .txt file.
                        $ vak --dataset ./audio_files_list.txt
  -g GLOB, --glob GLOB  string to use with glob function to search for config files fitting some pattern.
                        $ vak --glob ./config_finches*.ini
  -t TXT, --txt TXT     name of .txt file containing list of config files to run
                        $ vak --text ./list_of_config_filenames.txt

例如,可以使用单个config.ini文件运行vak 通过使用train命令并将config.ini文件的名称作为参数传递:

(vak-env)$ vak prep ./configs/config_bird0.ini
(vak-env)$ vak train ./configs/config_bird0.ini

然后可以使用vak命令将经过训练的模型应用于其他数据。

(vak-env)$ vak predict ./configs/config_bird0.ini

有关培训工作原理的详细信息,请参见experiments.md, 有关config.ini文件的更多详细信息,请参见README_config.md

数据和文件夹结构

要训练模型,必须以音频文件或 谱图,以及每个谱图的注释。

光谱图和标签

包可以从.wav文件或.cbin文件生成光谱图。 它还可以接受Matlab.mat文件形式的光谱图。 这些文件的位置在config.ini文件中指定,如中所述 experiments.mdREADME_config.md

准备培训文件

可以对任何手动标注的数据进行培训,但有一些有用的指南:

  • 尽可能多地使用示例-结果会更好。具体地说,这段代码将不能正确地标记它在训练过程中没有遇到的音节,并且很可能会泛化到最近的示例或忽略该音节。
  • 使用噪声示例-这将使代码非常适合忽略噪声。
  • 噪声上的音节示例很重要-最好从干净的录音开始。代码不会产生奇迹,如果音频太坏或被噪音掩盖,代码很可能会失败。尽管如此,在笼形噪声背景下用音节示例进行训练将是有益的。

运行代码的结果

建议在提取实际音节标记以及估计值的起始和偏移时间时应用后处理。

预测新标签

您可以通过在config.ini文件中添加[predict]节来预测新标签,和 然后使用--predict标志运行命令行界面,如下所示:
(vak-env)$ vak-cli --predict ./configs/config_bird0.ini 带有[predict]节的config.ini文件的一个例子是 在文档文件夹here中。

引文

如果您使用vak作为出版物,请引用其doi: DOI

许可证

License
BSD-3

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
序列化反序列化java。awt。颜色>java。木卫一。InvalidClassException   java禁用多个日期范围jDateChooser   java为什么我的特例apper会被扔进泽西/灰熊?   JavaIntelliJ比较两个覆盖率数据   java什么是servletsdefault。你怎么办?   单击几下libgdx后java按钮没有响应   使用java将字符串转换为JSONArray   文件系统在java中刷新fileSystemViewer   java如何在hibernate中避免脏检查   java奇怪的问题,带有分号和“无法解决…”   java将值从子面板传递到父面板   HTML JTextPane CSS的Java FontSizeAction   java文件代码神秘地变成了一堆(0000)