Определение языка
Определяйте язык речи на устройстве с помощью 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 и откалиброванное правило отказа.