A new version with punctuation is available: linagora/linto_stt_fr_fastconformer_pc!
This model is a fine-tuned version of the NVIDIA French FastConformer Hybrid Large model. It is a large (115M parameters) hybrid ASR model trained with both Transducer (default) and CTC losses.
Compared to the base model, this version:
The evaluation code is available in the ASR Benchmark repository.
WER was computed without punctuation or uppercase letters and datasets were cleaned. The SUMM-RE dataset is the only one used exclusively for evaluation, meaning neither model saw it during training.
Evaluations can be very long (especially for whisper) so we selected only segments with a duration over 1 second and used a subset of the test split for most datasets:

As shown in the table above (lower is better), the model demonstrates robust performance across all datasets, consistently achieving results close to the best.
RTFX (the inverse of RTF) measures how many seconds of audio can be transcribed per second of processing time.
Evaluation:

# Install transformers (>= 5.0 required for ParakeetForRNNT)
pip install "transformers>=5" librosa soundfile
from transformers import pipeline
asr = pipeline("automatic-speech-recognition", model="linagora/linto_stt_fr_fastconformer")
result = asr("/path/to/your/audio/file.wav")
print(result["text"])
Or, for batched inference :
import librosa
from transformers import AutoProcessor, ParakeetForRNNT
model_name = "linagora/linto_stt_fr_fastconformer"
processor = AutoProcessor.from_pretrained(model_name)
model = ParakeetForRNNT.from_pretrained(model_name)
audios = [librosa.load(path, sr=16000)[0] for path in ["audio1.wav", "audio2.wav"]]
inputs = processor(audios, sampling_rate=16000, return_tensors="pt", padding=True)
outputs = model.generate(**inputs)
print(processor.batch_decode(outputs.sequences, skip_special_tokens=True))
This model can be used with the NVIDIA NeMo Toolkit for both inference and fine-tuning.
pip install nemo_toolkit['all']
import nemo.collections.asr as nemo_asr
model_name = "linagora/linto_stt_fr_fastconformer"
asr_model = nemo_asr.models.ASRModel.from_pretrained(model_name=model_name)
# Path to your 16kHz mono-channel audio file
audio_path = "/path/to/your/audio/file"
# Transcribe with defaut transducer decoder
asr_model.transcribe([audio_path])
# (Optional) Switch to CTC decoder
asr_model.change_decoding_strategy(decoder_type="ctc")
# (Optional) Transcribe with CTC decoder
asr_model.transcribe([audio_path])
It can also be used with the LinTO STT API, an Automatic Speech Recognition (ASR) API that can function either as a standalone transcription service or be deployed within a microservices infrastructure using a message broker connector. It supports both offline and real-time transcription.
The training code is available in the nemo_asr_training repository.
The full configuration used for fine-tuning is available here.
AdamW
1e-5[0.9, 0.98]1e-3CosineAnnealing
1e-6The data were transformed, processed and converted using NeMo tools from the SSAK repository
The model was trained on over 9,500 hours of French speech, covering:

Datasets Used (by size):
[1] Fast Conformer with Linearly Scalable Attention for Efficient Speech Recognition
[2] Google Sentencepiece Tokenizer
Training of linto_stt_fr_fastconformer was made possible by computing AI and storage resources by GENCI at IDRIS thanks to the grant 2025-A0181016189 on the supercomputer Jean Zay’s H100 partition.
Thanks to NVIDIA for providing the base model architecture and the NeMo framework.
The model is released under a CC-BY-4.0 license, in line with the licensing of the original model it was fine-tuned from.
A new version with punctuation is available: linagora/linto_stt_fr_fastconformer_pc!
This model is a fine-tuned version of the NVIDIA French FastConformer Hybrid Large model. It is a large (115M parameters) hybrid ASR model trained with both Transducer (default) and CTC losses.
Compared to the base model, this version:
The evaluation code is available in the ASR Benchmark repository.
WER was computed without punctuation or uppercase letters and datasets were cleaned. The SUMM-RE dataset is the only one used exclusively for evaluation, meaning neither model saw it during training.
Evaluations can be very long (especially for whisper) so we selected only segments with a duration over 1 second and used a subset of the test split for most datasets:

As shown in the table above (lower is better), the model demonstrates robust performance across all datasets, consistently achieving results close to the best.
RTFX (the inverse of RTF) measures how many seconds of audio can be transcribed per second of processing time.
Evaluation:

# Install transformers (>= 5.0 required for ParakeetForRNNT)
pip install "transformers>=5" librosa soundfile
from transformers import pipeline
asr = pipeline("automatic-speech-recognition", model="linagora/linto_stt_fr_fastconformer")
result = asr("/path/to/your/audio/file.wav")
print(result["text"])
Or, for batched inference :
import librosa
from transformers import AutoProcessor, ParakeetForRNNT
model_name = "linagora/linto_stt_fr_fastconformer"
processor = AutoProcessor.from_pretrained(model_name)
model = ParakeetForRNNT.from_pretrained(model_name)
audios = [librosa.load(path, sr=16000)[0] for path in ["audio1.wav", "audio2.wav"]]
inputs = processor(audios, sampling_rate=16000, return_tensors="pt", padding=True)
outputs = model.generate(**inputs)
print(processor.batch_decode(outputs.sequences, skip_special_tokens=True))
This model can be used with the NVIDIA NeMo Toolkit for both inference and fine-tuning.
pip install nemo_toolkit['all']
import nemo.collections.asr as nemo_asr
model_name = "linagora/linto_stt_fr_fastconformer"
asr_model = nemo_asr.models.ASRModel.from_pretrained(model_name=model_name)
# Path to your 16kHz mono-channel audio file
audio_path = "/path/to/your/audio/file"
# Transcribe with defaut transducer decoder
asr_model.transcribe([audio_path])
# (Optional) Switch to CTC decoder
asr_model.change_decoding_strategy(decoder_type="ctc")
# (Optional) Transcribe with CTC decoder
asr_model.transcribe([audio_path])
It can also be used with the LinTO STT API, an Automatic Speech Recognition (ASR) API that can function either as a standalone transcription service or be deployed within a microservices infrastructure using a message broker connector. It supports both offline and real-time transcription.
The training code is available in the nemo_asr_training repository.
The full configuration used for fine-tuning is available here.
AdamW
1e-5[0.9, 0.98]1e-3CosineAnnealing
1e-6The data were transformed, processed and converted using NeMo tools from the SSAK repository
The model was trained on over 9,500 hours of French speech, covering:

Datasets Used (by size):
[1] Fast Conformer with Linearly Scalable Attention for Efficient Speech Recognition
[2] Google Sentencepiece Tokenizer
Training of linto_stt_fr_fastconformer was made possible by computing AI and storage resources by GENCI at IDRIS thanks to the grant 2025-A0181016189 on the supercomputer Jean Zay’s H100 partition.
Thanks to NVIDIA for providing the base model architecture and the NeMo framework.
The model is released under a CC-BY-4.0 license, in line with the licensing of the original model it was fine-tuned from.