SAVRN
Search Contact SAVRN

Open-weight model · Speech recognition

vakyansh-wav2vec2-tamil-tam-250

by Harveen Singh Chadha Harveenchadha/vakyansh-wav2vec2-tamil-tam-250

Fine-tuned on Multilingual Pretrained Model CLSRIL-23. The original fairseq checkpoint is present here. When using this model, make sure that your speech input is sampled at 16kHz.

Parameters
Context
Weights377.7 MB
Licensemit
AccessOpen weights
Monthly Downloads1.4M

Model Card

By Harveen Singh Chadha, published under mit, revision 0bd7c7d87da1.

Fine-tuned on Multilingual Pretrained Model CLSRIL-23. The original fairseq checkpoint is present here. When using this model, make sure that your speech input is sampled at 16kHz. Note: The result from this model is without a language model so you may witness a higher WER in some cases. This model was trained on 4200 hours of Hindi Labelled Data. The labelled data is not present in public domain as of now. Models were trained using experimental platform setup by Vakyansh team at Ekstep. Here is the training repository. In case you want to explore training logs on wandb they are here. The model can be used directly (without a language model) as follows: The model can be evaluated as follows…

Read Harveen Singh Chadha's full model card

Pretrained Model

Fine-tuned on Multilingual Pretrained Model CLSRIL-23. The original fairseq checkpoint is present here. When using this model, make sure that your speech input is sampled at 16kHz.

Note: The result from this model is without a language model so you may witness a higher WER in some cases.

Dataset

This model was trained on 4200 hours of Hindi Labelled Data. The labelled data is not present in public domain as of now.

Training Script

Models were trained using experimental platform setup by Vakyansh team at Ekstep. Here is the training repository.

In case you want to explore training logs on wandb they are here.

Colab Demo

Usage

The model can be used directly (without a language model) as follows:

import soundfile as sf
import torch
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
import argparse

def parse_transcription(wav_file):
    # load pretrained model
    processor = Wav2Vec2Processor.from_pretrained("Harveenchadha/vakyansh-wav2vec2-tamil-tam-250")
    model = Wav2Vec2ForCTC.from_pretrained("Harveenchadha/vakyansh-wav2vec2-tamil-tam-250")

    # load audio
    audio_input, sample_rate = sf.read(wav_file)

    # pad input values and return pt tensor
    input_values = processor(audio_input, sampling_rate=sample_rate, return_tensors="pt").input_values

    # INFERENCE
    # retrieve logits & take argmax
    logits = model(input_values).logits
    predicted_ids = torch.argmax(logits, dim=-1)

    # transcribe
    transcription = processor.decode(predicted_ids[0], skip_special_tokens=True)
    print(transcription)

Evaluation

The model can be evaluated as follows on the hindi test data of Common Voice.


import torch
import torchaudio
from datasets import load_dataset, load_metric
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
import re

test_dataset = load_dataset("common_voice", "ta", split="test")
wer = load_metric("wer")

processor = Wav2Vec2Processor.from_pretrained("Harveenchadha/vakyansh-wav2vec2-tamil-tam-250")
model = Wav2Vec2ForCTC.from_pretrained("Harveenchadha/vakyansh-wav2vec2-tamil-tam-250")
model.to("cuda")

resampler = torchaudio.transforms.Resample(48_000, 16_000)

chars_to_ignore_regex = '[\,\?\.\!\-\;\:\"\“]'

# Preprocessing the datasets.
# We need to read the aduio files as arrays
def speech_file_to_array_fn(batch):
  batch["sentence"] = re.sub(chars_to_ignore_regex, '', batch["sentence"]).lower()
  speech_array, sampling_rate = torchaudio.load(batch["path"])
  batch["speech"] = resampler(speech_array).squeeze().numpy()
  return batch

test_dataset = test_dataset.map(speech_file_to_array_fn)

# Preprocessing the datasets.
# We need to read the aduio files as arrays
def evaluate(batch):
  inputs = processor(batch["speech"], sampling_rate=16_000, return_tensors="pt", padding=True)

  with torch.no_grad():
      logits = model(inputs.input_values.to("cuda")).logits

      pred_ids = torch.argmax(logits, dim=-1)
      batch["pred_strings"] = processor.batch_decode(pred_ids, skip_special_tokens=True)
      return batch

result = test_dataset.map(evaluate, batched=True, batch_size=8)

print("WER: {:2f}".format(100 * wer.compute(predictions=result["pred_strings"], references=result["sentence"])))

Test Result: 53.64 %

Colab Evaluation

Credits

Thanks to Ekstep Foundation for making this possible. The vakyansh team will be open sourcing speech models in all the Indic Languages.

Configuration

Architecture
Wav2Vec2ForCTC
Layers
12
Hidden size
768
Feed-forward size
3,072
Attention heads
12
Vocabulary size
53
Stored precision
float32
Model type
wav2vec2

Identity and Version

Repository
Harveenchadha/vakyansh-wav2vec2-tamil-tam-250
Publisher
Harveen Singh Chadha
Task
Speech recognition
Modality
Audio
Library
transformers
Parameters
Not stated by the source
Languages
ta
Revision
0bd7c7d87da18a71b246ce3e543244bdba983e36
First published
2022-03-02
Last updated
2021-09-22

Files and Weights

8 files, 377.7 MB in total. The weights are 1 file totalling 377.7 MB in bin.

