🚀 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 许可证。