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