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