readme: ---
  language: cy
  datasets:
  - common_voice
  metrics:
  - wer
  tags:
  - audio
  - automatic-speech-recognition
  - hf-asr-leaderboard
  - ken-lm
  - robust-speech-event
  - speech
  license: apache-2.0
  model-index:
  - name: wav2vec2-xls-r-1b-ft-cy with KenLM language model (by Bangor University)
    results:
    - task:
        name: Speech Recognition
        type: automatic-speech-recognition
      dataset:
        name: Common Voice cy
        type: common_voice
        args: cy
      metrics:
      - name: Test WER
        type: wer
        value: 12.38%
  ---
  
  # wav2vec2-xls-r-1b-ft-cy
  
  Fine-tuned [facebook/wav2vec2-xls-r-1b](https://huggingface.co/facebook/wav2vec2-xls-r-1b) with the [Welsh Common Voice version 9 dataset](https://huggingface.co/datasets/common_voice).
  
  Source code and scripts for training acoustic and KenLM language models, as well as examples of inference in transcribing or a self-hosted API service, can be found at [https://github.com/techiaith/docker-wav2vec2-xlsr-ft-cy](https://github.com/techiaith/docker-wav2vec2-xlsr-ft-cy). 
  
  
  
  ## Usage
  
  The wav2vec2-xls-r-1b-ft-cy (acoustic) model can be used directly (without a language model) as follows:
  
  ```python
  import torch
  import torchaudio
  import librosa
  
  from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
  
  processor = Wav2Vec2Processor.from_pretrained("techiaith/wav2vec2-xls-r-1b-ft-cy")
  model = Wav2Vec2ForCTC.from_pretrained("techiaith/wav2vec2-xls-r-1b-ft-cy")
  
  audio, rate = librosa.load(audio_file, sr=16000)
  
  inputs = processor(audio, sampling_rate=16_000, return_tensors="pt", padding=True)
  
  with torch.no_grad():
    tlogits = model(inputs.input_values, attention_mask=inputs.attention_mask).logits
  
  # greedy decoding
  predicted_ids = torch.argmax(logits, dim=-1)
  
  print("Prediction:", processor.batch_decode(predicted_ids))
  
  ```
  
  ## Using the Language Model
  
  See https://github.com/techiaith/docker-wav2vec2-xlsr-ft-cy/releases/tag/22.06 for more details and
  examples of a KenLM usage with the Parlance PyTorch CTC decode bindings library: [https://github.com/parlance/ctcdecode](https://github.com/parlance/ctcdecode)
  
  
  ## Evaluation
  
  According to the Welsh Common Voice version 9 test set, the WER of techiaith/wav2vec2-xls-r-1b-ft-cy standalone is **19.68%**
  
  When assisted by the KenLM language model the same test produces a WER of **12.38%**
  
  See: https://github.com/techiaith/docker-wav2vec2-xlsr-ft-cy/blob/main/train/python/evaluate.py
  
  
  