Whisper Hindi2Hinglish Swift
基於Whisper架構優化的印地語-印地英語混合語音識別模型,專為印度口音和噪聲環境優化
下載量 496
發布時間 : 1/7/2025
模型概述
該模型是Whisper-base的微調版本,專注於將印地語語音轉錄為口語化的印地英語混合文本,適用於印度地區的語音識別場景
模型特點
印地英語混合語言支持
新增將音頻轉錄為口語化印地英語混合文本的能力,減少語法錯誤概率
噪聲環境優化
針對印度常見背景噪聲環境特別優化,提升嘈雜場景下的識別準確率
幻覺抑制
通過訓練技術最小化轉錄幻覺,提升輸出文本的準確性
動態層凍結技術
採用創新的訓練技術實現快速收斂和高效微調
模型能力
印地語語音識別
印地英語混合文本生成
噪聲環境下的語音轉錄
長音頻處理
使用案例
語音轉寫服務
客服電話轉錄
將印度地區的客服通話內容轉錄為文字記錄
在噪聲環境下保持較高識別準確率
會議記錄
自動生成印地英語混合的會議紀要
支持多人對話場景
語音助手
本地化語音指令識別
為印度地區用戶提供更準確的語音指令識別
支持印地英語混合口語表達
🚀 Whisper-Hindi2Hinglish-Swift
Whisper-Hindi2Hinglish-Swift 是一款基於 Whisper 架構的自動語音識別模型,它能夠將音頻轉錄為 Hinglish 語言,減少語法錯誤的可能性,同時還能有效減少轉錄幻覺,提高識別準確性。
🚀 快速開始
本模型可通過 transformers
庫或 openai-whisper
模塊使用,具體使用方法請參考 使用示例 部分。
✨ 主要特性
- 支持 Hinglish 語言:能夠將音頻轉錄為 Hinglish 語言,減少語法錯誤的可能性。
- 基於 Whisper 架構:基於 Whisper 架構,便於與
transformers
包集成使用。 - 減少轉錄幻覺:最大程度減少轉錄幻覺,提高識別準確性。
- 性能提升:與預訓練模型相比,在基準測試數據集上的平均性能提升約 57%。
📦 安裝指南
使用 transformers
庫
pip install --upgrade transformers
使用 openai-whisper
模塊
pip install -U openai-whisper tqdm
💻 使用示例
基礎用法
使用 transformers
庫進行音頻轉錄:
import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
from datasets import load_dataset
# Set device (GPU if available, otherwise CPU) and precision
device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
# Specify the pre-trained model ID
model_id = "Oriserve/Whisper-Hindi2Hinglish-Swift"
# Load the speech-to-text model with specified configurations
model = AutoModelForSpeechSeq2Seq.from_pretrained(
model_id,
torch_dtype=torch_dtype, # Use appropriate precision (float16 for GPU, float32 for CPU)
low_cpu_mem_usage=True, # Optimize memory usage during loading
use_safetensors=True # Use safetensors format for better security
)
model.to(device) # Move model to specified device
# Load the processor for audio preprocessing and tokenization
processor = AutoProcessor.from_pretrained(model_id)
# Create speech recognition pipeline
pipe = pipeline(
"automatic-speech-recognition",
model=model,
tokenizer=processor.tokenizer,
feature_extractor=processor.feature_extractor,
torch_dtype=torch_dtype,
device=device,
generate_kwargs={
"task": "transcribe", # Set task to transcription
"language": "en" # Specify English language
}
)
# Process audio file and print transcription
sample = "sample.wav" # Input audio file path
result = pipe(sample) # Run inference
print(result["text"]) # Print transcribed text
高級用法
使用 openai-whisper
模塊進行音頻轉錄:
import torch
from transformers import AutoModelForSpeechSeq2Seq
import re
from tqdm import tqdm
from collections import OrderedDict
import json
# Load parameter name mapping from HF to OpenAI format
with open('convert_hf2openai.json', 'r') as f:
reverse_translation = json.load(f)
reverse_translation = OrderedDict(reverse_translation)
def save_model(model, save_path):
def reverse_translate(current_param):
# Convert parameter names using regex patterns
for pattern, repl in reverse_translation.items():
if re.match(pattern, current_param):
return re.sub(pattern, repl, current_param)
# Extract model dimensions from config
config = model.config
model_dims = {
"n_mels": config.num_mel_bins, # Number of mel spectrogram bins
"n_vocab": config.vocab_size, # Vocabulary size
"n_audio_ctx": config.max_source_positions, # Max audio context length
"n_audio_state": config.d_model, # Audio encoder state dimension
"n_audio_head": config.encoder_attention_heads, # Audio encoder attention heads
"n_audio_layer": config.encoder_layers, # Number of audio encoder layers
"n_text_ctx": config.max_target_positions, # Max text context length
"n_text_state": config.d_model, # Text decoder state dimension
"n_text_head": config.decoder_attention_heads, # Text decoder attention heads
"n_text_layer": config.decoder_layers, # Number of text decoder layers
}
# Convert model state dict to Whisper format
original_model_state_dict = model.state_dict()
new_state_dict = {}
for key, value in tqdm(original_model_state_dict.items()):
key = key.replace("model.", "") # Remove 'model.' prefix
new_key = reverse_translate(key) # Convert parameter names
if new_key is not None:
new_state_dict[new_key] = value
# Create final model dictionary
pytorch_model = {"dims": model_dims, "model_state_dict": new_state_dict}
# Save converted model
torch.save(pytorch_model, save_path)
# Load Hugging Face model
model_id = "Oriserve/Whisper-Hindi2Hinglish-Swift"
model = AutoModelForSpeechSeq2Seq.from_pretrained(
model_id,
low_cpu_mem_usage=True, # Optimize memory usage
use_safetensors=True # Use safetensors format
)
# Convert and save model
model_save_path = "Whisper-Hindi2Hinglish-Swift.pt"
save_model(model,model_save_path)
import whisper
# Load converted model with Whisper and transcribe
model = whisper.load_model("Whisper-Hindi2Hinglish-Swift.pt")
result = model.transcribe("sample.wav")
print(result["text"])
📚 詳細文檔
訓練數據
- 時長:共使用了約 550 小時的帶有印度口音的嘈雜印地語數據對模型進行微調。
- 數據收集:由於缺乏現成的適用於自動語音識別的 Hinglish 數據集,因此使用了專門策劃的專有數據集。
- 數據標註:使用 SOTA 模型對數據進行標註,並通過人工干預改進轉錄結果。
- 數據質量:由於模型的預期使用場景是在背景噪音豐富的印度環境中,因此重點收集了嘈雜的數據。
- 數據處理:確保音頻被分割成長度小於 30 秒的片段,並且每個片段中最多有 2 個說話者。為了不改變源數據的質量,未進行進一步的處理步驟。
微調過程
- 自定義訓練器架構:編寫了自定義訓練器,以確保高效的有監督微調,並使用自定義回調函數在訓練過程中提供更高的可觀測性。
- 自定義動態層凍結:通過使用預訓練模型對部分訓練數據進行推理,確定模型中最活躍的層。在訓練過程中,保持這些層不凍結,而其他層則保持凍結狀態,從而實現更快的收斂和高效的微調。
- 集成 DeepSpeed:使用 DeepSpeed 加速和優化訓練過程。
🔧 技術細節
本模型基於 Whisper 架構,使用了約 550 小時的帶有印度口音的嘈雜印地語數據進行微調。在微調過程中,採用了自定義訓練器架構、自定義動態層凍結和集成 DeepSpeed 等技術,以提高模型的性能和訓練效率。
📄 許可證
本模型採用 Apache-2.0 許可證。
性能概述
定性性能概述
音頻 | Whisper Base | Whisper-Hindi2Hinglish-Swift |
---|---|---|
وہاں بس دن میں کتنی بار چلتی ہے | vah bas din mein kitni baar chalti hai? | |
سلمان کی ایمیت سے پراوہویت ہوتے ہیں اس کمپنی کے سیر بھاؤ جانے کیسے | salmaan ki image se prabhaavit hote hain is company ke share bhaav jaane kaise? | |
تو لویا تو لویا | vah roya aur aur roya. | |
حلمت نہ پیننے سے بھارت میں ہر گنٹے ہوتی ہے چار لوگوں کی موت | helmet na pahnne se bhaarat mein har gante hoti hai chaar logon ki maut. | |
اوستہ مجھے چٹھیکہ جواب نہ دینے کے لیٹانٹہ | usne mujhe chithi ka javaab na dene ke lie daanta. | |
پرانا شاہ دیواروں سے گیرا ہوا ہے | puraana shahar divaaron se ghera hua hai. |
定量性能概述
⚠️ 重要提示
以下 WER 分數是本模型和原始 Whisper 模型生成的 Hinglish 文本的分數。若要查看本模型與其他 SOTA 模型在現實場景中的性能對比,請訪問 語音轉文本競技場。
數據集 | Whisper Base | Whisper-Hindi2Hinglish-Swift |
---|---|---|
Common-Voice | 106.7936 | 38.6549 |
FLEURS | 104.2783 | 35.0888 |
Indic-Voices | 110.8399 | 65.2147 |
其他信息
本模型是 Oriserve 訓練的基於 Transformer 的自動語音識別模型家族的一員。若要將本模型與同家族的其他模型或其他 SOTA 模型進行比較,請訪問 語音轉文本競技場。如需瞭解更多關於我們其他模型的信息,或有關於 AI 語音代理的其他問題,請通過電子郵件 ai-team@oriserve.com 聯繫我們。
Voice Activity Detection
MIT
基於pyannote.audio 2.1版本的語音活動檢測模型,用於識別音頻中的語音活動時間段
語音識別
V
pyannote
7.7M
181
Wav2vec2 Large Xlsr 53 Portuguese
Apache-2.0
這是一個針對葡萄牙語語音識別任務微調的XLSR-53大模型,基於Common Voice 6.1數據集訓練,支持葡萄牙語語音轉文本。
語音識別 其他
W
jonatasgrosman
4.9M
32
Whisper Large V3
Apache-2.0
Whisper是由OpenAI提出的先進自動語音識別(ASR)和語音翻譯模型,在超過500萬小時的標註數據上訓練,具有強大的跨數據集和跨領域泛化能力。
語音識別 支持多種語言
W
openai
4.6M
4,321
Whisper Large V3 Turbo
MIT
Whisper是由OpenAI開發的最先進的自動語音識別(ASR)和語音翻譯模型,經過超過500萬小時標記數據的訓練,在零樣本設置下展現出強大的泛化能力。
語音識別
Transformers 支持多種語言

