Model reference · open weights
wav2vec2-spanish-phonemizer is an open-weight audio or speech model from Cnam-LMSSC. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | Cnam-LMSSC |
|---|---|
| Type | Audio & music |
| Task | Speech→text |
| Parameters (lead) | 94M |
| Runs with | transformers |
| Released | 2026-03-25 |
| Popularity | 719 downloads / month |
| Licence | Open weights |
About
Fine-tuned facebook/wav2vec2-base-es-voxpopuli-v2 for Spanish speech-to-phoneme (without language model) using the train and validation splits of Multilingual Librispeech.
When using this model, make sure that your speech input is sampled at 16kHz.
As this model is specifically trained for a speech-to-phoneme task, the output is sequence of IPA-encoded words, without punctuation. If you don't read the phonetic alphabet fluently, you can use this excellent IPA reader website to convert the transcript back to audio synthetic speech in order to check the quality of the phonetic transcription.
The model has been finetuned on Multilingual Librispeech (ES) for 30 epochs on a 1xADA_6000 GPU at Cnam/LMSSC using a ddp strategy and gradient-accumulation procedure (256 audios per update, corresponding roughly to 25 minutes of speech per update -> 2k updates per epoch)
Learning rate schedule : Double Tri-state schedule
The set of hyperparameters used for training are the same as those detailed in Annex B and Table 6 of wav2vec2 paper.
Just record your voice on the ⚡ Inference API on this webpage, and then click on "Compute", that's all !
The model can be used directly using the HuggingSound library:
import pandas as pd
from huggingsound import SpeechRecognitionModel
model = SpeechRecognitionModel("Cnam-LMSSC/wav2vec2-spanish-phonemizer")
audio_paths = ["./test_rilettura_testo.wav", "./10179_11051_000021.flac"]
# No need for the Audio files to be sampled at 16 kHz here,
# they are automatically resampled by Huggingsound
transcriptions = model.transcribe(audio_paths)
# (Optionnal) Display results in a table :
## transcriptions is list of dicts also containing timestamps and probabilities !
df = pd.DataFrame(transcriptions)
df['Audio file'] = pd.DataFrame(audio_paths)
df.set_index('Audio file', inplace=True)
df[['transcription']]
Output :
| Audio file | Phonetic transcription (IPA) |
|---|---|
| ./prueba_revision_texto.wav | paɾeθia un tiβuɾon kompleto ðe βeɾas ke si asi si aoɾa koxemos a aθɛntwaða este βlak ðoɡ ʝa tendɾemos notiθjas ke embjaɾ a aθɛntwaða nwestɾo βwem patɾon el kaβaʎeɾo |
| ./10179_11051_000021.flac | pestaɲeaðo keðose en donde estaβa apoʝandose apenas en su muleta i kon los oxos klaβaðos en su kompaɲeɾo komo una βiβoɾa lista paɾa aβalanθaɾse |
import torch
from transformers import AutoModelForCTC, Wav2Vec2Processor
from datasets import load_dataset
import soundfile as sf # Or Librosa if you prefer to ...
MODEL_ID = "Cnam-LMSSC/wav2vec2-spanish-phonemizer"
model = AutoModelForCTC.from_pretrained(MODEL_ID)
processor = Wav2Vec2Processor.from_pretrained(MODEL_ID)
audio = sf.read('example.wav')
# Make sure you have a 16 kHz sampled audio file, or resample it !
inputs = processor(np.array(audio[0]),sampling_rate=16_000., return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
predicted_ids = torch.argmax(logits,dim = -1)
transcription = processor.batch_decode(predicted_ids)
print("Phonetic transcription : ", transcription)
Output :
'esˈtoj ˈmuj konˈtento ðe pɾesenˈtaɾles ˈnwestɾa soluˈsjon ˈpaɾa fonemiˈsaɾ ˈawðjos ˈfasilˈmente | funˈsjona βasˈtante ˈβjen'
In the table below, we report the Phoneme Error Rate (PER) of the model on Multilingual Librispeech (using the Spanish configs for the dataset of course) :
| Model | Test Set | PER |
|---|---|---|
| Cnam-LMSSC/wav2vec2-spanish-phonemizer | Multilingual Librispeech (Spanish) | 2.94% |
If you use this finetuned model for any publication, please use this to cite our work :
@misc {lmssc-wav2vec2-base-phonemizer-spanish_2026,
author = { Olivier, Malo },
title = { wav2vec2-spanish-phonemizer (Revision 4c60fe7) },
year = 2026,
url = { https://huggingface.co/Cnam-LMSSC/wav2vec2-spanish-phonemizer },
doi = { 10.57967/hf/8136 },
publisher = { Hugging Face }
}
From the published model card. Full card on the HuggingFace links in the sidebar.
Benchmarks
As published on the model card — the maker's own numbers, not measured by AxForge.
| Task | Dataset | Metric | Score |
|---|---|---|---|
| Speech Recognition | Multilingual Librispeech | Test PER on Multilingual Librispeech ES | Trained | 2.940 |
| Speech Recognition | Multilingual Librispeech | Val PER on Multilingual Librispeech ES | Trained | 2.660 |
Using it via the API
Once AxForge deploys wav2vec2-spanish-phonemizer for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (wav2vec2-spanish-phonemizer below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/audio/transcriptions \ -H "Authorization: Bearer $AXFORGE_API_KEY" \ -F model="wav2vec2-spanish-phonemizer" -F file=@audio.mp3
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.