library_name: transformers
language:
- ht
license: apache-2.0
base_model: openai/whisper-medium
tags:
- generated_from_trainer
datasets:
- jsbeaudry/creole-text-voice
model-index:
- name: whisper small creole oswald
results: []
whisper-medium-creole-oswald
该模型是基于openai/whisper-medium在creole-text-voice数据集上微调的版本。
主要目标是构建准确率达99%的海地克里奥尔语语音转文字模型,能够转录不同口音、地域和说话风格的海地语音。
🧠 模型描述
whisper-medium-creole-oswald专为海地克里奥尔语自动语音识别(ASR)优化。它在OpenAI的Whisper架构基础上,通过迁移学习和高质量海地克里奥尔语音频-文本配对数据集的微调实现适配。
- 架构: Whisper Medium
- 微调目标: 海地克里奥尔语(Kreyòl Ayisyen)
- 词汇表: 基于拉丁字母(克里奥尔语正字法),保留变音符号和语言细节
- 语音类型: 采用女性合成语音训练
- 采样率: 16kHz
- 训练目标: 最大化日常克里奥尔语语音的转录准确率
✅ 使用场景
-
海地克里奥尔语语音转录场景:
- 语音备忘录
- 广播节目
- 访谈录音
- 公开演讲
- 教育内容
- 合成语音
-
适用于克里奥尔语语音交互场景:
- 语音助手
- 转录服务
- 语言学习工具
- 聊天机器人及无障碍平台
⚠️ 局限性
- 可能在以下情况表现欠佳:
- 严重语码混合(克里奥尔语+法语/英语混杂)
- 极低质量音频(如强背景噪声)
- 某些方言的极快语速或含糊发音
- 长时音频文件
- 未针对低资源设备实时转录优化
- 基于特定数据集微调——对完全未见过的语音类型或罕见口音泛化能力可能有限
📊 训练与评估数据
模型训练使用creole-text-voice数据集,包含:
- 5小时海地克里奥尔语合成语音
- 遵循标准克里奥尔语正字法标注的时间对齐文本转录
后续数据扩展来源:
- 公共广播和播客档案
- 开放访谈及口语音频
- 社区提交的语音样本
预处理步骤:
- 语音活动检测(VAD)
- 噪声过滤与音频标准化
- 人工转录校对
模型使用脚本
from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq
import librosa
import numpy as np
import torch
processor = AutoProcessor.from_pretrained("jsbeaudry/whisper-medium-oswald")
model = AutoModelForSpeechSeq2Seq.from_pretrained("jsbeaudry/whisper-medium-oswald")
def transcript (audio_file_path):
speech_array, sampling_rate = librosa.load(audio_file_path, sr=16000)
speech_array_pt = torch.from_numpy(speech_array).unsqueeze(0)
input_features = processor(speech_array, sampling_rate=sampling_rate, return_tensors="pt").input_features
predicted_ids = model.generate(input_features)
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
return transcription
text = transcript("/音频路径")
print(text)
基于gradio的交互界面
from transformers import pipeline
import gradio as gr
print("正在加载模型...")
pipe = pipeline(model="jsbeaudry/whisper-medium-oswald")
print("模型加载成功")
def transcribe(audio_path):
if audio_path is None:
return "请先上传或录制音频文件"
result = pipe(audio_path)
return result["text"]
def create_interface():
with gr.Blocks(title="Whisper Medium - 海地克里奥尔语") as demo:
gr.Markdown("# 🎙️ Whisper Medium 克里奥尔语ASR")
gr.Markdown(
"上传海地克里奥尔语音频或通过麦克风录制,"
"点击**转录**按钮查看结果"
)
with gr.Row():
with gr.Column():
audio_input = gr.Audio(source="upload", type="filepath", label="🎧 上传音频")
audio_input2 = gr.Audio(source="microphone", type="filepath", label="🎤 录制音频")
with gr.Column():
transcribe_button = gr.Button("🔍 转录")
output_text = gr.Textbox(label="📝 转录文本", lines=4)
transcribe_button.click(fn=transcribe, inputs=audio_input, outputs=output_text)
transcribe_button.click(fn=transcribe, inputs=audio_input2, outputs=output_text)
return demo
if __name__ == "__main__":
interface = create_interface()
interface.launch()
训练超参数
训练使用的超参数配置:
- 学习率: 1e-05
- 训练批大小: 16
- 评估批大小: 8
- 随机种子: 42
- 优化器: 使用OptimizerNames.ADAMW_TORCH,betas=(0.9,0.999),epsilon=1e-08,无额外参数
- 学习率调度器类型: linear
- 学习率预热步数: 500
- 训练轮次: 5
- 混合精度训练: Native AMP
框架版本
- Transformers 4.46.1
- Pytorch 2.6.0+cu124
- Datasets 3.5.0
- Tokenizers 0.20.3