Wav2Vec2 Large MMS 1B – Azerbaijani ASR

This model is a Wav2Vec2 Large MMS (1B parameters) fine-tuned for Azerbaijani (az) speech recognition using an external adapter.

The base model comes from Meta’s Massively Multilingual Speech (MMS) project, with a custom Azerbaijani adapter loaded at inference time.


Model Details

  • Base model: facebook/wav2vec2-large-mms-1b
  • Language: Azerbaijani (az)
  • Sampling rate: 16 kHz
  • Framework: PyTorch
  • Adapter file: adapter.az.pt

Usage

Installation

pip install torch transformers numpy

Inference Example

import torch
import numpy as np
import wave
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC

MODEL_ID = "tahmaz/wav2vec2-large-mms-1b-azerbaijani"
SAMPLE_RATE = 16000

device = "cuda" if torch.cuda.is_available() else "cpu"

processor = Wav2Vec2Processor.from_pretrained(MODEL_ID)
model = Wav2Vec2ForCTC.from_pretrained(MODEL_ID).to(device)

# Load adapter
adapter_weights = torch.load(
    "adapter.az.pt",  # or downloaded from HF
    map_location=device
)
model.load_state_dict(adapter_weights, strict=False)
model.eval()

def transcribe_wav(path):
    with wave.open(path, "rb") as wf:
        audio = wf.readframes(wf.getnframes())

    audio = np.frombuffer(audio, dtype=np.int16).astype(np.float32) / 32768.0

    inputs = processor(
        audio,
        sampling_rate=SAMPLE_RATE,
        return_tensors="pt"
    ).to(device)

    with torch.no_grad():
        logits = model(**inputs).logits

    pred_ids = torch.argmax(logits, dim=-1)
    return processor.batch_decode(pred_ids)[0]

print(transcribe_wav("sample.wav"))
Downloads last month
84
Safetensors
Model size
1.0B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support