🚀 波斯語微調版Whisper語音識別模型
本項目的模型是基於openai/whisper-tiny
在common_voice_11_0
數據集上微調得到的語音識別模型,可用於自動語音識別任務,在評估集上有較好的表現。
🚀 快速開始
以下是在Colab中使用該模型的步驟:
!pip install torch torchaudio transformers pydub google-colab
import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
from pydub import AudioSegment
import os
from google.colab import files
model_id = "hackergeek98/whisper-fa-tinyyy"
device = "cuda" if torch.cuda.is_available() else "cpu"
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id).to(device)
processor = AutoProcessor.from_pretrained(model_id)
whisper_pipe = pipeline(
"automatic-speech-recognition", model=model, tokenizer=processor.tokenizer, feature_extractor=processor.feature_extractor, device=0 if torch.cuda.is_available() else -1
)
def convert_to_wav(audio_path):
audio = AudioSegment.from_file(audio_path)
wav_path = "converted_audio.wav"
audio.export(wav_path, format="wav")
return wav_path
def split_audio(audio_path, chunk_length_ms=30000):
audio = AudioSegment.from_wav(audio_path)
chunks = [audio[i:i+chunk_length_ms] for i in range(0, len(audio), chunk_length_ms)]
chunk_paths = []
for i, chunk in enumerate(chunks):
chunk_path = f"chunk_{i}.wav"
chunk.export(chunk_path, format="wav")
chunk_paths.append(chunk_path)
return chunk_paths
def transcribe_long_audio(audio_path):
wav_path = convert_to_wav(audio_path)
chunk_paths = split_audio(wav_path)
transcription = ""
for chunk in chunk_paths:
result = whisper_pipe(chunk)
transcription += result["text"] + "\n"
os.remove(chunk)
os.remove(wav_path)
text_path = "transcription.txt"
with open(text_path, "w") as f:
f.write(transcription)
return text_path
uploaded = files.upload()
audio_file = list(uploaded.keys())[0]
transcription_file = transcribe_long_audio(audio_file)
files.download(transcription_file)
✨ 主要特性
- 基於
openai/whisper-tiny
模型微調,在common_voice_11_0
數據集上進行訓練。
- 可以在Colab環境中方便地使用,實現自動語音識別功能。
📦 安裝指南
在Colab中運行以下命令安裝所需的包:
!pip install torch torchaudio transformers pydub google-colab
📚 詳細文檔
模型描述
本模型是openai/whisper-tiny在common_voice_11_0
數據集上的微調版本。在評估集上的損失為 0.0246。
預期用途與限制
文檔未提供相關信息。
訓練和評估數據
文檔未提供相關信息。
訓練過程
訓練超參數
訓練過程中使用了以下超參數:
- 學習率:0.0001
- 訓練批次大小:8
- 評估批次大小:8
- 隨機種子:42
- 梯度累積步數:4
- 總訓練批次大小:32
- 優化器:使用
OptimizerNames.ADAMW_TORCH
,betas=(0.9, 0.999)
,epsilon=1e-08
,無額外優化器參數
- 學習率調度器類型:線性
- 學習率調度器熱身步數:500
- 訓練輪數:1
- 混合精度訓練:原生AMP
訓練結果
訓練損失 |
輪數 |
步數 |
驗證損失 |
0.0186 |
0.9998 |
2357 |
0.0246 |
框架版本
- Transformers 4.49.0
- Pytorch 2.6.0+cu124
- Datasets 3.4.1
- Tokenizers 0.21.1
📄 許可證
本模型使用 MIT 許可證。
📋 模型信息表格
屬性 |
詳情 |
模型類型 |
基於openai/whisper-tiny 微調的自動語音識別模型 |
訓練數據 |
common_voice_11_0 數據集 |
許可證 |
MIT |
評估指標 |
字錯誤率(WER) |
任務類型 |
自動語音識別 |