--- license: apache-2.0 language: - en base_model: - openai/whisper-large-v3 metrics: - accuracy --- # Whisper Model for Incorrect English Phrases ## Overview This fine-tuned version of OpenAI’s Whisper model is specifically trained to handle incorrect English phrases. It is designed to transcribe and process non-standard or erroneous English input, including mispronunciations, grammatical mistakes, slang, and non-native speaker errors. This model helps improve transcription accuracy in scenarios where speakers use incorrect or informal English, making it useful in language learning, transcription of casual conversations, or analyzing spoken communication from non-native English speakers. ## Training procedure ### Training hyperparameters The following hyperparameters were used during training: - learning_rate: 1e-05 - train_batch_size: 8 - eval_batch_size: 8 - seed: 42 - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 - lr_scheduler_type: linear - lr_scheduler_warmup_steps: 50 - training_steps: 100000 - mixed_precision_training: Native AMP ### Training results | Training Loss | Epoch | Step | Validation Loss | Wer | |:-------------:|:------:|:----:|:---------------:|:-------:| | 0.9094 | 0.1270 | 500 | 0.6347 | 24.3686 | | 0.5517 | 0.2541 | 1000 | 0.4835 | 18.0769 | | 0.5364 | 0.3811 | 1500 | 0.4330 | 15.1149 | | 0.5503 | 0.5081 | 2000 | 0.4113 | 13.6524 | | 0.6521 | 0.6352 | 2500 | 0.3987 | 13.5897 | | 0.6044 | 0.7622 | 3000 | 0.3912 | 13.0538 | | 0.5487 | 0.8892 | 3500 | 0.3835 | 12.6119 | | 0.5297 | 1.0163 | 4000 | 0.3791 | 12.4408 | | 0.46 | 1.1433 | 4500 | 0.3751 | 12.3525 | | 0.4947 | 1.2703 | 5000 | 0.3721 | 12.1415 | | 0.524 | 1.3974 | 5500 | 0.3682 | 13.0139 | | 0.4743 | 1.5244 | 6000 | 0.3649 | 13.3388 | | 0.5338 | 1.6514 | 6500 | 0.3621 | 12.9397 | | 0.5162 | 1.7785 | 7000 | 0.3597 | 13.3246 | | 0.5004 | 1.9055 | 7500 | 0.3590 | 12.3268 | ## Usage Guide This project was executed on an Ubuntu 22.04.3 system running Linux kernel 6.8.0-40-generic. Whisper large-v3 is supported in Hugging Face Transformers. To run the model, first install the Transformers library. For this example, we'll also install Hugging Face Datasets to load toy audio dataset from the Hugging Face Hub, and Hugging Face Accelerate to reduce the model loading time: ```bash pip install --upgrade pip pip install --upgrade transformers datasets[audio] accelerate ``` The model can be used with the pipeline class to transcribe audios of arbitrary length: ```python import torch from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline from datasets import load_dataset device = "cuda:0" if torch.cuda.is_available() else "cpu" torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32 def download_adapter_model(): model_name = "whisper-v3-LoRA-en_students" print(f"Downloading the adapter model '{model_name}' from the Hugging Face Hub.", flush=True) # Define the path for the directory local_directory = os.path.expanduser("~/.cache/huggingface/hub") # Check if the directory exists if not os.path.exists(local_directory): # If it doesn't exist, create it os.makedirs(local_directory) print(f"Directory '{local_directory}' created.", flush=True) else: print(f"Directory '{local_directory}' already exists.", flush=True) repo_id = f"Transducens/{model_name}" repo_adapter_dir = f"{model_name}/checkpoint-5000/adapter_model" repo_filename_config = f"{repo_adapter_dir}/adapter_config.json" repo_filename_tensors = f"{repo_adapter_dir}/adapter_model.safetensors" adapter_config = hf_hub_download(repo_id=repo_id, filename=repo_filename_config, local_dir=local_directory) adapter_model_tensors = hf_hub_download(repo_id=repo_id, filename=repo_filename_tensors, local_dir=local_directory) print(f"Dowloaded the adapter model '{model_name}' from the Hugging Face Hub.", flush=True) return os.path.join(local_directory, repo_adapter_dir) peft_model_id = adapter_path # Use the same model ID as before. peft_config = PeftConfig.from_pretrained(peft_model_id) model = WhisperForConditionalGeneration.from_pretrained( peft_config.base_model_name_or_path, load_in_8bit=False) model = PeftModel.from_pretrained(model, peft_model_id) model.generation_config.language = "<|en|>" model.generation_config.task = "transcribe" tokenizer = WhisperTokenizer.from_pretrained("openai/whisper-large-v3", task="transcribe") feature_extractor = WhisperFeatureExtractor.from_pretrained("openai/whisper-large-v3") pipe = pipeline(model=model, tokenizer=tokenizer, feature_extractor=feature_extractor, task="automatic-speech-recognition", device=device) ### Framework versions - PEFT 0.11.1 - Transformers 4.42.4 - Pytorch 2.1.0+cu118 - Datasets 2.20.0 - Tokenizers 0.19.1