Conformer Transducer 模型介绍
项目介绍
RNN-T是一种识别准确率高、流式友好的语音识别模型。 本项目实现了基于chunk conformer的流式RNN-T模型,在Librispeech上获得了流式模型的SOTA结果。
如何快速体验模型效果
在线体验
在页面右侧,可以在“在线体验”栏内看到我们预先准备好的示例音频,点击播放按钮可以试听,点击“执行测试”按钮,会在下方“测试结果”栏中显示识别结果。如果您想要测试自己的音频,可点“更换音频”按钮,选择上传或录制一段音频,完成后点击执行测试,识别内容将会在测试结果栏中显示。
在Notebook中开发
对于有开发需求的使用者,特别推荐您使用Notebook进行离线处理。先登录ModelScope账号,点击模型页面右上角的“在Notebook中打开”按钮出现对话框。api调用方式可参考如下范例:
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
inference_pipline = pipeline(
task=Tasks.auto_speech_recognition,
model='damo/speech_conformer_transducer_asr-en-16k-librispeech-vocab5003-pytorch-online',
model_revision="v1.0.0",
fake_streaming=True)
rec_result = inference_pipline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_en.wav')
print(rec_result)
如何训练自己的RNN-T模型?
本项目提供的RNN-T是基于Librispeech的识别模型,开发者可以基于本项目对应的github代码仓库进一步进行模型的领域定制化。
基于github的模型训练和推理
FunASR框架支持魔搭社区开源的工业级的语音识别模型的training & finetuning,使得研究人员和开发者可以更加便捷的进行语音识别模型的研究和生产,目前已在github开源:https://github.com/alibaba-damo-academy/FunASR。
FunASR框架安装
- 安装FunASR和ModelScope
# Clone the repo:
git clone https://github.com/alibaba/FunASR.git
# Install Conda:
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh
conda create -n funasr python=3.7
conda activate funasr
# Install Pytorch (version >= 1.7.0):
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=9.2 -c pytorch # For more versions, please see https://pytorch.org/get-started/locally/
# Install ModelScope
pip install "modelscope[audio]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
# Install other packages:
pip install --editable ./
接下来会以Librispeech数据集为例,介绍如何在FunASR框架中使用RNN-T进行训、微调和推理。
训练
cd egs/librispeech/rnnt
# 配置 run.sh 中参数
# CUDA_VISIBLE_DEVICES: 可用的gpu list
# gpu_num: 训练使用的gpu数量
# feats_dir: 数据准备输出目录
# exp_dir: 模型输出路径
# tag: 模型保存后缀名
# 配置修改完成后,执行命令:
bash run.sh --stage 0 --stop_stage 5
微调:加载训练好的模型,采用私有或者开源数据进行模型训练。
cd egs/librispeech/rnnt
# 配置 run.sh 中参数
# CUDA_VISIBLE_DEVICES: 可用的gpu list
# gpu_num: 训练使用的gpu数量
# feats_dir: 数据准备输出目录
# exp_dir: 模型输出路径
# tag: 模型保存后缀名
# init_param: 初始模型路径
# 配置修改完成后,执行命令:
bash run.sh --stage 4 --stop_stage 4
推理
cd egs/librispeech/rnnt
# 配置 run.sh 中参数
# CUDA_VISIBLE_DEVICES: 可用的gpu list
# gpu_num: 训练使用的gpu数量
# njob: 一块gpu解码的线程数
# feats_dir: 数据准备输出目录
# exp_dir: 模型输出路径
# tag: 模型保存后缀名
# 配置修改完成后,执行命令:
bash run.sh --stage 5 --stop_stage 5
数据评估及结果
model | test clean(WER%) | test other(WER%) |
---|---|---|
RNN-T | 3.58 | 9.27 |
使用方式以及适用范围
运行范围
- 现阶段只能在Linux-x86_64运行,不支持Mac和Windows。
使用方式
- 直接推理:可以直接对输入音频进行解码,输出目标文字。
- 微调:加载训练好的模型,采用私有或者开源数据进行模型训练。
使用范围与目标场景
- 适合于在线语音识别场景,如录音文件转写,配合GPU推理效果更加,推荐输入语音时长在20s以下。
模型局限性以及可能的偏差
考虑到特征提取流程和工具以及训练工具差异,会对CER的数据带来一定的差异(<0.1%),推理GPU环境差异导致的RTF数值差异。
评论