Identificación de idioma

Identifica en el dispositivo el idioma hablado con SpeechBrain ECAPA VoxLingua107. El runtime Swift admite MLX nativo y Core ML compilado, y ordena 107 etiquetas de idioma.

Arquitectura

El audio se remuestrea a 16 kHz y pasa por un frontend log-mel de 60 bandas idéntico al de SpeechBrain. La normalización de media temporal alimenta un codificador ECAPA-TDNN y su clasificador de 107 clases.

CLI

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

MLX es el motor predeterminado. Usa --engine coreml para el modelo compilado, --top para elegir candidatos y --json para una salida procesable.

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")

Grabaciones largas

Cada llamada analiza hasta unos 30 segundos. Las grabaciones más largas se dividen en ventanas sin solapamiento y sus probabilidades se combinan ponderadas por duración.

Modelo de conjunto cerrado

El modelo siempre ordena una de sus etiquetas conocidas. Su confianza no detecta idiomas desconocidos. Añade VAD y una política de rechazo calibrada para silencio, música, cambio de código e idiomas no admitidos.

Hugging Face

CLI: language-id