🚀 Phi-4-multimodal-instruct-commonvoice-zh-tw
本模型是基於Common Voice 19.0 臺灣普通話數據集對 microsoft/Phi-4-multimodal-instruct 進行微調後的版本。它可用於臺灣普通話的自動語音識別,為相關語音處理任務提供了有效的解決方案。
🔍 模型信息
屬性 |
詳情 |
庫名稱 |
transformers |
語言 |
中文 |
許可證 |
MIT |
基礎模型 |
microsoft/Phi-4-multimodal-instruct |
標籤 |
自動語音識別、音頻、語音、由訓練器生成 |
數據集 |
JacobLinCool/common_voice_19_0_zh-TW |
評估指標 |
詞錯誤率(WER)、字符錯誤率(CER) |
📊 模型表現
任務類型 |
數據集 |
WER |
CER |
自動語音識別 |
JacobLinCool/common_voice_19_0_zh-TW |
31.18% |
6.67% |
🚀 快速開始
Phi-4-multimodal-instruct-commonvoice-zh-tw 是一個針對臺灣普通話(zh-TW)自動語音識別(ASR)進行微調的多模態語言模型。基礎模型是微軟的 Phi-4-multimodal-instruct,它在語音轉錄任務上進行了進一步訓練。該模型接受音頻輸入並生成繁體中文文本轉錄,特別針對臺灣普通話的語音模式和詞彙進行了優化。
✨ 主要特性
適用場景
- 將臺灣普通話口語轉錄為文本。
- 為臺灣普通話內容實現自動字幕。
- 支持臺灣普通話的語音轉文本應用。
侷限性
- 性能可能會受到背景噪音、說話速度或口音的影響。
- 模型在清晰音頻輸入時表現最佳。
- 對於專業術語或特定領域的詞彙,識別準確率可能較低。
📦 安裝指南
文檔中未提及具體安裝步驟,可參考 transformers
庫的官方安裝指南進行安裝。
💻 使用示例
基礎用法
import torch
from transformers import AutoProcessor, AutoModelForCausalLM
import librosa
AUDIO_PATH = "test.wav"
MODEL = "JacobLinCool/Phi-4-multimodal-instruct-commonvoice-zh-tw"
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
USE_FA = True
processor = AutoProcessor.from_pretrained(MODEL, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
MODEL,
torch_dtype=torch.bfloat16 if USE_FA else torch.float32,
_attn_implementation="flash_attention_2" if USE_FA else "sdpa",
trust_remote_code=True,
).to(DEVICE)
audio, sr = librosa.load(AUDIO_PATH, sr=16000)
user_message = {
"role": "user",
"content": "<|audio_1|> Transcribe the audio clip into text.",
}
prompt = processor.tokenizer.apply_chat_template(
[user_message], tokenize=False, add_generation_prompt=True
)
inputs = processor(text=prompt, audios=[(audio, sr)], return_tensors="pt")
inputs = {k: v.to(model.device) if hasattr(v, "to") else v for k, v in inputs.items()}
with torch.no_grad():
generated_ids = model.generate(
**inputs,
eos_token_id=processor.tokenizer.eos_token_id,
max_new_tokens=64,
do_sample=False,
)
transcription = processor.decode(
generated_ids[0, inputs["input_ids"].shape[1] :],
skip_special_tokens=True,
clean_up_tokenization_spaces=False,
)
print(transcription)
📚 詳細文檔
訓練和評估數據
模型在 Common Voice 19.0 臺灣普通話數據集上進行了微調。Common Voice 是一個眾包語音數據集,包含志願者錄製的各種語言句子。評估在同一數據集的測試分割上進行,該測試集包含 5,013 個樣本。
訓練過程
模型使用 LoRA 適配器進行訓練,重點關注基礎模型的語音識別組件,這樣可以在保留底層 Phi-4 模型通用能力的同時進行高效微調。
提示格式
該模型遵循原論文的提示模板。對於語音識別任務,音頻輸入與簡單指令一起提供:
<|user|>
<|audio_1|> Transcribe the audio clip into text.
<|assistant|>
[Transcription output in Traditional Chinese]
<|end|>
訓練超參數
訓練過程中使用了以下超參數:
- 學習率:4e-05
- 訓練批次大小:4
- 評估批次大小:8
- 隨機種子:42
- 梯度累積步數:32
- 總訓練批次大小:128
- 優化器:使用 OptimizerNames.ADAMW_TORCH,β1=0.9,β2=0.95,ε=1e-07,無額外優化器參數
- 學習率調度器類型:線性
- 學習率調度器熱身步數:50
- 訓練輪數:2
訓練結果
模型在測試集上取得了以下性能指標:
- 詞錯誤率(WER):31.18%
- 字符錯誤率(CER):6.67%
- 評估樣本數量:5,013
框架版本
- Transformers 4.49.0
- Pytorch 2.4.1+cu124
- Datasets 3.3.2
- Tokenizers 0.21.1
📄 許可證
本模型使用 MIT 許可證。