Instructions to use espnet/geolid_vl107only_independent_trainable with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ESPnet
How to use espnet/geolid_vl107only_independent_trainable with ESPnet:
unknown model type (must be text-to-speech or automatic-speech-recognition)
- Notebooks
- Google Colab
- Kaggle
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}
}
- Downloads last month
- 59
Model tree for espnet/geolid_vl107only_independent_trainable
Base model
facebook/mms-1b