Определение языка

Определяйте язык речи на устройстве с помощью SpeechBrain ECAPA VoxLingua107. Среда Swift поддерживает нативный MLX и скомпилированный Core ML и ранжирует 107 языков.

Архитектура

Аудио ресемплируется до 16 кГц и обрабатывается точным 60-полосным log-mel фронтендом SpeechBrain. После нормализации среднего по времени данные поступают в ECAPA-TDNN и классификатор на 107 классов.

CLI

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

По умолчанию используется MLX. --engine coreml выбирает скомпилированную модель, --top задаёт число кандидатов, а --json включает машиночитаемый вывод.

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

Длинные записи

Один вызов анализирует до примерно 30 секунд. Более длинные записи делятся на неперекрывающиеся окна, а вероятности объединяются с весом по длительности.

Модель с закрытым набором

Модель всегда ранжирует одну из известных меток. Уверенность не обнаруживает неизвестный язык. Для тишины, музыки, переключения языков и неподдерживаемых языков добавьте VAD и откалиброванное правило отказа.

Hugging Face

CLI: language-id