Методика контрольного прогона ASR
Десять русских записей со словами и аббревиатурами из технических команд. Три синтетических голоса Piper произносят термины так, как они звучат в русской фразе. Эталон использует исходное латинское написание. В наборе по две записи на чистом звуке и при SNR 20, 12, 6 и 0 дБ. Шум синтетический: розовый, имитация вентилятора и низкочастотный нестационарный фон.
Воспроизводимый вход сохранён в audio/ и corpus.json. WAV — mono PCM16
16 кГц. Для каждого файла клиент Compare передаёт один полный диапазон через
существующую диагностику и использует одинаковые Opus-пакеты для моделей.
Фиксированный диапазон исключает влияние разбиения VAD на сравнение. Исходный
PCM проверен по SHA-256. Для моделей worker сравниваются и хеши PCM после
подготовки входа. LinTO не возвращает хеш входа модели.
WER и CER считаются расстоянием Левенштейна. Как в Compare, нормализуются NFC,
регистр, пунктуация и пробелы. CER исключает пробелы. Цифры, буква «ё» и
латинское написание сохраняются. Поэтому «джейсон» вместо JSON считается
ошибкой записи термина. Термины дополнительно оценены по точному совпадению
нормализованных токенов. Общие WER и CER делятся на суммарное число эталонных
слов и символов по всем записям.
Чистое время берётся из timings.asr.worker_decode_ms диагностического ответа.
Для LinTO это переданный backend показатель recognition_ms. Загрузка модели,
очередь, кодирование и сетевой обмен учитываются отдельно. У каждой успешной
записи один вызов модели. В отчёте приведены медиана и максимум для десяти
разных входов. Это не оценка хвостов распределения и не сравнение на живой речи.
Победитель качества определяется по наименьшему WER среди моделей с полным
покрытием, при равенстве по CER, затем по медиане времени. Отдельно сравниваются
точное написание терминов и компромисс качества со скоростью. Сырые ответы,
включая неуспешные попытки, сохраняются в raw.jsonl. Итоговая таблица
использует прогоны после поставки Unified. Предварительные результаты семи
моделей в before-rollout.jsonl в рейтинг не входят. Прогон Unified на CPU
с исходным WAV и FP32 вынесен в unified-cpu.json. Нормализованные
показатели вычисляет score.py.