论文学习
[华为云AI经典论文复现] AI Gallery MaxoutDNN生成d-vector算法使用介绍

发布于42个月以前

  • 0
  • 0
  • 219

发布于42个月以前

本帖是对ModelArts AI Gallery算法 构建MaxoutDNN生成d-vector用于Speaker changepoint detection的使用介绍

此模型是对论文:SPEAKER SEGMENTATION USING DEEP SPEAKER VECTORS FOR FAST SPEAKER CHANGE SCENARIOS中提出的利用d-vector检测说话人变化时间点的复现。其中MaxoutDNN是Ehsan Variani等人提出的d-vector原文中用来提取说话人特征的深层神经网络。

原文使用的是LDC的Fisher corpus数据集,由于该数据集获取资格较为严格。我们选用同样可用于Speaker verification的其他开源数据集。

训练集 Voxceleb1数据集,下载链接:https://www.robots.ox.ac.uk/~vgg/data/voxceleb/
测试集 AMI dataset中“Full corpus partition of meetings”设定的测试集

对比原文中Table2的指标结果可以达到下表中的结果:

                        Table 2. Performance when Threshod is 0.743,tolerance is 0.3

Method

复现d-vector

原文d-vector

FAR

  47.69  %

39.00%

MDR

  59.35  %

40.15%

                      Table 3. Performance when Threshod is 0.752,tolerance is 0.4

Method

复现d-vector

原文d-vector

FAR

  48.59 %

39.00%

MDR

  44.71  %

40.15%

                    Table 4. Performance when Threshod is 0.743,tolerance is 0.5

Method

复现d-vector

原文d-vector

FAR

  43.14  %

39.00%

MDR

  43.55  %

40.15%

代码结构如下:

1. 准备数据集

(1) 本模型基于Voxceleb1数据集进行训练。下载地址见上。下载全部以DEV开头的文件,然后使用cat vox1_dev*>vox1_dev_wav.zip指令整合成压缩包,随后通过unzip vox1_dev_wav.zip解压数据集较大因此在训练中我们仅随机选用100个Speaker作为MaxoutDNN的训练数据。

image.png

更多信息请参考Voxceleb官网

预处理步骤见preprocess.py,需要在本地对数据集进行预处理,生成对应的feature.py文件和label.py文件存在OBS里作为训练作业的备用,

为了订阅用户的训练方便,在这里提供已经预处理好可直接用于train.py文件的npy文件OBS链接

URL:

https://e-share.obs-website.cn-north-1.myhuaweicloud.com?token=J7Ut0BaU776om+POcbZX8D553Jq3r7qKoAoElgG7WXVTNio0KTBhiqlPTtd3+f2Vj0U8FH18USD7gk8sJe0LVIgVQjJAUcnOBf2+e2Dw2WdTvhMrm7ofoG0bepdhGPH3QUAP8abLAuewPIT1RV7+P2AhfZXV/TdtR7a7vRgpjzjjtjLhcyBShy2PFWSh4xhSqIQSnpnUCl6qVSouhit7OmfGt5u/xbTGV1mr16Qxt7BPQtCDK7+/BMeh9L/5uHxPYZEoF0PROaWpSovNwtpgMqTwNgXsK4jNU43mPbALKRQRk2N90SCSKiC27tjbcmEqNvYajq0u1QFPMHOu9lrMU1AARyVtK8B7u573ZiSUTZ/RALXxDt8SApL0fNXeVHW2+tJbEkWy3ULQfRNMO7gDNFegeJ1OSLGCd9J8lToOEm8Gi12gq9dqAKBM2CqowvaeZV6u+Xjfb77UPu0inHlogNhIWQJ9S5GgKC7F12VC5v1C3BkSFhdVjkDZO8PvdVXw4zvG+GV2nO6dTUalaGsnu56E+yNj2jeZUpnBrf2KvxFRE6ir8rbsSrTJp4IDQvGKYQ433kZvy2yxxWSYEFxncgF7GhALKwXrm7MLOd0n1vw=

提取码:

123456

*有效期至: 2021/02/12 12:29:28 GMT+08:00  如果过期后仍有需要请回帖

(2) 检测Speaker change point需要选用有changepoint标注的AMI数据集。我们按照“Full corpus partition of meetings”中设定的测试集验证检测结果(其中有一些wav文件并非PCM格式因此需要进行格式转换,也可以剔除不用)

1.2 安装OBS Browser+并上传数据集

