Fsmn Vad
模型简介
FunASR提供全栈语音处理功能,包括语音识别(ASR)、语音活动检测(VAD)、标点恢复、语言模型等,支持预训练模型的推理与微调。
模型特点
工业级模型支持
提供经过工业数据训练的预训练模型,可直接用于生产环境
全栈语音处理
整合ASR、VAD、标点恢复、说话人验证等完整语音处理流程
高效推理
Paraformer模型兼具高精度与高效率,适合实时应用场景
模型能力
语音识别
语音活动检测
标点恢复
说话人验证
多说话人识别
时间戳预测
使用案例
语音转写
会议记录自动生成
将会议录音自动转写为带标点和说话人信息的文本
准确率可达90%以上(依赖音频质量)
实时语音处理
实时字幕生成
为直播或视频会议提供实时字幕
延迟可控制在600ms以内
🚀 FunASR:一个基础的端到端语音识别工具包
FunASR 旨在搭建一座连接语音识别学术研究与工业应用的桥梁。通过支持工业级语音识别模型的训练和微调,研究人员和开发者能够更便捷地开展语音识别模型的研究和生产工作,推动语音识别生态的发展。让语音识别充满乐趣!
亮点 | 新闻 | 安装 | 快速开始 | 运行时 | 模型库 | 联系我们
✨ 主要特性
- FunASR 是一个基础的语音识别工具包,具备多种功能,包括语音识别(ASR)、语音活动检测(VAD)、标点恢复、语言模型、说话人验证、说话人分割和多说话人语音识别。FunASR 提供了便捷的脚本和教程,支持预训练模型的推理和微调。
- 我们在 ModelScope 和 huggingface 上发布了大量学术和工业预训练模型,可通过我们的 模型库 访问。具有代表性的 Paraformer-large 是一种非自回归端到端语音识别模型,具有准确率高、效率高和部署方便的优点,支持快速构建语音识别服务。有关服务部署的更多详细信息,请参考 服务部署文档。
📦 安装指南
通过 PyPI 安装
pip3 install -U funasr
从源代码安装
git clone https://github.com/alibaba/FunASR.git && cd FunASR
pip3 install -e ./
可选:为预训练模型安装 modelscope
pip3 install -U modelscope
📚 模型库
FunASR 已经在工业数据上开源了大量预训练模型。您可以在 模型许可协议 下自由使用、复制、修改和共享 FunASR 模型。以下是一些有代表性的模型,更多模型请参考 模型库。
(注:🤗 代表 Huggingface 模型库链接,⭐ 代表 ModelScope 模型库链接)
属性 | 详情 |
---|---|
模型名称 | paraformer-zh (⭐ 🤗 ) |
任务详情 | 语音识别,带时间戳,非流式 |
训练数据 | 60000 小时,普通话 |
参数数量 | 220M |
模型名称 | paraformer-zh-streaming ( ⭐ 🤗 ) |
任务详情 | 语音识别,流式 |
训练数据 | 60000 小时,普通话 |
参数数量 | 220M |
模型名称 | paraformer-en ( ⭐ 🤗 ) |
任务详情 | 语音识别,带时间戳,非流式 |
训练数据 | 50000 小时,英语 |
参数数量 | 220M |
模型名称 | conformer-en ( ⭐ 🤗 ) |
任务详情 | 语音识别,非流式 |
训练数据 | 50000 小时,英语 |
参数数量 | 220M |
模型名称 | ct-punc ( ⭐ 🤗 ) |
任务详情 | 标点恢复 |
训练数据 | 100M,普通话和英语 |
参数数量 | 1.1G |
模型名称 | fsmn-vad ( ⭐ 🤗 ) |
任务详情 | 语音活动检测 |
训练数据 | 5000 小时,普通话和英语 |
参数数量 | 0.4M |
模型名称 | fa-zh ( ⭐ 🤗 ) |
任务详情 | 时间戳预测 |
训练数据 | 5000 小时,普通话 |
参数数量 | 38M |
模型名称 | cam++ ( ⭐ 🤗 ) |
任务详情 | 说话人验证/分割 |
训练数据 | 5000 小时 |
参数数量 | 7.2M |
🚀 快速开始
命令行使用
funasr +model=paraformer-zh +vad_model="fsmn-vad" +punc_model="ct-punc" +input=asr_example_zh.wav
注意:支持识别单个音频文件,以及 Kaldi 风格的 wav.scp 格式的文件列表:wav_id wav_pat
💻 使用示例
基础用法
语音识别(非流式)
from funasr import AutoModel
# paraformer-zh 是一个多功能的 ASR 模型
# 根据需要使用 vad、punc、spk
model = AutoModel(model="paraformer-zh", model_revision="v2.0.4",
vad_model="fsmn-vad", vad_model_revision="v2.0.4",
punc_model="ct-punc-c", punc_model_revision="v2.0.4",
# spk_model="cam++", spk_model_revision="v2.0.2",
)
res = model.generate(input=f"{model.model_path}/example/asr_example.wav",
batch_size_s=300,
hotword='魔搭')
print(res)
注意:model_hub
表示模型仓库,ms
表示选择 ModelScope 下载,hf
表示选择 Huggingface 下载。
语音识别(流式)
from funasr import AutoModel
chunk_size = [0, 10, 5] #[0, 10, 5] 600ms, [0, 8, 4] 480ms
encoder_chunk_look_back = 4 # 编码器自注意力的回溯块数
decoder_chunk_look_back = 1 # 解码器交叉注意力的编码器回溯块数
model = AutoModel(model="paraformer-zh-streaming", model_revision="v2.0.4")
import soundfile
import os
wav_file = os.path.join(model.model_path, "example/asr_example.wav")
speech, sample_rate = soundfile.read(wav_file)
chunk_stride = chunk_size[1] * 960 # 600ms
cache = {}
total_chunk_num = int(len((speech)-1)/chunk_stride+1)
for i in range(total_chunk_num):
speech_chunk = speech[i*chunk_stride:(i+1)*chunk_stride]
is_final = i == total_chunk_num - 1
res = model.generate(input=speech_chunk, cache=cache, is_final=is_final, chunk_size=chunk_size, encoder_chunk_look_back=encoder_chunk_look_back, decoder_chunk_look_back=decoder_chunk_look_back)
print(res)
注意:chunk_size
是流式延迟的配置。 [0,10,5]
表示实时显示粒度为 10*60 = 600ms
,前瞻信息为 5*60 = 300ms
。每次推理输入为 600ms
(采样点为 16000*0.6 = 960
),输出为相应的文本。对于最后一个语音段输入,需要将 is_final
设置为 True
以强制输出最后一个单词。
语音活动检测(非流式)
from funasr import AutoModel
model = AutoModel(model="fsmn-vad", model_revision="v2.0.4")
wav_file = f"{model.model_path}/example/asr_example.wav"
res = model.generate(input=wav_file)
print(res)
语音活动检测(流式)
from funasr import AutoModel
chunk_size = 200 # ms
model = AutoModel(model="fsmn-vad", model_revision="v2.0.4")
import soundfile
wav_file = f"{model.model_path}/example/vad_example.wav"
speech, sample_rate = soundfile.read(wav_file)
chunk_stride = int(chunk_size * sample_rate / 1000)
cache = {}
total_chunk_num = int(len((speech)-1)/chunk_stride+1)
for i in range(total_chunk_num):
speech_chunk = speech[i*chunk_stride:(i+1)*chunk_stride]
is_final = i == total_chunk_num - 1
res = model.generate(input=speech_chunk, cache=cache, is_final=is_final, chunk_size=chunk_size)
if len(res[0]["value"]):
print(res)
标点恢复
from funasr import AutoModel
model = AutoModel(model="ct-punc", model_revision="v2.0.4")
res = model.generate(input="那今天的会就到这里吧 happy new year 明年见")
print(res)
时间戳预测
from funasr import AutoModel
model = AutoModel(model="fa-zh", model_revision="v2.0.4")
wav_file = f"{model.model_path}/example/asr_example.wav"
text_file = f"{model.model_path}/example/text.txt"
res = model.generate(input=(wav_file, text_file), data_type=("sound", "text"))
print(res)
更多示例请参考 文档
📄 许可证
本项目采用 Model License Agreement 许可协议。
Voice Activity Detection
MIT
基于pyannote.audio 2.1版本的语音活动检测模型,用于识别音频中的语音活动时间段
语音识别
V
pyannote
7.7M
181
Wav2vec2 Large Xlsr 53 Portuguese
Apache-2.0
这是一个针对葡萄牙语语音识别任务微调的XLSR-53大模型,基于Common Voice 6.1数据集训练,支持葡萄牙语语音转文本。
语音识别 其他
W
jonatasgrosman
4.9M
32
Whisper Large V3
Apache-2.0
Whisper是由OpenAI提出的先进自动语音识别(ASR)和语音翻译模型,在超过500万小时的标注数据上训练,具有强大的跨数据集和跨领域泛化能力。
语音识别 支持多种语言
W
openai
4.6M
4,321
Whisper Large V3 Turbo
MIT
Whisper是由OpenAI开发的最先进的自动语音识别(ASR)和语音翻译模型,经过超过500万小时标记数据的训练,在零样本设置下展现出强大的泛化能力。
语音识别
Transformers 支持多种语言

