Identification de la langue

Identifie sur l’appareil la langue parlée avec SpeechBrain ECAPA VoxLingua107. Le runtime Swift prend en charge MLX natif et Core ML compilé, et classe 107 langues.

Architecture

L’audio est rééchantillonné à 16 kHz puis traité par un frontend log-mel 60 bandes strictement compatible avec SpeechBrain. La normalisation de la moyenne temporelle alimente un encodeur ECAPA-TDNN et son classifieur à 107 classes.

CLI

speech language-id recording.wav
speech language-id recording.wav --engine coreml --top 3
speech language-id recording.wav --json

MLX est utilisé par défaut. --engine coreml sélectionne le modèle compilé, --top le nombre de candidats et --json une sortie exploitable par machine.

Swift API

import SpeechLanguageID

let identifier = try await SpeechLanguageIdentifier.fromPretrained(engine: .mlx)
let result = try identifier.identify(
    audio: samples,
    sampleRate: sampleRate,
    topK: 5
)
print(result.best?.label.code ?? "unknown")

Enregistrements longs

Chaque appel analyse environ 30 secondes au maximum. Les enregistrements plus longs sont découpés en fenêtres sans chevauchement et les probabilités sont pondérées par leur durée.

Modèle à ensemble fermé

Le modèle classe toujours une étiquette connue. Sa confiance ne détecte pas une langue inconnue. Ajoutez une VAD et une règle de rejet calibrée pour le silence, la musique, l’alternance de langues et les langues non prises en charge.

Hugging Face

CLI: language-id