重要提示
您正在查看 NeMo 2.0 文档。此版本引入了 API 的重大更改和一个新的库 NeMo Run。我们目前正在将 NeMo 1.0 的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档。
语音识别 (SR)#
语音识别是一个广泛的研究领域,它解决了两个主要任务:说话人辨认(说话人的身份是什么?)和说话人验证(说话人是否是他们声称的那个人?)。我们专注于与文本无关的语音识别,即说话人的身份是基于语音的说话方式,而不是说话的内容。通常,这种语音识别系统处理不受约束的语音话语,这些话语被转换为固定长度的向量,称为说话人嵌入。说话人嵌入也可以用于自动语音识别 (ASR) 和语音合成。
大多数语音识别系统的目标是获得良好的说话人级别表示,这可以帮助将自己与其他说话人区分开来。为了实现这一目标,我们首先以端到端的方式训练神经网络模型,使用交叉熵或角度 softmax 损失优化编码器。我们修改解码器以获得这些固定大小的嵌入,而与音频输入的长度无关,并采用池化策略,例如基于均值和方差的统计池化或基于注意力的方法来生成这些嵌入。
在说话人辨认中,我们通常在更大的训练集上使用交叉熵损失进行训练,然后在首选的标签集上进行微调,在这些标签集中,人们只想对已知的说话人集进行分类。另一方面,在说话人验证中,我们使用角度 softmax 损失训练嵌入提取器,并将来自单个说话者的一个音频文件的嵌入与来自未知说话者的嵌入进行比较。为了量化嵌入的相似性,我们使用评分技术,例如余弦相似度。
完整文档树
资源和文档指南#
实践语音识别教程笔记本可以在 speaker recognition tutorials folder 下找到。此教程和大多数其他教程可以通过在 Colab 上指定笔记本 GitHub 页面的链接来在 Google Colab 上运行。
如果您正在寻找有关特定 SpeakerNet 模型的信息,或者想了解有关 nemo_asr
集合中可用的模型架构的更多信息,请查看 模型 页面。
有关数据集预处理的文档可以在 数据集 页面上找到。NeMo 在 <nemo/scripts/speaker_tasks/> 文件夹中包含了用于 speaker_recognition 的预处理和其他脚本,此页面包含有关运行这些脚本的说明。如果您有自己的数据,它还包括创建您自己的 NeMo 兼容数据集的指南。
有关如何加载模型检查点(本地文件或来自 NGC 的预训练检查点)、执行推理以及 NGC 上可用的检查点列表的信息,请访问 检查点 页面。
有关特定于 nemo_asr
模型的配置文件的文档可以在 配置文件 页面上找到。
对于清晰的逐步教程,我们建议您参考 folder 中找到的教程。