ModelArts使用对象存储服务(OBS)来存储数据,实现安全、高可靠和低成本的存储需求。OBS Browser+是一款用于访问和管理对象存储服务(Object Storage Service,OBS)的图形化工具,支持完善的桶管理和对象管理操作。OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理,例如:创建桶、上传下载文件、浏览文件等。

具体操作步骤如下:
(1)点此下载OBS Browser+,下载完成后解压缩,双击exe进行安装,安装完成后运行;

(2)登录界面如下图所示,需要您填写账号名、Access Key ID(AK)和Secret Accsee Key(SK),参考此文档,获取AK和SK,华为云上的许多产品都需要用到访问密钥,请妥善保存该密钥文件,然后参考下图填写您的华为云账号名及刚获取的AK和SK,点击登录;

image.png

  (3)参考下图,点击“创建桶”,输入桶名称,注意:区域要选择华北-北京四、标准存储、私有、关闭多AZ,桶名需自定义,OBS桶名要全局唯一,如提示桶名已存在,则需要您修改为其他名称。
image.png

(4)点击桶名称,进入到桶中,点击“新建文件夹”,输入文件夹名称,如“datasets",点击“上传”->“添加文件”-> 选择本地下载好的数据集压缩包(之所以选压缩包格式是因为如果数据集比较大,上传压缩包比上传文件夹快很多) –> 确定。

(5)点击OBS Browser+左侧的“任务管理”,可查看数据上传进度。如下图所示,点击设置,在基础设置中,设置最大并发数为最大值50,可以加快数据上传速度

注释:对于Voxceleb1数据集:上传后为压缩包,在本地解压后仍需用preprocess.py文件处理生成feature.npy和label.npy文件后才可作为train.py文件的输入。这里建议直接根据上方OBS二维码链接下载已经预处理好的 两个npy文件 并且保存在OBS自建的/input文件夹内。

           AMI数据集可直接下载.wav文件

2. 订阅本算法

点击本页面右上方的【订阅】按钮。然后点击页面下方的【下一步】按钮,再点击【确认付款】按钮,最后点击【确定】按钮进入我的订阅页面,可以看到刚刚订阅的算法。点击【应用控制台】超链接,选择华北-北京四区域,进入算法管理页面。

如下图所示,点击“同步”按钮,同步算法,可以点击刷新按钮,刷新状态。当状态变成就绪时,表示同步成功。

image.png

3. 创建训练作业

点击上图中的“创建训练作业”,按照下表填写训练作业参数:

参数名 参数值
算法名称 默认值即可,无需修改
数据来源 数据存储位置,根据上述注释中npy文件保存路径来设置。示例:obs://paper-reproduction-01/input
模型输出 在obs中创建一个output 路径,将该路径作为本参数的输出。示例:obs://paper-reproduction-01/output
batch_size 512(默认)
lr 1e-4(默认)
epoch 500(默认为2建议改为500)
decay_rate 0.1(默认)
decay_steps 140000(默认)
epsilon 0.1(默认)(标签滑动参数)
资源池 公共资源池
规格 GPU:8 * nvidia-v100 CPU:64 核 512GiB 32GiB,或者根据自己的需要进行选择。所选算力需要与batch_size的大小匹配
计算节点个数 1

点击下一步,提交,训练作业的状态会经历“初始化”、“部署中”、“运行中”和“运行成功”四个状态。训练作业运行成功后,在上表中指定的“模型输出”路径下会自动生成model目录,该目录下需有模型文件、ModelArts平台推理脚本(config.json、customize_service.py)和其他运行模型必备的文件。

4. 模型导入

准备好模型及相关的必备文件后,您可以将生成的模型导入至ModelArts模型管理。具体操作如下:

(1)在ModelArts控制台的左侧导航栏点击“模型管理” -> “模型”,点击右侧页面中的“导入”。在导入模型页面填写名称,选择元模型来源,仅支持从OBS中选择。训练作业运行完成后,在上表中指定的“模型输出”路径下会自动生成model目录。选择该model目录作为导入的模型,例如,本次可选择的目录为obs://paper-reproduction-01/output/model。

   注意:选择好元模型路径后,“AI引擎”会自动填充。如未能自动填充,请检查元模型路径是否是model目录的上一级目录,或者model目录下是否包含模型配置文件config.json。

(2)点击“立即创建”,需要一点时间来等待模型导入和构建,当模型版本状态为“正常”后,即表示模型导入成功。

5. 创建在线服务

在ModelArts上,可以将模型部署为在线服务,然后上传图片进行预测,直接在网页端观察预测结果。

部署为在线服务具体步骤如下:

