ESPnet2 GeoLID: vl107only_independent_trainable

This is a normal ESPnet language identification model using the stock S3prlFrontend and official Transformers. GeoLID wraps SSL layers 32, 36, 40 and 44 with lang2vec prediction and residual conditioning. The model code is maintained in ESPnet; no checkpoint-local Python modeling files or trust_remote_code=True are needed.

The checkpoint was converted, not retrained. local/convert_checkpoint.py renamed the original parameter keys and removed checked duplicate aliases. All learned tensor values are unchanged. Runtime uses current ESPnet pooling and normalization, without legacy compatibility code. Historical paper scores have not been re-evaluated for this converted implementation.

Installation

Until PR #6212 is merged, install the implementation revision:

pip install 'espnet @ git+https://github.com/Qingzheng-Wang/espnet.git@7ad43485c21ffc6c032c1747dc2c8780c7878eae'
pip install espnet-s3prl transformers espnet-model-zoo soundfile

Inference

import soundfile as sf
import torch
from espnet_model_zoo.downloader import ModelDownloader
from espnet2.tasks.lid import LIDTask

files = ModelDownloader().download_and_unpack("espnet/geolid_vl107only_independent_trainable")
model, args = LIDTask.build_model_from_file(
    files["train_config"], files["model_file"], device="cpu"
)
model.eval()
audio, sample_rate = sf.read("speech.wav", dtype="float32")
assert sample_rate == 16000 and audio.ndim == 1
with torch.inference_mode():
    embeddings, prediction = model(
        torch.from_numpy(audio)[None],
        torch.tensor([len(audio)]),
        extract_embd=True,
    )
with open(args.lang2utt) as stream:
    languages = [line.split()[0] for line in stream]
print(languages[prediction.item()])

The backbone is initialized through the stock hf_wav2vec2_custom upstream from facebook/mms-1b, then the complete converted checkpoint loads the trained SSL, conditioning and classifier parameters. This repository contains 107 language classes. languages.txt preserves classifier-index order recovered from the original model card and the original sorted recipe label construction; it is not a copy of the missing original training utterance manifest.

conversion.json records the source checkpoint revision and label provenance. validation.json records strict loading, unchanged tensor values, and synthetic waveform smoke tests. These checks do not constitute a corpus benchmark. The old training logs and figures retained under exp_* describe the original training run. Earlier checkpoint layouts remain available in repository history.

License

Derived from facebook/mms-1b, these model weights are licensed CC-BY-NC-4.0, including the non-commercial restriction. The previous CC-BY-4.0 metadata was incorrect and has been corrected.

Citation

@inproceedings{wang2025geolid,
  title={Geolocation-Aware Robust Spoken Language Identification},
  author={Qingzheng Wang and Hye-jin Shim and Jiancheng Sun and Shinji Watanabe},
  booktitle={2025 IEEE Automatic Speech Recognition and Understanding Workshop (ASRU)},
  year={2025},
  organization={IEEE},
  url={https://arxiv.org/abs/2508.17148}
}

Recipe and historical results

Downloads last month
59
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for espnet/geolid_vl107only_independent_trainable

Base model

facebook/mms-1b
Finetuned
(26)
this model

Paper for espnet/geolid_vl107only_independent_trainable