Paraformer语音识别-语音唤醒-普通话-粤语-英文-16k-实时-tiny

我要开发同款
匿名用户2024年07月31日
233阅读
所属分类ai、Non-autoregressive、pytorch、INTERSPEECH 2022、Alibaba、Paraformer、FunASR、CER、audio
开源地址https://modelscope.cn/models/dengcunqin/speech_paraformer-tiny_asr_nat-zh-cantonese-en-16k-vocab8501-online
授权协议Apache License 2.0

作品详情

模型介绍

基于Paraformer online large(damo/speechparaformer-largeasr_nat-zh-cn-16k-common-vocab8404-online),更换vocab,增加粤语部分字,减小模型参数大小,通过在普通话1w小时、粤语100小时、英语1w小时音频数据集上进行训练1轮。此版本尚未训练完成,此次放出的为中间模型,最终模型还要训练一段时间。 模型训练和推理代码已改为funasr1.0。可用于流式(在线)语音识别和语音唤醒(需要的算力很小,速度比较快,边缘设备及手机均可流畅运行)。

Paraformer-large模型介绍

ModelScope-FunASR

FunASR希望在语音识别方面建立学术研究和工业应用之间的桥梁。通过支持在ModelScope上发布的工业级语音识别模型的训练和微调,研究人员和开发人员可以更方便地进行语音识别模型的研究和生产,并促进语音识别生态系统的发展。

最新动态 | 环境安装 | 介绍文档 | 中文教程 | 服务部署 | 模型库 | 联系我们

项目介绍

Paraformer是达摩院语音团队提出的一种高效的非自回归端到端语音识别框架。本项目为Paraformer中文通用语音识别模型,采用工业级数万小时的标注音频进行模型训练,保证了模型的通用识别效果。模型可以被应用于语音输入法、语音导航、智能会议纪要等场景。

Paraformer模型结构如上图所示,由 Encoder、Predictor、Sampler、Decoder 与 Loss function 五部分组成。Encoder可以采用不同的网络结构,例如self-attention,conformer,SAN-M等。Predictor 为两层FFN,预测目标文字个数以及抽取目标文字对应的声学向量。Sampler 为无可学习参数模块,依据输入的声学向量和目标向量,生产含有语义的特征向量。Decoder 结构与自回归模型类似,为双向建模(自回归为单向建模)。Loss function 部分,除了交叉熵(CE)与 MWER 区分性优化目标,还包括了 Predictor 优化目标 MAE。

其核心点主要有:

  • Predictor 模块:基于 Continuous integrate-and-fire (CIF) 的 预测器 (Predictor) 来抽取目标文字对应的声学特征向量,可以更加准确的预测语音中目标文字个数。
  • Sampler:通过采样,将声学特征向量与目标文字向量变换成含有语义信息的特征向量,配合双向的 Decoder 来增强模型对于上下文的建模能力。
  • 基于负样本采样的 MWER 训练准则。

更详细的细节见:

如何使用与训练自己的模型

本项目提供的预训练模型是基于大数据训练的通用领域识别模型,开发者可以基于此模型进一步利用ModelScope的微调功能或者本项目对应的Github代码仓库FunASR进一步进行模型的领域定制化。

在Notebook中开发

对于有开发需求的使用者,特别推荐您使用Notebook进行离线处理。先登录ModelScope账号,点击模型页面右上角的“在Notebook中打开”按钮出现对话框,首次使用会提示您关联阿里云账号,按提示操作即可。关联账号后可进入选择启动实例界面,选择计算资源,建立实例,待实例创建完成后进入开发环境,进行调用。

基于ModelScope进行推理

  • 流式语音识别api调用方式可参考如下范例:

```#!/usr/bin/env python3

-- encoding: utf-8 --

Copyright FunASR (https://github.com/alibaba-damo-academy/FunASR). All Rights Reserved.

MIT License (https://opensource.org/licenses/MIT)

from funasr import AutoModel

chunksize = [0, 10, 5] #[0, 10, 5] 600ms, [0, 8, 4] 480ms encoderchunklookback = 4 #number of chunks to lookback for encoder self-attention decoderchunklook_back = 1 #number of encoder chunks to lookback for decoder cross-attention

model = AutoModel(model="dengcunqin/speechparaformer-tinyasrnat-zh-cantonese-en-16k-vocab8501-online", modelrevision="master") cache = {} res = model(input="example/asrexample普通话.wav", chunksize=chunksize, encoderchunklookback=encoderchunklookback, decoderchunklookback=decoderchunklookback, ) print(res)

import soundfile import os

wavfile = os.path.join(model.modelpath, "example/asrexample粤语.wav") speech, samplerate = soundfile.read(wavfile)

chunkstride = chunksize[1] * 960 # 600ms、480ms

cache = {}

for i in range(int(len((speech)-1)/chunkstride+1)): speechchunk = speech[ichunkstride:(i+1)chunkstride] isfinal = i == int(len((speech)-1)/chunkstride+1) res = model(input=speechchunk, cache=cache, isfinal=isfinal, chunksize=chunksize, encoderchunklookback=encoderchunklookback, decoderchunklookback=decoderchunklook_back, ) print(res)

## 使用方式以及适用范围

运行范围
- 支持Linux-x86_64、Mac和Windows运行。

使用方式
- 直接推理:可以直接对输入音频进行解码,输出目标文字。
- 微调:加载训练好的模型,采用私有或者开源数据进行模型训练。

使用范围与目标场景
- 适合于实时语音识别场景。


## 模型局限性以及可能的偏差

考虑到特征提取流程和工具以及训练工具差异,会对CER的数据带来一定的差异(<0.1%),推理GPU环境差异导致的RTF数值差异。



## 相关论文以及引用信息

BibTeX @inproceedings{gao2022paraformer, title={Paraformer: Fast and Accurate Parallel Transformer for Non-autoregressive End-to-End Speech Recognition}, author={Gao, Zhifu and Zhang, Shiliang and McLoughlin, Ian and Yan, Zhijie}, booktitle={INTERSPEECH}, year={2022} } ```

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论