Wav2vecbert2 Filledpause
W
Wav2vecbert2 Filledpause
由classla開發
用於對音頻中20毫秒的幀進行分類,判斷是否存在填充停頓(如'eee'、'errm'等)的模型
下載量 4,290
發布時間 : 8/28/2024
模型概述
本模型基於facebook/w2v-bert-2.0基礎模型訓練,專門用於檢測語音中的填充停頓現象。
模型特點
多語言支持
支持斯洛文尼亞語、克羅地亞語、塞爾維亞語、捷克語和波蘭語五種語言的填充停頓檢測
高精度檢測
在ROG語料庫上達到0.968的F1值,表現出色
智能後處理
通過剔除首尾短片段等後處理方式,顯著提升在ParlaSpeech語料庫上的表現
模型能力
音頻幀分類
填充停頓檢測
多語言語音分析
使用案例
語音處理
語音轉寫預處理
在語音轉寫前識別並標記填充停頓,提高轉寫準確性
減少轉寫結果中的非語義內容
語音質量分析
分析演講或對話中的填充停頓頻率,評估口語流暢度
提供量化指標用於演講訓練或語言學習
🚀 填充停頓的幀分類模型
本模型可基於填充停頓(如 “eee”、“errm” 等)的存在情況,對音頻中每個 20 毫秒的幀進行分類。
🚀 快速開始
此模型用於填充停頓的幀分類,通過對音頻幀的分析判斷是否存在填充停頓。
✨ 主要特性
- 支持斯洛文尼亞語(sl)、克羅地亞語(hr)、塞爾維亞語(sr)、捷克語(cs)和波蘭語(pl)。
- 基於
facebook/w2v-bert-2.0
基礎模型。 - 適用於音頻分類任務。
- 使用 F1、召回率和精確率作為評估指標。
屬性 | 詳情 |
---|---|
模型類型 | 填充停頓的幀分類模型 |
訓練數據 | 基於人類標註的斯洛文尼亞語語音語料庫 ROG - Artur |
📦 安裝指南
文檔中未提及安裝相關內容,故跳過此章節。
💻 使用示例
基礎用法
from transformers import AutoFeatureExtractor, Wav2Vec2BertForAudioFrameClassification
from datasets import Dataset, Audio
import torch
import numpy as np
from pathlib import Path
device = torch.device("cuda")
model_name = "classla/wav2vecbert2-filledPause"
feature_extractor = AutoFeatureExtractor.from_pretrained(model_name)
model = Wav2Vec2BertForAudioFrameClassification.from_pretrained(model_name).to(device)
ds = Dataset.from_dict(
{
"audio": [
"/cache/peterr/mezzanine_resources/filled_pauses/data/dev/Iriss-J-Gvecg-P500001-avd_2082.293_2112.194.wav"
],
}
).cast_column("audio", Audio(sampling_rate=16_000, mono=True))
def frames_to_intervals(
frames: list[int],
drop_short=True,
drop_initial=True,
drop_final=True,
short_cutoff_s=0.08,
) -> list[tuple[float]]:
"""Transforms a list of ones or zeros, corresponding to annotations on frame
levels, to a list of intervals ([start second, end second]).
Allows for additional filtering on duration (false positives are often
short) and start times (false positives starting at 0.0 are often an
artifact of poor segmentation).
:param list[int] frames: Input frame labels
:param bool drop_short: Drop everything shorter than short_cutoff_s,
defaults to True
:param bool drop_initial: Drop predictions starting at 0.0, defaults to True
:param bool drop_final: Drop predictions ending at audio end, defaults to True
:param float short_cutoff_s: Duration in seconds of shortest allowable
prediction, defaults to 0.08
:return list[tuple[float]]: List of intervals [start_s, end_s]
"""
from itertools import pairwise
import pandas as pd
results = []
ndf = pd.DataFrame(
data={
"time_s": [0.020 * i for i in range(len(frames))],
"frames": frames,
}
)
ndf = ndf.dropna()
indices_of_change = ndf.frames.diff()[ndf.frames.diff() != 0].index.values
for si, ei in pairwise(indices_of_change):
if ndf.loc[si : ei - 1, "frames"].mode()[0] == 0:
pass
else:
results.append(
(
round(ndf.loc[si, "time_s"], 3),
round(ndf.loc[ei, "time_s"], 3),
)
)
if drop_short and (len(results) > 0):
results = [i for i in results if (i[1] - i[0] >= short_cutoff_s)]
if drop_initial and (len(results) > 0):
results = [i for i in results if i[0] != 0.0]
if drop_final and (len(results) > 0):
results = [i for i in results if i[1] != 0.02 * len(frames)]
return results
def evaluator(chunks):
sampling_rate = chunks["audio"][0]["sampling_rate"]
with torch.no_grad():
inputs = feature_extractor(
[i["array"] for i in chunks["audio"]],
return_tensors="pt",
sampling_rate=sampling_rate,
).to(device)
logits = model(**inputs).logits
y_pred = np.array(logits.cpu()).argmax(axis=-1)
intervals = [frames_to_intervals(i) for i in y_pred]
return {"y_pred": y_pred.tolist(), "intervals": intervals}
ds = ds.map(evaluator, batched=True)
print(ds["y_pred"][0])
# Prints a list of 20ms frames: [0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0....]
# with 0 indicating no filled pause detected in that frame
print(ds["intervals"][0])
# Prints the identified intervals as a list of [start_s, ends_s]:
# [[0.08, 0.28 ], ...]
📚 詳細文檔
訓練數據
模型在人類標註的斯洛文尼亞語語音語料庫 ROG - Artur 上進行訓練。訓練集的錄音被分割成長度最多為 30 秒的片段。
評估
儘管模型的輸出是一系列表示 20 毫秒幀的 0 或 1,但評估是在事件級別進行的;連續輸出為 1 的片段會被合併為一個事件。當真實事件和預測事件部分重疊時,將其計為真陽性。我們報告了正類的精確率、召回率和 F1 分數。
ROG 語料庫評估
後處理 | 召回率 | 精確率 | F1 分數 |
---|---|---|---|
無 | 0.981 | 0.955 | 0.968 |
ParlaSpeech 語料庫評估
對於 ParlaSpeech 集合 中的每種語言,人工標註員對 400 個實例進行了採樣和標註。
由於 ParlaSpeech 語料庫太大,無法像 ROG 語料庫那樣進行手動分割,因此在推理時觀察到了一些失敗模式。研究發現,後處理可以改善結果。觀察到誤報是由不恰當的音頻分割引起的,因此禁用在音頻開始處開始或在音頻結束處結束的預測可能會有幫助。另一種失敗模式是預測出非常短的事件,因此可以安全地忽略非常短的預測。
添加後處理後,模型達到了以下指標:
語言 | 後處理方式 | 召回率 | 精確率 | F1 分數 |
---|---|---|---|---|
捷克語(CZ) | 去除短的起始和結束預測 | 0.889 | 0.859 | 0.874 |
克羅地亞語(HR) | 去除短的起始和結束預測 | 0.94 | 0.887 | 0.913 |
波蘭語(PL) | 去除短的起始和結束預測 | 0.903 | 0.947 | 0.924 |
塞爾維亞語(RS) | 去除短的起始和結束預測 | 0.966 | 0.915 | 0.94 |
有關後處理的詳細信息,請參閱上述代碼片段中的 frames_to_intervals
函數。
🔧 技術細節
本模型基於 facebook/w2v-bert-2.0
基礎模型進行訓練,通過對音頻幀的特徵提取和分類,實現填充停頓的檢測。在評估時,將連續的正預測合併為事件,並使用後處理方法提高性能。
📄 許可證
本模型使用 Apache - 2.0 許可證。
📖 引用
暫未提供,敬請期待。
Mms Lid 126
基於Facebook大規模多語言語音項目微調的語言識別模型,支持126種語言的音頻分類
音頻分類
Transformers 支持多種語言

