Бенчмарки
RTF (real-time factor) ниже 1.0 означает быстрее реального времени.
Apple Silicon (MLX + CoreML)
Все бенчмарки на M2 Max, 64 ГБ, macOS 14, сборка release и скомпилированный metallib.
ASR — Word Error Rate
Оценено на LibriSpeech test-clean (2620 высказываний, ~5.4 часа английской чтецкой речи).
| Модель | Биты | Размер | WER% | RTF |
|---|---|---|---|---|
| Qwen3-ASR 1.7B | 8-bit | 2.3 ГБ | 2.35 | 0.090 |
| Qwen3-ASR 1.7B | 4-bit | 1.2 ГБ | 2.57 | 0.045 |
| Parakeet TDT 0.6B | INT8 | 634 МБ | 2.74 | 0.089 |
| Qwen3-ASR 0.6B | 8-bit | 960 МБ | 2.80 | 0.025 |
| Qwen3-ASR 0.6B | 4-bit | 675 МБ | 3.34 | 0.023 |
Сравнение с опубликованными моделями
| Модель | Параметры | Размер | Точность | WER% | Источник |
|---|---|---|---|---|---|
| Qwen3-ASR 1.7B | 1.7B | 2.3 ГБ | 8-bit | 2.35 | Этот бенчмарк |
| Whisper Large v3 Turbo | 809M | 1.6 ГБ | FP16 | 2.5 | OpenAI (2024) |
| Qwen3-ASR 1.7B | 1.7B | 1.2 ГБ | 4-bit | 2.57 | Этот бенчмарк |
| Whisper Large v3 | 1.5B | 3.1 ГБ | FP16 | 2.7 | OpenAI (2023) |
| Parakeet TDT 0.6B | 600M | 634 МБ | INT8 | 2.74 | Этот бенчмарк |
| Qwen3-ASR 0.6B | 600M | 960 МБ | 8-bit | 2.80 | Этот бенчмарк |
| Whisper Medium | 769M | 1.5 ГБ | FP16 | 3.0 | OpenAI (2022) |
| Qwen3-ASR 0.6B | 600M | 675 МБ | 4-bit | 3.34 | Этот бенчмарк |
| Whisper Small | 244M | 483 МБ | FP16 | 3.4 | OpenAI (2022) |
Устойчивость на длинных записях (непрерывная нагрузка на Neural Engine)
200 высказываний LibriSpeech обработаны последовательно (~30 мин аудио, M2 Max). Проверка, деградирует ли WER или задержка при непрерывной транскрипции.
| Метрика | Первые 25% | Последние 25% | Всего |
|---|---|---|---|
| WER% | 1.30 | 1.23 | 2.43 |
| RTF | 0.672 | 0.400 | 0.539 |
Деградация не обнаружена. WER стабилен на протяжении сессии. RTF даже улучшается по мере прогрева кеша плана выполнения CoreML. Без теплового троттлинга после 42 минут непрерывного инференса на Neural Engine. Parakeet обрабатывает каждый чанк независимо — без накопления состояния между чанками.
Многоязычные результаты (FLEURS)
CER используется для языков CJK (без границ слов). Parakeet поддерживает ~25 европейских языков (без CJK).
| Язык | Метрика | Qwen3 4-bit | Qwen3 8-bit | Parakeet INT8 |
|---|---|---|---|---|
| Испанский | WER | 6.44 | 5.06 | 5.18 |
| Английский | WER | 6.57 | 5.64 | 9.30 |
| Китайский | CER | 8.41 | 7.71 | — |
| Немецкий | WER | 9.45 | 6.81 | 12.33 |
| Французский | WER | 11.42 | 8.50 | 13.02 |
| Японский | CER | 16.11 | 8.64 | — |
| Русский | WER | 16.35 | 10.52 | 11.49 |
| Корейский | WER | 19.95 | 6.89 | — |
| Хинди | WER | 25.93 | 18.57 | — |
| Арабский | WER | 33.47 | 20.31 | — |
Дельта от сжатия
Потеря точности от квантизации до меньшей разрядности.
| Вариант | WER% | Замены | Вставки | Удаления | Всего ошибок | Размер |
|---|---|---|---|---|---|---|
| Qwen3 0.6B 8-bit | 2.80 | 1111 | 92 | 268 | 1471 | 960 МБ |
| Qwen3 0.6B 4-bit | 3.34 | 1323 | 123 | 308 | 1754 | 675 МБ |
| Дельта | +0.54 | +212 | +31 | +40 | +283 | -30% |
| Parakeet TDT INT8 | 2.74 | 990 | 125 | 308 | 1423 | 634 МБ |
Qwen3-ASR 1.7B 8-bit достигает 2.35% WER — превосходит Whisper Large v3 Turbo (2.5%) и Whisper Large v3 (2.7%), работая при этом в 11 раз быстрее реального времени на Apple Silicon.
TTS — разборчивость круговой проверки
Синтезировать текст, затем транскрибировать аудио обратно через Qwen3-ASR 0.6B и вычислить WER относительно исходного текста. Оценено на 30 встроенных английских диалоговых фразах.
| Движок | Модель | Параметры | Размер | WER% | RTF |
|---|---|---|---|---|---|
| CosyVoice3 | 0.5B 4-bit | 500M | ~1.9 ГБ | 3.25 | 0.59 |
| Qwen3-TTS | 1.7B 4-bit | 1.7B | ~2.3 ГБ | 3.47 | 0.79 |
| Qwen3-TTS | 1.7B 8-bit | 1.7B | ~3.5 ГБ | 3.66 | 0.85 |
| Kokoro-82M | CoreML | 82M | ~170 МБ | 3.90 | 0.17 |
| Qwen3-TTS | 0.6B 8-bit | 600M | ~960 МБ | 9.74 | 0.76 |
| Qwen3-TTS | 0.6B 4-bit | 600M | ~675 МБ | 15.58 | 0.76 |
Разбивка задержки (Qwen3-TTS)
| Этап | Время | % от общего | Описание |
|---|---|---|---|
| Embed | 1-3 мс | <1% | Эмбеддинг текста (TTFT) |
| Generate | 2-6 с | ~92% | Авторегрессивные codec-токены |
| Decode | 244-457 мс | ~8% | Codec-декодер в waveform |
Все TTS-движки работают быстрее реального времени (RTF < 1.0). CosyVoice3 лидирует по разборчивости (3.25% WER). Kokoro — самый быстрый (RTF 0.17) при размере всего 170 МБ.
VAD — точность детекции
Оценка на FLEURS (10 языков, 250 файлов)
Оценено относительно референса Python FireRedVAD при одном и том же пороге.
| Движок | Параметры | Бэкенд | F1% | FAR% | MR% | RTF |
|---|---|---|---|---|---|---|
| FireRedVAD | 588K | CoreML (ANE) | 99.12 | 2.52 | 0.47 | 0.007 |
| Silero v5 | 309K | CoreML (ANE) | 95.13 | 15.76 | 1.89 | 0.022 |
| Silero v5 | 309K | MLX (GPU) | 95.11 | 15.85 | 1.89 | 0.027 |
| Pyannote | 1.5M | MLX (GPU) | 94.86 | 14.71 | 2.92 | 0.358 |
Оценка на VoxConverse (многоспикерный)
5 многоспикерных разговорных файлов, оценка с разрешением кадра 10 мс.
| Движок | Параметры | Бэкенд | F1% | FAR% | MR% | RTF |
|---|---|---|---|---|---|---|
| Pyannote | 1.5M | MLX (GPU) | 98.22 | 50.09 | 0.19 | 0.358 |
| Silero v5 | 309K | CoreML (ANE) | 97.52 | 33.29 | 2.69 | 0.022 |
| Silero v5 | 309K | MLX (GPU) | 95.98 | 21.02 | 5.88 | 0.027 |
| FireRedVAD | 588K | CoreML (ANE) | 94.21 | 40.12 | 5.05 | 0.007 |
Сравнение с опубликованными значениями
| Модель | F1% | FAR% | MR% | Параметры | Датасет |
|---|---|---|---|---|---|
| Pyannote (наш) | 98.22 | 50.09 | 0.19 | 1.5M | VoxConverse |
| FireRedVAD (статья) | 97.57 | 2.69 | 3.62 | 588K | FLEURS-VAD-102 |
| Silero (наш) | 95.98 | 21.02 | 5.88 | 309K | VoxConverse |
| Silero-VAD (статья) | 95.95 | 9.41 | 3.95 | 309K | FLEURS-VAD-102 |
| FireRedVAD (наш) | 94.21 | 69.33 | 5.05 | 588K | VoxConverse |
FireRedVAD достигает 99.12% F1 на FLEURS с наименьшей частотой ложных срабатываний (2.52%) и работает в 135 раз быстрее реального времени. Silero v5 — лучший вариант для потокового режима при 32 мс на чанк.
Эмбеддинги спикеров
Задержка извлечения
Аудиоклип 20 секунд, 10 итераций после прогрева.
| Модель | Dim | Бэкенд | Задержка |
|---|---|---|---|
| CAM++ (3D-Speaker) | 192 | CoreML (ANE) | 12 мс |
| WeSpeaker ResNet34-LM | 256 | MLX (GPU) | 64 мс |
| WeSpeaker ResNet34-LM | 256 | CoreML (ANE) | 143 мс |
Качество эмбеддингов (VoxConverse)
Косинусное сходство между сегментными эмбеддингами из 5 многоспикерных записей. Большая разделимость = лучшее различение спикеров.
| Модель | Бэкенд | Внутри спикера | Между спикерами | Разделимость |
|---|---|---|---|---|
| WeSpeaker | MLX | 0.726 | 0.142 | 0.584 |
| WeSpeaker | CoreML | 0.726 | 0.143 | 0.582 |
| CAM++ | CoreML | 0.723 | 0.395 | 0.328 |
Все три движка совпадают с Python-референсом pyannote (разделимость 0.577, косинусное сходство >0.96). WeSpeaker достигает 0.584 разделимости как на MLX, так и на CoreML. CAM++ работает в 5 раз быстрее (12 мс против 65 мс) с хорошей разделимостью (0.328).
Разделение источников — SDR
Signal-to-Distortion Ratio (SDR) на MUSDB18-HQ (50 полнометражных тестовых треков, стерео 44.1 кГц). Больше — лучше. Два размера модели: HQ (8.9M параметров/стем) и L (28.3M параметров/стем).
| Цель | UMX-HQ (MLX) | UMX-L (MLX) | UMX-HQ (опубликованный) |
|---|---|---|---|
| Вокал | 6.23 дБ | ~10.5 дБ | 6.32 дБ |
| Ударные | 6.44 дБ | ~7.0 дБ | 5.73 дБ |
| Бас | 4.56 дБ | ~5.5 дБ | 5.23 дБ |
| Прочее | 3.41 дБ | ~4.5 дБ | 4.02 дБ |
| Модель | Параметры/стем | Размер | RTF | Скорость |
|---|---|---|---|---|
| Open-Unmix HQ | 8.9M | 136 МБ | 0.23 | 4.3x быстрее реального времени |
| Open-Unmix L | 28.3M | 432 МБ | 0.21 | 4.8x быстрее реального времени |
UMX-HQ совпадает с опубликованным SDR по вокалу и ударным при лёгкой модели 8.9M. UMX-L даёт улучшение +2–4 дБ при размере в 3 раза большем. Обе включают многоканальную пост-фильтрацию Wiener EM и работают быстрее реального времени на Apple Silicon.
Воспроизведение
# ASR-бенчмарки (LibriSpeech test-clean)
make build
python scripts/benchmark_asr.py --batch --engine qwen3 --model 0.6B
python scripts/benchmark_asr.py --batch --engine qwen3 --model 0.6B-8bit
python scripts/benchmark_asr.py --batch --engine parakeet
python scripts/benchmark_asr.py --batch --engine parakeet --model int8
# Многоязычный ASR (FLEURS, авто-загрузка)
python scripts/benchmark_asr.py --dataset fleurs --language en_us --batch
# Круговая проверка TTS
python scripts/benchmark_tts.py --compare
# Сравнение VAD
python scripts/benchmark_vad.py --compare
# Сравнение эмбеддингов спикеров
python scripts/benchmark_speaker.py --compare
# Разделение источников (MUSDB18-HQ, скачайте с Zenodo)
python scripts/benchmark_separation.py --data-dir benchmarks/data/musdb18-hq