Model reference · open weights

wav2vec2-french-phonemizer

Audio Cnam-LMSSC Speech→text 1 build Open weights 6k dl/mo

wav2vec2-french-phonemizer is an open-weight audio or speech model from Cnam-LMSSC. wav2vec2-french-phonemizer-v2 (FP32) weighs 189 MB; the smallest configuration that runs it is RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • wav2vec2-french-phonemizer-v2 is a 94M parameter model developed by Cnam-LMSSC for automatic speech recognition that converts French audio into International Phonetic Alphabet sequences.
  • It is fine-tuned on Common Voice v13 data and requires 16kHz sampled input, with a reported Phoneme Error Rate of 4.75% on the Common Voice test set.
  • The model is distributed under the MIT license.

Summary of the Cnam-LMSSC/wav2vec2-french-phonemizer-v2 model card, 2026-10-01

What it is

Released byCnam-LMSSC
Released2026-01-08
Parameters94M
VRAM189 MB for the weights

What it runs on

Memory and cards for wav2vec2-french-phonemizer-v2 (FP32)

189 MBweights, file size
1.6 GBruntime overhead
CardOne streamMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What Cnam-LMSSC says about wav2vec2-french-phonemizer

Read the model card

This version fixes the absence of the voiced labial-palatal approximant ɥ. The original Cnam-LMSSC/wav2vec2-french-phonemizer never transcribes the pronunciation of the voiced labial–palatal approximant with /ɥ/ and instead incorrectly replaces it with the sequence /yi/. This created issues for phonetic accuracy and linguistic analysis. Words like "nuit" or "huit" are pronounced with \ɥ\ and not with \yi
For Text-to-Speech (TTS) task, substituting \ɥ\ with \yi\ results in unnatural prosody.

Fine-tuned French Voxpopuli v2 wav2vec2-base model for speech-to-phoneme task in French

Fine-tuned facebook/wav2vec2-base-fr-voxpopuli-v2 for French speech-to-phoneme (without language model) using the train and validation splits of Common Voice v13.

Audio samplerate for usage

When using this model, make sure that your speech input is sampled at 16kHz.

Output

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.

Training procedure

The model has been finetuned on Commonvoice-v13 (FR) for 14 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

    • Warmup from 1e-5 for 7% of total updates
    • Constant at 1e-4 for 28% of total updates
    • Linear decrease to 1e-6 for 36% of total updates
    • Second warmup boost to 3e-5 for 3% of total updates
    • Constant at 3e-5 for 12% of total updates
    • Linear decrease to 1e-7 for remaining 14% of updates
  • The set of hyperparameters used for training are the same as those detailed in Annex B and Table 6 of wav2vec2 paper.

Usage (using the online Inference API)

Just record your voice on the ⚡ Inference API on this webpage, and then click on "Compute", that's all !

Usage (with HuggingSound library)

The model can be used directly using the HuggingSound library:

import pandas as pd
from huggingsound import SpeechRecognitionModel

model = SpeechRecognitionModel("Cnam-LMSSC/wav2vec2-french-phonemizer-v2")
audio_paths = ["./test_relecture_texte.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 filePhonetic transcription (IPA)
./test_relecture_texte.wavʃapitʁ di də abɛse pəti kɔ̃t də ʒyl ləmɛtʁ ɑ̃ʁʒistʁe puʁ libʁivɔksɔʁɡ ibis dɑ̃ la bas kuʁ dœ̃ ʃato sə tʁuva paʁmi tut sɔʁt də volaj œ̃n ibis ʁɔz
./10179_11051_000021.flackɛl dɔmaʒ kə sə nə swa pa dy sykʁ supiʁa se foʁaz ɑ̃ pasɑ̃ sa lɑ̃ɡ syʁ la vitʁ fɛ̃ dy ʃapitʁ kɛ̃z ɑ̃ʁʒistʁe paʁ sonjɛ̃ sɛt ɑ̃ʁʒistʁəmɑ̃ fɛ paʁti dy domɛn pyblik

Inference script (if you do not want to use the huggingsound library) :

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-french-phonemizer-v2"

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 :

'ʒə syi tʁɛ kɔ̃tɑ̃ də vu pʁezɑ̃te notʁ solysjɔ̃ puʁ fonomize dez odjo fasilmɑ̃ sa fɔ̃ksjɔn kɑ̃ mɛm tʁɛ bjɛ̃'

Test Results:

In the table below, we report the Phoneme Error Rate (PER) of the model on both Common Voice and Multilingual Librispeech (using the French configs for both datasets of course), when finetuned on Common Voice train set only :

ModelTest SetPER
Cnam-LMSSC/wav2vec2-french-phonemizer-v2Common Voice v13 (French)4.75%
Cnam-LMSSC/wav2vec2-french-phonemizer-v2Multilingual Librispeech (French)5.97%

Citation

If you use this finetuned model for any publication, please use this to cite our work :

@misc {lmssc-wav2vec2-base-phonemizer-french-v2_2026,
	author       = { Olivier, Malo },
	title        = { wav2vec2-french-phonemizer-v2 (Revision 8e71385) },
	year         = 2026,
	url          = { https://huggingface.co/Cnam-LMSSC/wav2vec2-french-phonemizer-v2 },
	doi          = { 10.57967/hf/7468 },
	publisher    = { Hugging Face }
}

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

Benchmarks

Reported results

As published on the model card: the maker's own numbers, not measured by AxForge.

TaskDatasetMetricScore
Speech RecognitionCommon Voice v13Test PER on Common Voice FR 13.0 | Trained4.750
Speech RecognitionCommon Voice v13Test PER on Multilingual Librispeech FR | Trained5.970
Speech RecognitionCommon Voice v13Val PER on Common Voice FR 13.0 | Trained3.510
Speech RecognitionCommon Voice v13Val PER on Multilingual Librispeech FR | Trained5.070
© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms