人工智能/深度学习

用 Label Studio 和 NVIDIA NeMo 生成高质量的语音识别标签

使用 NVIDIA NeMo 标签工作室 中的自动语音识别( ASR )模型处理音频数据时,可以节省时间并产生更准确的结果。

NVIDIA NeMo 提供了可重用的神经模块,使得创建新的神经网络架构变得容易,包括 ASR 的预构建模块和现成模型。借助 NVIDIA NeMo 的强大功能,您可以从预训练语音识别模型中获得音频转录。添加 labelstudio 及其开源数据标记功能,您可以进一步提高转录质量。

解决方案

Diagram showing audio data with speech and NeMo ASR models as inputs into Label Studio process with prelabeled data being reviewed and corrected, then exported in ASR manifest format.
图 1 .使用 Label Studio 和 NeMo 注释和更正转录本的 ASR 工作流。

按照本文中的步骤使用 Label Studio 设置 NVIDIA NeMo ASR ,以生成高质量的音频转录本。

  1. 连接 NVIDIA NeMo 模型,在 Label Studio 中自动转录音频文件。
  2. 设置音频转录项目。
  3. 从 Label Studio 验证和导出修订的音频转录本。
  4. 微调 NeMo ASR 模型与修改后的音频转录从标签工作室。

先决条件

开始之前,请确保您拥有以下资源:

  • 音频数据文件。 此音频 MIG 可以是客户服务电话、电话订单、销售对话的录音,也可以是其他与人交谈的录音。音频文件必须采用以下文件格式之一:
    • WAV
    • AIFF
    • MP3
    • AU
    • FLAC
  • 已安装 Label Studio 。 在本地计算机或云服务器上使用首选方法安装 Label Studio 。有关更多信息,请参阅 Label Studio 文档中的 Quickstart
  • NeMo 工具箱已安装

免费音频数据

如果您没有任何音频数据,可以使用示例数据集或历史音频数据集:

您可以使用许多其他 ASR 数据集。有关详细信息,请参阅 数据集 – 简介 。您还可以使用国会图书馆网站上的公共域录音集,如 美国棒球运动员访谈录

确定要转录的音频后,就可以开始处理它了。

安装 Label Studio ML 后端

安装 Label Studio 后,请安装 Label Studio 机器学习后端。从命令行运行以下命令:

git clone https://github.com/heartexlabs/label-studio-ml-backend 

设置环境:

cd label-studio-ml-backend

# Install label-studio-ml and its dependencies
pip install -U -e .

# Install the nemo example dependencies
pip install -r label_studio_ml/examples/requirements.txt

连接 NVIDIA NeMo 模型,在 Label Studio 中自动转录音频文件

要使用预先训练的 ASR 模型的预测对数据进行预标记,请在 Label Studio 中将 NeMo 工具箱设置为机器学习后端。 Label Studio 机器学习后端允许您使用预先训练的模型来预标记数据。

Label Studio 包括使用 利用 NGC 云中的 NeMo 开发的预训练 QuartzNet15x5 模型一个例子 ,但是如果另一个模型更适合,您可以用您的数据设置一个不同的模型。有关更多信息,请参阅 NeMo 提供的 ASR 型号列表

在命令行中,将 NeMo 设置为机器学习后端,并使用该模型启动一个新的 Label Studio 项目。

  1. 安装 NeMo 工具箱 在 Docker 容器中或使用 pip
  2. 下载 NeMo ASR 模型。提供的 Label Studio 示例脚本从 NGC 云下载预先训练的 QuartzNet 模型。要使用不同的模型,请从 NGC 下载该模型。
  3. 从命令行启动 Label Studio 机器学习后端。
    label-studio-ml init my_model --from label_studio_ml/examples/nemo/asr.py
  4. 启动机器学习后端。默认情况下,模型在本地主机上以端口 9090 启动。
    label-studio-ml start my_model
  5. 用模型启动 Label Studio 。
    label-studio start my_project --ml-backends http://localhost:9090

设置音频转录项目

启动 Label Studio 后,导入音频数据并设置正确的模板来配置标签。 VZX19 是自动语音识别的最佳选择,它使音频数据的注释变得容易。

打开 Label Studio ,导入数据,然后选择模板。

  1. 选择 Import 并以纯文本或 JSON 文件的形式导入音频数据,这些文件引用在线存储(如 Amazon S3 )中托管的音频文件的有效 url 。有关详细信息,请参阅 将数据导入 Label Studio
GIF showing how to import data into Label Studio. Content duplicated in surrounding text.
图 2 .将数据导入 Label Studio 的过程。。

2 .从 Tasks 列表中,选择 Settings
3 .在 标签界面 选项卡上,浏览模板并选择 自动语音识别 模板。
4 .选择 Save

验证并输出模型预测

作为注释器,检查任务界面上音频数据的任务并验证。如有必要,纠正 NeMo 语音模型预测的转录本。

  1. 从 Label Studio 中的任务列表中,选择 Label
  2. 对于每个音频样本,聆听音频并回顾 NeMo 模型产生的转录,作为预标记过程的一部分。
  3. 如果成绩单中有任何单词不正确,请更新。
  4. 保存对成绩单的更改。选择 Submit 提交成绩单并查看下一个音频样本。

接下来,按照 NVIDIA NVIDIA 文档中的 NeMo ASR 集合 所述,以 NeMo 模型所期望的正确格式从 Label Studio 导出完成的音频转录本。

要导出完成的音频,请执行以下操作:

  1. 从 Label Studio 中的任务列表中,选择 Export
  2. 选择名为 ASR_MANIFEST 的音频转录 JSON 格式。

有关 Label Studio 中可用导出格式的详细信息,请参阅 从 Label Studio 导出结果

使用高质量的成绩单来微调您的 ML 模型

当您处理完音频并调整完转录的文本后,剩下的是音频转录本,您可以用来重新培训 NeMo 中包含的 ASR 模型。 Label Studio 生成与 NeMo 培训完全兼容的注释。

要更新 QuartzNet 模型检查点,您可以在几行代码中完成,从头开始训练模型,或者使用 PyTorch Lightning 。例子也可以在 NeMo Jupyter 笔记本中找到。有关详细信息,请参阅 用 NeMo Jupyter 笔记本在 ASR 中进行迁移学习

通过同时使用 Label Studio 和 NeMo ,您可以节省从头开始处理每个音频文件的时间 NeMo 可以立即为您提供高度准确的预测,而 Label Studio 可以帮助您实现完美的预测 今天就试试

 

Tags