M
facebook
2.1M
26
Wav2vec2 Base Finetuned Speech Commands V0.02
Apache-2.0
該模型是基於facebook/wav2vec2-base在speech_commands數據集上微調的語音命令識別模型,準確率達97.59%。
音頻分類
Transformers

W
0xb1
1.2M
0
Whisper Medium Fleurs Lang Id
Apache-2.0
基於OpenAI Whisper-medium微調的語音語種識別模型,在FLEURS數據集上達到88.05%準確率
音頻分類
Transformers

W
sanchit-gandhi
590.30k
14
Wav2vec2 Large Robust 12 Ft Emotion Msp Dim
該模型通過對Wav2Vec2-Large-Robust進行微調訓練,用於語音情感識別,輸出喚醒度、支配度和效價三個維度的預測值。
音頻分類
Transformers 英語

W
audeering
394.51k
109
Lang Id Voxlingua107 Ecapa
Apache-2.0
基於SpeechBrain框架和ECAPA-TDNN架構的語音語言識別模型,支持107種語言的識別和語音嵌入向量提取。
音頻分類
PyTorch 支持多種語言
L
speechbrain
330.01k
112
Ast Finetuned Audioset 10 10 0.4593
Bsd-3-clause
音頻頻譜圖變換器(AST)是基於AudioSet微調的模型,將音頻轉換為頻譜圖後應用視覺變換器進行音頻分類。
音頻分類
Transformers

A
MIT
308.88k
311
Whisper Small Ft Common Language Id
Apache-2.0
基於openai/whisper-small微調的通用語言識別模型,在評估集上準確率達88.6%
音頻分類
Transformers

W
sanchit-gandhi
256.20k
2
Emotion Recognition Wav2vec2 IEMOCAP
Apache-2.0
使用微調的wav2vec2模型進行語音情感識別,在IEMOCAP數據集上訓練
音頻分類
PyTorch 英語
E
speechbrain
237.65k
131
Ast Finetuned Audioset 14 14 0.443
Bsd-3-clause
基於AudioSet數據集微調的音頻頻譜圖變換器,將音頻轉換為頻譜圖後使用視覺變換器架構處理,在音頻分類任務中表現優異。
音頻分類
Transformers

A
MIT
194.20k
5
Wav2vec2 Large Xlsr 53 Gender Recognition Librispeech
Apache-2.0
基於Librispeech-clean-100數據集微調的性別識別模型,在測試集上F1分數達0.9993
音頻分類
Transformers

W
alefiury
182.33k
42
精選推薦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