Identificação de idioma

Identifique no dispositivo o idioma falado com SpeechBrain ECAPA VoxLingua107. O runtime Swift oferece MLX nativo e Core ML compilado e classifica 107 rótulos de idioma.

Arquitetura

O áudio é reamostrado para 16 kHz e processado por um frontend log-mel de 60 bandas idêntico ao SpeechBrain. A normalização da média temporal alimenta um codificador ECAPA-TDNN e o classificador de 107 classes.

CLI

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

MLX é o padrão. Use --engine coreml para o modelo compilado, --top para escolher a quantidade de candidatos e --json para saída legível por máquina.

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

Gravações longas

Cada chamada analisa até cerca de 30 segundos. Gravações maiores são divididas em janelas sem sobreposição e as probabilidades são combinadas com peso pela duração.

Modelo de conjunto fechado

O modelo sempre classifica um rótulo conhecido. A confiança não detecta idiomas desconhecidos. Adicione VAD e uma política de rejeição calibrada para silêncio, música, alternância de idiomas e idiomas não suportados.

Hugging Face

CLI: language-id