Voice Based Stress Recognition
模型概述
該模型通過分析語音特徵實現二進制壓力狀態識別,專為移動端和邊緣設備優化
模型特點
輕量級設計
專為邊緣設備優化的緊湊架構,支持即時推理
知識蒸餾技術
從多模態TeacherNet中提取知識,提升純音頻模型的性能
高效特徵處理
直接處理預計算的Wav2Vec2音頻嵌入,減少計算開銷
模型能力
語音壓力檢測
即時情緒分析
邊緣設備推理
使用案例
健康監測
移動端壓力監測
通過手機錄音即時檢測用戶壓力水平
準確率約76%(StressID測試集)
人機交互
客服系統情緒分析
分析通話語音中的壓力狀態
🚀 基於語音的壓力識別 (StudentNet)
forwarder1121/voice-based-stress-recognition
模型卡片
本項目是一個基於語音的壓力識別模型,通過知識蒸餾技術訓練出輕量級的 StudentNet
,可利用音頻輸入在邊緣設備或移動應用中進行即時壓力檢測。
🚀 快速開始
以下是一個完整的示例,它會動態從 Hub 下載模型代碼(models.py
)和權重,然後通過 Hugging Face Transformers API 運行推理:
from huggingface_hub import hf_hub_download
import importlib.util
from transformers import AutoConfig, AutoModelForAudioClassification
import torch
import torch.nn.functional as F
def main():
repo = "forwarder1121/voice-based-stress-recognition"
# 1) 動態下載並加載自定義的 models.py
code_path = hf_hub_download(repo_id=repo, filename="models.py")
spec = importlib.util.spec_from_file_location("models", code_path)
models = importlib.util.module_from_spec(spec)
spec.loader.exec_module(models)
# 現在我們有了 models.StudentForAudioClassification 和 models.StressConfig
# 2) 通過 Transformers 加載配置和模型(信任遠程代碼)
cfg = AutoConfig.from_pretrained(repo, trust_remote_code=True)
model = AutoModelForAudioClassification.from_pretrained(
repo,
trust_remote_code=True,
torch_dtype="auto"
)
model.eval()
# 3) 準備一個用於測試的虛擬 W2V 嵌入
# 在實際使用中,用你預先計算好的 (1, 512) W2V 張量替換它。
batch_size = 1
DIM_W2V = 512
x_w2v = torch.randn(batch_size, DIM_W2V, dtype=next(model.parameters()).dtype)
# 4) 推理
with torch.no_grad():
outputs = model(x_w2v) # SequenceClassifierOutput
probs = F.softmax(outputs.logits, dim=-1)
print(f"無壓力: {probs[0,0]*100:.1f}%")
print(f"有壓力: {probs[0,1]*100:.1f}%")
if __name__ == "__main__":
main()
✨ 主要特性
- 基於輕量級的
StudentNet
架構,適合在邊緣設備或移動應用中進行即時推理。 - 採用知識蒸餾技術,從多模態的
TeacherNet
中提取知識。 - 僅需音頻輸入,可用於二進制壓力檢測。
📦 安裝指南
此文檔未提及安裝步驟,暫不提供相關內容。
💻 使用示例
基礎用法
上述“快速開始”部分的代碼即為基礎使用示例,展示瞭如何動態下載模型代碼和權重,並進行推理。
高級用法
此文檔未提及高級用法相關代碼示例,暫不提供相關內容。
📚 詳細文檔
模型詳情
- 模型名稱:基於語音的壓力識別 (StudentNet)
- 倉庫地址:https://huggingface.co/forwarder1121/voice-based-stress-recognition
- 許可證:MIT
- 庫版本:PyTorch ≥1.7
模型架構:
一個輕量級的基於 MLP 的 StudentNet
,從在 StressID 數據集上訓練的多模態 TeacherNet
中蒸餾而來。
-
輸入:512 維音頻嵌入
-
嵌入規格:
此模型期望輸入由 fairseq 的 Wav2Vec2(基礎)模型生成的 512 維嵌入。
-
層結構:
- Linear(512→128) → ReLU → Dropout(0.3) → LayerNorm
- Dropout(0.3) → Linear(128→128) → ReLU → Dropout(0.3)
- Linear(128→2) → Softmax
輸出: 二分類壓力概率:
- 索引 0 → “無壓力”
- 索引 1 → “有壓力”
預期用途與限制
預期用途:
- 僅使用音頻輸入,在邊緣設備或移動應用中進行即時二進制壓力檢測。
- 在僅提供預計算音頻嵌入的情況下進行輕量級推理。
限制:
- 不適用於多類壓力強度預測。
- 在 StressID 數據上訓練,在其他語言或錄音設置下性能可能下降。
- 假設音頻清晰且 W2V 嵌入準確,高背景噪音可能會降低準確性。
訓練數據
- 數據集:StressID
- 收集的模態:心電圖(ECG)、呼吸率(RR)、皮膚電活動(EDA)、面部/視頻、語音
- 標籤:自我評估,範圍為 0 - 10,轉換為二進制壓力(<5 為 0,≥5 為 1)
- 劃分:
- 僅使用
train
劃分來訓練TeacherNet
;test
劃分用於最終評估。 - 確保沒有受試者的任務出現在多個劃分中。
- 僅使用
訓練過程
- TeacherNet:使用交叉熵損失在所有四種模態(ECG、RR、EDA、視頻)上進行訓練。
- StudentNet:使用音頻嵌入和蒸餾損失進行訓練:
loss = CE(student_logits, labels) \ + α * MSE(student_features, teacher_features)
- α ∈ {0, 1e−7, 1e−6},α = 1e−6 時性能最佳。
- 優化器:AdamW,學習率 lr = 1e−4,批量大小 batch_size = 8,訓練輪數 epochs = 100,早停耐心值 early stopping patience = 100。
評估
- TeacherNet(多模態):
- 準確率 ≈ 0.82,宏 F1 值 ≈ 0.80,UAR ≈ 0.79
- StudentNet(α = 0):
- 準確率 ≈ 0.65,宏 F1 值 ≈ 0.62,UAR ≈ 0.61
- StudentNet(α = 1e−6):
- 準確率 ≈ 0.76,宏 F1 值 ≈ 0.74,UAR ≈ 0.73
⚡️ Wav2Vec2 嵌入說明
- 此模型的音頻輸入應使用 fairseq 的 Wav2Vec2(基礎)模型(
torchaudio.pipelines.WAV2VEC2_BASE
)轉換為 512 維嵌入。 - 訓練期間用於嵌入提取的確切模型權重作為
wav2vec_large.pt
提供在本倉庫的根目錄中。 - 要對原始音頻使用此模型進行推理:
- 使用 torchaudio/fairseq 加載
wav2vec_large.pt
。 - 為你的輸入音頻生成 512 維音頻嵌入。
- 將此嵌入傳遞給
StudentNet
。
- 使用 torchaudio/fairseq 加載
引用
如果你在研究中使用此模型,請引用:
@inproceedings{your2025voice,
title={Lightweight Audio-Embedding-Based Stress Recognition via Multimodal Knowledge Distillation},
author={Your Name and …},
booktitle={Conference/Journal},
year={2025}
}
聯繫信息
如有任何問題,請通過 forwarder1121@huggingface.co 聯繫我們,也可以自由開啟一個 issue 或討論。
🔧 技術細節
此文檔未提及足夠詳細的技術實現細節(超過 50 字),暫不提供相關內容。
📄 許可證
本項目使用 MIT 許可證。
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