使用神经网络分割和注释发声的库
vak的Python项目详细描述
VAK
一个库,用于对发声进行分段和注释的神经网络
安装
要安装,请在命令行运行以下命令:
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.md和README_config.md。
准备培训文件
可以对任何手动标注的数据进行培训,但有一些有用的指南:
- 尽可能多地使用示例-结果会更好。具体地说,这段代码将不能正确地标记它在训练过程中没有遇到的音节,并且很可能会泛化到最近的示例或忽略该音节。
- 使用噪声示例-这将使代码非常适合忽略噪声。
- 噪声上的音节示例很重要-最好从干净的录音开始。代码不会产生奇迹,如果音频太坏或被噪音掩盖,代码很可能会失败。尽管如此,在笼形噪声背景下用音节示例进行训练将是有益的。
运行代码的结果
建议在提取实际音节标记以及估计值的起始和偏移时间时应用后处理。
预测新标签
您可以通过在config.ini
文件中添加[predict]节来预测新标签,和
然后使用--predict
标志运行命令行界面,如下所示:(vak-env)$ vak-cli --predict ./configs/config_bird0.ini
带有[predict]节的config.ini
文件的一个例子是
在文档文件夹here中。