Weights1 file · 377.7 MB
Configuration3 files · 2.0 KB
Tokenizer2 files · 757 B
Documentation1 file · 4.4 KB
Repository1 file · 737 B
Every file
FileTypeSizeSHA-256
pytorch_model.binWeights377.7 MB 00adef7dc21c
config.jsonConfiguration1.7 KB
preprocessor_config.jsonConfiguration213 B
special_tokens_map.jsonConfiguration85 B
README.mdDocumentation4.4 KB
.gitattributesRepository737 B
tokenizer_config.jsonTokenizer181 B
vocab.jsonTokenizer576 B

License and Download

License
mit
Access
Open weights, no gate
Download size
377.7 MB
Download from Harveen Singh Chadha

Released by Harveen Singh Chadha through its official repository on Hugging Face. Read the license.

Built From

  • Described by arXiv:2107.07402

Evaluations

Each result is shown as reported, with the conditions its reporter stated. None is a SAVRN measurement. A comparison lines two results up only when their configuration, unit and setup are all stated and identical.

BenchmarkConditionsResultReported byRevisionDate
Common Voice ta Task Speech RecognitionMetric Test WERComparison conditions not established 53.64 Harveenchadha
Publisher reported
Evaluated revision not stated

Memory Requirements

PrecisionWeights in memory
As published377.7 MB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About vakyansh-wav2vec2-tamil-tam-250

Can I use vakyansh-wav2vec2-tamil-tam-250 commercially?

Yes. vakyansh-wav2vec2-tamil-tam-250 is released under MIT License. The MIT License is a short permissive license. It permits commercial use, modification and redistribution, provided the copyright notice and permission notice are included.

Similar Models

Model · Speech recognition

wav2vec2-large-xlsr-53-japanese

Jonatas Grosman

Fine-tuned facebook/wav2vec2-large-xlsr-53 on Japanese using the train and validation splits of Common Voice 6.1, CSS10 and JSUT. When using this model, make sure that your speech input is sampled at 16kHz. This model has been fine-tuned thanks to the GPU credits generously given by the OVHcloud:) The script used for training can be found here: https://github.com/jonatasgrosman/wav2vec2-sprint The model can be used directly (without a language model) as follows... Using the HuggingSound library: The model can be evaluated as follows on the Japanese test data of Common Voice. In the table below I report the Word Error Rate (WER) and the Character Error Rate (CER) of the model. I ran the…

Open weights apache-2.0 transformers

Model · Speech recognition

whisperkit-coreml

Argmax

WhisperKit is part of Argmax OSS, an On-device Speech AI SDK for Apple Silicon: https://github.com/argmaxinc/argmax-oss-swift Check out the WhisperKit paper and presentation from ICML 2025: https://icml.cc/virtual/2025/47854 For real-time transcription with speakers and custom vocabulary, check out Argmax Pro SDK: https://www.argmaxinc.com/blog/argmax-sdk-2

Open weights mit whisperkit

Model · Speech recognition

speaker-diarization-3.1

Pyannote

Using this open-source model in production? Consider switching to pyannoteAI for better and faster options. This pipeline is the same as pyannote/speaker-diarization-3.0 except it removes the problematic use of onnxruntime. Both speaker segmentation and embedding now run in pure PyTorch. This should ease deployment and possibly speed up inference. It requires pyannote.audio version 3.1 or higher. It ingests mono audio sampled at 16kHz and outputs speaker diarization as an Annotation instance: - stereo or multi-channel audio files are automatically downmixed to mono by averaging the channels. - audio files sampled at a different rate are resampled to 16kHz automatically upon loading. 1.…

Access requested at publisher mit pyannote-audio

Fine-tuned facebook/wav2vec2-large-xlsr-53 on Portuguese using the train and validation splits of Common Voice 6.1. When using this model, make sure that your speech input is sampled at 16kHz. This model has been fine-tuned thanks to the GPU credits generously given by the OVHcloud:) The script used for training can be found here: https://github.com/jonatasgrosman/wav2vec2-sprint The model can be used directly (without a language model) as follows... Using the HuggingSound library: 1. To evaluate on mozilla-foundation/commonvoice60 with split test 2. To evaluate on speech-recognition-community-v2/devdata If you want to cite this model you can use this

Open weights apache-2.0 transformers

Model · Speech recognition

speaker-diarization-community-1

Pyannote

This pipeline ingests mono audio sampled at 16kHz and outputs speaker diarization. - stereo or multi-channel audio files are automatically downmixed to mono by averaging the channels. - audio files sampled at a different rate are resampled to 16kHz automatically upon loading. The main improvements brought by Community-1 are: - improved speaker assignment and counting - simpler reconciliation with transcription timestamps with exclusive speaker diarization - easy offline use (i.e. without internet connection) - (optionally) hosted on pyannoteAI cloud 1. pip install pyannote.audio 3. Create access token at hf.co/settings/tokens. Out of the box, Community-1 is much better than…

Access requested at publisher cc-by-4.0 pyannote-audio

Model · Speech recognition

wav2vec2-large-xlsr-53-russian

Jonatas Grosman

Fine-tuned facebook/wav2vec2-large-xlsr-53 on Russian using the train and validation splits of Common Voice 6.1 and CSS10. When using this model, make sure that your speech input is sampled at 16kHz. This model has been fine-tuned thanks to the GPU credits generously given by the OVHcloud:) The script used for training can be found here: https://github.com/jonatasgrosman/wav2vec2-sprint The model can be used directly (without a language model) as follows... Using the HuggingSound library: 1. To evaluate on mozilla-foundation/commonvoice60 with split test 2. To evaluate on speech-recognition-community-v2/devdata If you want to cite this model you can use this

Open weights apache-2.0 transformers