🚀 NVIDIA Streaming Citrinet 1024 (zh)
本模型采用字符编码方案,可将语音转录为Aishell - 2普通话语料库中标准字符集的文本。它是Citrinet的非自回归“大型”变体,约有1.4亿个参数。该模型还与NVIDIA Riva兼容,可用于生产级服务器部署。
|
|
|
|
|
🚀 快速开始
本模型可在NeMo工具包[3]中使用,可作为预训练检查点用于推理或在其他数据集上进行微调。
若要训练、微调或使用该模型,你需要安装NVIDIA NeMo。建议在安装最新版本的PyTorch之后再安装它。
pip install nemo_toolkit['all']
✨ 主要特性
- 采用字符编码方案,可转录Aishell - 2普通话语料库标准字符集文本。
- 非自回归“大型”Citrinet变体,约1.4亿参数。
- 与NVIDIA Riva兼容,适用于生产级服务器部署。
📦 安装指南
若要训练、微调或使用该模型,你需要安装NVIDIA NeMo。建议在安装最新版本的PyTorch之后再安装它。
pip install nemo_toolkit['all']
💻 使用示例
基础用法
自动实例化模型
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecCTCModel.from_pretrained("nvidia/stt_zh_citrinet_1024_gamma_0_25")
高级用法
使用Python进行转录
首先,获取一段普通话语音样本。
然后简单执行以下操作:
output = asr_model.transcribe(['sample.wav'])
print(output[0].text)
转录多个音频文件
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_zh_citrinet_1024_gamma_0_25"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
📚 详细文档
输入
该模型接受16000 kHz单声道音频(wav文件)作为输入。
输出
对于给定的音频样本,该模型将转录后的语音以字符串形式输出。
🔧 技术细节
模型架构
Citrinet模型是一种用于自动语音识别的非自回归模型[1],它使用CTC损失/解码而不是Transducer。你可以在Citrinet模型中找到有关此模型详细信息。
训练
使用NeMo工具包[3]对模型进行了数百个epoch的训练。这些模型使用示例脚本和基础配置进行训练。
这些模型的分词器是使用训练集的文本转录,通过此脚本构建的。
数据集
此集合中的所有模型都在一个复合数据集(NeMo ASRSET)上进行训练,该数据集包含数千小时的英语语音:
注意:旧版本的模型可能在较小的数据集上进行训练。
性能
此集合中可用模型的列表如下表所示。ASR模型的性能以贪心解码的词错误率(WER%)报告。
版本 |
分词器 |
词汇量大小 |
开发iOS集 |
测试iOS集 |
开发安卓集 |
测试安卓集 |
开发麦克风集 |
测试麦克风集 |
训练数据集 |
1.0.0 |
字符 |
5000+ |
4.8 |
5.1 |
5.2 |
5.5 |
5.2 |
5.5 |
AIShell 2 |
在使用NVIDIA Riva进行部署时,你可以将此模型与外部语言模型结合使用,以进一步降低WER。下表报告了使用不同语言建模技术的最新模型的WER(%)。
局限性
由于该模型是在公开可用的语音数据集上训练的,对于包含技术术语或模型未训练过的方言的语音,其性能可能会下降。该模型对于带口音的语音表现可能也会较差。
使用NVIDIA Riva进行部署
为了获得最佳的实时准确性、低延迟和高吞吐量,可使用NVIDIA Riva部署该模型。NVIDIA Riva是一个加速语音AI SDK,可在本地、所有云、多云、混合云、边缘和嵌入式设备上部署。
此外,Riva还提供:
- 针对最常用语言的开箱即用的世界级准确性,其模型检查点在专有数据上进行了数十万GPU计算小时的训练。
- 通过运行时单词增强(例如品牌和产品名称)以及对声学模型、语言模型和逆文本归一化的定制,实现一流的准确性。
- 流式语音识别、Kubernetes兼容的扩展和企业级支持。
查看Riva实时演示。
📄 许可证
本项目采用CC - BY - 4.0许可证。
📖 参考文献