许可证: MIT
语言:
- 英语
基础模型:
- microsoft/Phi-4-multimodal-instruct
任务标签: 自动语音识别
库名称: transformers
模型索引:
- 名称: Phi-4-mm-inst-asr-singlish
结果:
- 任务:
类型: 自动语音识别
数据集:
名称: SASRBench-v1
类型: mjwong/SASRBench-v1
拆分: 测试集
指标:
- 名称: 词错误率(WER)
类型: WER
值: 13.16
- 名称: Phi-4-mm-inst-asr-singlish
结果:
- 任务:
类型: 自动语音识别
数据集:
名称: AMI
类型: edinburghcstr/ami
子集: 头戴式麦克风(IHM)
拆分: 测试集
指标:
- 名称: 词错误率(WER)
类型: WER
值: 20.23
- 名称: Phi-4-mm-inst-asr-singlish
结果:
- 任务:
类型: 自动语音识别
数据集:
名称: GigaSpeech
类型: speechcolab/gigaspeech
子集: 测试集
拆分: 测试集
指标:
- 名称: 词错误率(WER)
类型: WER
值: 10.34
标签:
- 自然语言处理
- 代码
- 音频
- 自动语音识别
- 语音摘要
- 语音翻译
- 视觉问答
- phi-4多模态
- phi
- phi-4迷你版
Phi-4多模态指令-新加坡英语语音识别模型
Phi-4多模态指令-新加坡英语语音识别模型(Phi-4-mm-inst-asr-singlish)致力于解决微软Phi-4等通用大语言模型的关键局限:对区域方言的表征不足。新加坡英语(Singlish)的语码转换和独特韵律常使通用模型表现不佳。
Phi-4通过海量预训练已掌握复杂语言结构,相比Whisper等小型ASR系统具有更强的泛化潜力。本模型基于Phi-4多模态指令模型进行针对性适配,推动实现"听-理解-自然响应"的统一模型愿景,为语音优先的智能体奠定基础——这类智能体能在单一上下文框架中无缝完成推理、翻译和代码生成。
模型详情
技术说明
本研究采用监督微调(SFT)方法,使用66.9k组音频-文本配对数据对Phi-4-mm-inst进行新加坡英语ASR适配。数据源自新加坡资讯通信媒体发展局(IMDA)国家语音语料库第三部分"同室环境近讲麦克风"录音。
我们仅解冻audio_embed
模块的编码器和音频投影层进行训练,保持其他参数固定。每个音频片段与其真实文本转录配对,并在转录末尾添加专用结束标记(<|end|><|endoftext|>
)。通过优化标记序列的标准交叉熵损失,模型既学习将音频特征转为文本,也学会在转录结束时生成结束标记。这种精准的数据驱动方法将计算资源集中于适配模型对新加坡英语独特语音、韵律和语码转换特征的处理能力,而不改变其核心语言理解。
国家语音语料库第三部分包含约1,000小时1,000名本地英语使用者的对话录音,涵盖日常话题和游戏互动对话,录音环境包括:
- 同室环境:使用近讲麦克风和边界麦克风
- 分室环境:使用立式麦克风和电话(IVR)单独录制
内部数据集音频片段提取标准:
- 最小词数: 10词
确保足够语言上下文帮助模型理解新加坡英语指令
- 最大时长: 20秒
平衡转录准确性与计算复杂度
- 采样率: 统一降采样至16kHz
完整实验细节将后续补充。
微调参数
使用单张A100-80GB GPU进行微调。
训练超参数
- 学习率: 0.0001
- 训练批次大小: 8
- 评估批次大小: 8
- 随机种子: 42
- 优化器:
- 类型: ADAMW_TORCH
- Beta参数: (0.9, 0.99)
- Epsilon: 1e-07
- 学习率调度器: 余弦退火
- 预热比例: 0.1
- 训练轮次: 1
基准测试表现
评估数据集:
性能对比
实验发现
基础模型vs微调模型
基础模型在生成固定数量标记时常会超越音频实际长度继续生成。微调模型通过关联结束标记,能可靠地在转录完成后生成终止序列,避免冗余输出。
长音频处理
输出长度受max_new_tokens
限制。对于短音频,模型能准确在结束标记处停止;对于超长音频,则生成截断但结构良好的转录。
结论
微调使Phi-4在新加坡英语上的词错误率从33%降至13.16%,略优于我们最好的Whisper-large-v3-turbo-singlish微调模型。Phi-4的真正价值在于将接近SOTA的ASR能力与完整生成式LLM结合,为新加坡英语用户提供能"听-理解-响应"的统一模型,为语音优先的智能体开发铺平道路。
免责声明
尽管本模型已针对新加坡英语优化,用户仍可能遇到识别错误、偏见或意外输出,特别是在复杂音频条件或非标准变体情况下。使用风险自负,开发者不承担因使用导致的任何后果。敏感场景部署前请验证结果。
使用指南
首次使用需安装额外库:
!pip install backoff
!sudo apt-get install -y cmake ninja-build
!pip install wheel
加载模型:
import torch
import soundfile
from transformers import AutoModelForCausalLM, AutoProcessor, GenerationConfig
model_path = "mjwong/Phi-4-mm-inst-asr-singlish"
processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_path,
trust_remote_code=True,
torch_dtype='auto',
_attn_implementation='flash_attention_2',
).cuda()
转录示例(需下载示例音频):
audio = soundfile.read('./ignite.wav')
inputs = processor(text=prompt, audios=[audio], return_tensors='pt').to('cuda:0')
generate_ids = model.generate(**inputs, max_new_tokens=1200)
response = processor.batch_decode(generate_ids, skip_special_tokens=True)[0]
print(response)
联系方式
咨询请联系:mingjwong@hotmail.com