(1)在ModelArts左侧导航栏中选择“部署上线 -> 在线服务”,然后点击页面中的“部署”;

(2)在部署页面填写参数,其中在“模型列表”选择要导入的模型及版本,计算节点规格选择CPU即可;

8_online_service.jpg

(3)点击“下一步”,参数确认无误后,点击“提交”。

提交后,您可以在在线服务列表中查看部署进度,当状态变为“运行中”后,点击服务名称,进入详情页面,点击“预测”,上传.wav音频文件进行change point检测。

image.png

6. 创建批量服务

在ModelArts上,还可以将模型部署为批量服务,从OBS加载测试集音频进行预测,然后将预测结果输出到OBS。

部署为批量服务具体步骤如下:

(1)在ModelArts左侧导航栏中选择“部署上线 -> 批量服务”,然后点击页面中的“部署”;

(2)在部署页面填写参数,其中在“模型列表”选择要导入的模型及版本,填写输入数据目录和输出数据目录,计算节点规格选择“CPU 2核 8GB”,计算节点个数设为1;

image.png

(3)点击“下一步”,参数确认无误后,点击“提交”。

提交后,您可以在批量服务列表中查看部署进度,当状态变为“运行中”后,表示正在预测中,当状态变为“运行完成”,表示这批音频文件已经预测结束,预测结果是一批txt文件,保存在上图指定的OBS输出数据目录位置中,可以前往该目录查看结果。

7. 指标评估

 代码中准备了load_weight和eval参数用于指标评估

load_weight参数

默认

(如果不更改该参数在创建训练作业时,点击右侧图片中删除标志)

我已经训好的trained_model中的ckpt文件

image.png

可更改为OBS内用户训练好的模型

自备模型必须放在输入数据的obs://paper-reproduction-01/input/model

训练时,参数改为load_weight = /home/work/modelarts/inputs/input/model/model.ckpt

image.png

eval参数有以下两种取值:

(1)False,本算法执行模型训练过程;

(2)True,本算法加载load_weight参数指定的模型,然后执行模型评估过程。

模型评估需要支持以下三种输入情况:

2a) 创建训练作业时指定的数据存储位置training_dataset目录下,如果同时有音频和标注文件,则模型评估过程输出pred_results目录和eval_result.txt文件,前者存放所有音频文件的预测结果,后者存放模型评估的精度指标;

2b) 创建训练作业时指定的数据存储位置training_dataset目录下,如果只有音频,则模型评估过程输出pred_results目录,存放所有音频的预测结果;

2c) 创建训练作业时指定的数据存储位置training_dataset目录下,如果没有音频,则模型评估过程报错;

eval值 作用
0 执行训练过程,训练模型
1

评估指标,需要事先在输入数据的obs://paper-reproduction-01/input/下准备相应wav文件夹(及对应标注label_XML文件夹),具体如下图所

image.png

wav文件夹内是音频.wav文件,如下图所示(AMI数据集部分文件)

image.png

 label_XML文件夹内是wav文件的标注XML文件,如下图所示:

image.png

好了,到此即将结束了,大家感觉怎么样呢?期待大家在下方分享使用体验和感受,有问题也可以提哦,直接在下方回帖就行,会尽快解答的。

评论 0

登录后评论

    euuufe

    作者相关内容

    2021第三届华为云人工智能大赛无人车挑战杯学习资料
    发布于44个月以前
    华为云AI论文精读会2021第二十期:轻量化神经网络MobileNet系列论文精读
    发布于41个月以前
    [华为云AI经典论文复现] AI Gallery CrowdDet算法使用介绍
    发布于42个月以前
    华为云AI论文精读会2021第四期:Dynamic RCNN:一种有效提升RCNN系列网络表现的动态训练方法
    发布于42个月以前
    华为云AI论文精读会2021第十九期:ACGAN-动漫头像生成
    发布于41个月以前

    暂无数据

    热门内容推荐

    快速体验10个精选论文复现算法模型,赢取蓝牙音箱、体脂秤、ModelArts图书!
    WAYNE 发布于44个月以前
    华为云AI论文精读会2021第二十期:轻量化神经网络MobileNet系列论文精读
    euuufe 发布于41个月以前
    [华为云AI经典论文复现] AI Gallery CrowdDet算法使用介绍
    euuufe 发布于42个月以前
    Fast-SCNN: Fast Semantic Segmentation Network
    spy 发布于44个月以前
    华为云AI论文精读会2021第四期:Dynamic RCNN:一种有效提升RCNN系列网络表现的动态训练方法
    euuufe 发布于42个月以前

    暂无数据