File size: 3,792 Bytes
1806b43 b560801 d7d406e 97aa366 1806b43 97aa366 1806b43 d7d406e 72b901d d7d406e 97aa366 d7d406e 0d7d99f d7d406e 97aa366 d7d406e 97aa366 d7d406e b560801 d7d406e 97aa366 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
---
language:
- zh
license: apache-2.0
tags:
- whisper-event
- generated_from_trainer
datasets:
- mozilla-foundation/common_voice_11_0
model-index:
- name: Whisper Small zh-HK - Alvin
results:
- task:
name: Automatic Speech Recognition
type: automatic-speech-recognition
dataset:
name: mozilla-foundation/common_voice_11_0 zh-HK
type: mozilla-foundation/common_voice_11_0
config: zh-HK
split: test
args: zh-HK
metrics:
- name: Normalized CER
type: cer
value: 10.11
---
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->
# Whisper Small zh-HK - Alvin
This model is a fine-tuned version of [openai/whisper-small](https://huggingface.co/openai/whisper-small) on the Common Voice 11.0 dataset. This version has a lower CER (by 1%) compared to the previous one.
## Training and evaluation data
For training, three datasets were used:
- Common Voice 11 Canto Train Set
- CantoMap: Winterstein, Grégoire, Tang, Carmen and Lai, Regine (2020) "CantoMap: a Hong Kong Cantonese MapTask Corpus", in Proceedings of The 12th Language Resources and Evaluation Conference, Marseille: European Language Resources Association, p. 2899-2906.
- Cantonse-ASR: Yu, Tiezheng, Frieske, Rita, Xu, Peng, Cahyawijaya, Samuel, Yiu, Cheuk Tung, Lovenia, Holy, Dai, Wenliang, Barezi, Elham, Chen, Qifeng, Ma, Xiaojuan, Shi, Bertram, Fung, Pascale (2022) "Automatic Speech Recognition Datasets in Cantonese: A Survey and New Dataset", 2022. Link: https://arxiv.org/pdf/2201.02419.pdf
## Using the Model
```
import librosa
import torch
from transformers import WhisperForConditionalGeneration, WhisperProcessor
y, sr = librosa.load('audio.mp3', sr=16000)
MODEL_NAME = "alvanlii/whisper-small-cantonese"
processor = WhisperProcessor.from_pretrained(MODEL_NAME)
model = WhisperForConditionalGeneration.from_pretrained(MODEL_NAME)
model.config.forced_decoder_ids = None
model.config.suppress_tokens = []
model.config.use_cache = False
processed_in = processor(y, sampling_rate=sr, return_tensors="pt")
gout = model.generate(
input_features=processed_in.input_features,
output_scores=True, return_dict_in_generate=True
)
transcription = processor.batch_decode(gout.sequences, skip_special_tokens=True)[0]
print(transcription)
```
- Alternatively, you can use huggingface pipelines
```
from transformers import pipeline
MODEL_NAME = "alvanlii/whisper-small-cantonese"
lang = "zh"
pipe = pipeline(
task="automatic-speech-recognition",
model=MODEL_NAME,
chunk_length_s=30,
device=device,
)
pipe.model.config.forced_decoder_ids = pipe.tokenizer.get_decoder_prompt_ids(language=lang, task="transcribe")
text = pipe(file)["text"]
```
## Training Hyperparameters
- learning_rate: 5e-5
- train_batch_size: 25 (on 2 GPUs)
- eval_batch_size: 8
- gradient_accumulation_steps: 2
- total_train_batch_size: 25x2x2=100
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: linear
- lr_scheduler_warmup_steps: 500
- training_steps: 14000
- mixed_precision_training: Native AMP
- augmentation: SpecAugment
## Training Results
| Training Loss | Epoch | Step | Validation Loss | Normalized CER |
|:-------------:|:-----:|:----:|:---------------:|:------:|
| 0.4610 | 0.55 | 2000 | 0.3106 | 13.08 |
| 0.3441 | 1.11 | 4000 | 0.2875 | 11.79 |
| 0.3466 | 1.66 | 6000 | 0.2820 | 11.44 |
| 0.2539 | 2.22 | 8000 | 0.2777 | 10.59 |
| 0.2312 | 2.77 | 10000 | 0.2822 | 10.60 |
| 0.1639 | 3.32 | 12000 | 0.2859 | 10.17 |
| 0.1569 | 3.88 | 14000 | 0.2866 | 10.11 |
|