W
openai
4.0M
2,317
Wav2vec2 Large Xlsr 53 Russian
Apache-2.0
基於facebook/wav2vec2-large-xlsr-53模型微調的俄語語音識別模型,支持16kHz採樣率的語音輸入
語音識別 其他
W
jonatasgrosman
3.9M
54
Wav2vec2 Large Xlsr 53 Chinese Zh Cn
Apache-2.0
基於facebook/wav2vec2-large-xlsr-53模型微調的中文語音識別模型,支持16kHz採樣率的語音輸入。
語音識別 中文
W
jonatasgrosman
3.8M
110
Wav2vec2 Large Xlsr 53 Dutch
Apache-2.0
基於facebook/wav2vec2-large-xlsr-53微調的荷蘭語語音識別模型,在Common Voice和CSS10數據集上訓練,支持16kHz音頻輸入。
語音識別 其他
W
jonatasgrosman
3.0M
12
Wav2vec2 Large Xlsr 53 Japanese
Apache-2.0
基於facebook/wav2vec2-large-xlsr-53模型微調的日語語音識別模型,支持16kHz採樣率的語音輸入
語音識別 日語
W
jonatasgrosman
2.9M
33
Mms 300m 1130 Forced Aligner
基於Hugging Face預訓練模型的文本與音頻強制對齊工具,支持多種語言,內存效率高
語音識別
Transformers 支持多種語言

M
MahmoudAshraf
2.5M
50
Wav2vec2 Large Xlsr 53 Arabic
Apache-2.0
基於facebook/wav2vec2-large-xlsr-53微調的阿拉伯語語音識別模型,在Common Voice和阿拉伯語語音語料庫上訓練
語音識別 阿拉伯語
W
jonatasgrosman
2.3M
37
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98