W
openai
4.0M
2,317
Wav2vec2 Large Xlsr 53 Russian
Apache-2.0
基于facebook/wav2vec2-large-xlsr-53模型微调的俄语语音识别模型,支持16kHz采样率的语音输入
语音识别 其他
W
jonatasgrosman
3.9M
54
Wav2vec2 Large Xlsr 53 Chinese Zh Cn
Apache-2.0
基于facebook/wav2vec2-large-xlsr-53模型微调的中文语音识别模型,支持16kHz采样率的语音输入。
语音识别 中文
W
jonatasgrosman
3.8M
110
Wav2vec2 Large Xlsr 53 Dutch
Apache-2.0
基于facebook/wav2vec2-large-xlsr-53微调的荷兰语语音识别模型,在Common Voice和CSS10数据集上训练,支持16kHz音频输入。
语音识别 其他
W
jonatasgrosman
3.0M
12
Wav2vec2 Large Xlsr 53 Japanese
Apache-2.0
基于facebook/wav2vec2-large-xlsr-53模型微调的日语语音识别模型,支持16kHz采样率的语音输入
语音识别 日语
W
jonatasgrosman
2.9M
33
Mms 300m 1130 Forced Aligner
基于Hugging Face预训练模型的文本与音频强制对齐工具,支持多种语言,内存效率高
语音识别
Transformers 支持多种语言

M
MahmoudAshraf
2.5M
50
Wav2vec2 Large Xlsr 53 Arabic
Apache-2.0
基于facebook/wav2vec2-large-xlsr-53微调的阿拉伯语语音识别模型,在Common Voice和阿拉伯语语音语料库上训练
语音识别 阿拉伯语
W
jonatasgrosman
2.3M
37
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98