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.
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.