- Дата публикации
Apple SpeechAnalyzer обошёл Whisper на Mac и iPhone: тесты, цифры и кому это реально нужно
Что нового
Apple тихо, без громких презентаций, сменила старый API распознавания речи SFSpeechRecognizer на пару новых интерфейсов — SpeechAnalyzer и SpeechTranscriber в iOS 26 и macOS 26.
Команда Inscribe прогнала новый движок по классическому бенчмарку LibriSpeech и сравнила его с Whisper и старым API Apple. Все движки работали полностью на устройстве на Mac с Apple M2 Pro, 32 ГБ, macOS 26.5.1.
Ключевые цифры по точности (метрика — WER, word error rate, меньше — лучше):
LibriSpeech test-clean (чистая речь, 2620 фрагментов):
- Apple SpeechAnalyzer — 2,12% WER
- Whisper Small (CoreML через WhisperKit) — 3,74% WER, размер модели ~460 МБ
- Whisper Base — 5,42% WER, ~140 МБ
- Whisper Tiny — 7,88% WER, ~40 МБ
- Apple SFSpeechRecognizer (legacy) — 9,02% WER
LibriSpeech test-other (сложная и шумная речь, 2939 фрагментов):
- Apple SpeechAnalyzer — 4,56% WER
- Whisper Small — 7,95% WER
- Whisper Base — 12,51% WER
- Whisper Tiny — 17,04% WER
- SFSpeechRecognizer (legacy) — 16,25% WER
Если упростить:
- Новый движок Apple примерно в 3,5–4 раза точнее старого SFSpeechRecognizer на той же аудиозаписи.
- SpeechAnalyzer обгоняет Whisper Small по точности на чистой и шумной речи и при этом работает примерно в 3 раза быстрее на секунду аудио.
По скорости:
- Все движки на M2 Pro работали быстрее реального времени — от 12× до 40×.
- Это значит, что 1 час аудио превращается в текст примерно за 1,5–5 минут прямо на устройстве.
- SpeechAnalyzer — примерно в 3 раза быстрее Whisper Small при лучшей точности.
Что ещё изменилось по сравнению с SFSpeechRecognizer:
- Новый API выдаёт уже оформленный текст — с пунктуацией и правильным регистром.
- Старый SFSpeechRecognizer чаще давал «сырой» текст и при этом ошибался в 4 раза чаще на длинной записи.
По языкам:
- SpeechTranscriber поддерживает около 30 локалей.
- Whisper по-прежнему покрывает 100+ языков, так что по многоязычности он впереди.
Как это работает
Inscribe использует оба стека параллельно — SpeechAnalyzer / SpeechTranscriber от Apple и три модели Whisper (Tiny, Base, Small) через WhisperKit CoreML. Это позволяет запускать все движки через одни и те же продакшн-кодовые пути на одной и той же машине и одном и том же аудио.
Бенчмарк и проверка честности
Чтобы результатам можно было доверять, Inscribe построила тест так:
-
Один и тот же корпус — LibriSpeech
- test-clean: 2620 фрагментов чистой, хорошо записанной речи.
- test-other: 2939 более сложных, шумных и акцентированных фрагментов.
Всего — 5559 высказываний.
-
Одинаковая нормализация текста
Оригинальные транскрипты LibriSpeech — заглавными буквами, без пунктуации, числа прописью. Современные движки выдают:- пунктуацию,
- строчные и заглавные буквы,
- цифры,
- сокращения.
Чтобы не штрафовать движок за «красивый» текст, обе стороны прогоняют через один и тот же нормализатор, который:
- приводить регистр,
- убирает пунктуацию,
- переводит цифры в слова,
- разворачивает или унифицирует сокращения.
Нормализатор повторяет подход английского нормализатора OpenAI для Whisper.
-
Корпусный WER, а не средний по фрагментам
WER считают как общее число ошибок / общее число слов во всём тестовом наборе.
Это не даёт коротким фразам (например, односложным командам) влиять на итоговую метрику сильнее длинных предложений. -
Полностью on-device, без «подмешивания» облака
- По умолчанию SFSpeechRecognizer отправляет звук на серверы Apple.
- Для теста Inscribe жёстко принудила локальный режим.
- Если движок пытался уйти в облако, тестовый раннер просто отказывался запускаться, а не подменял результаты.
Причина простая: сравнение имеет смысл только когда все движки работают на одном железе, без внешних сервисов.
-
Ошибки не скрывают
Если движок на конкретном фрагменте не вернул вообще ничего, этот фрагмент получает 100% WER.
В тесте это случилось 1 раз из 27 795 транскрипций (старый SFSpeechRecognizer, тестовый набор test-other).
Сопоставление с числами OpenAI
Чтобы проверить, что бенчмарк корректно считает ошибки Whisper, Inscribe сравнила свои результаты с опубликованными числами OpenAI по тем же моделям и тому же корпусу.
Сравнение WER для Whisper (наши vs OpenAI):
- Whisper Tiny, test-clean: 7,88% vs 7,6% у OpenAI → +0,28 п.п.
- Whisper Base, test-clean: 5,42% vs 5,0% → +0,42 п.п.
- Whisper Small, test-clean: 3,74% vs 3,4% → +0,34 п.п.
- Whisper Tiny, test-other: 17,04% vs 16,9% → +0,14 п.п.
- Whisper Base, test-other: 12,51% vs 12,4% → +0,11 п.п.
- Whisper Small, test-other: 7,95% vs 7,6% → +0,35 п.п.
Во всех случаях сдвиг небольшой и положительный. Инженеры объясняют это двумя факторами:
- чуть более строгая нормализация текста;
- квантизация моделей Whisper в CoreML по сравнению с эталонной GPU-версией.
Это важно: тот же пайплайн нормализации и подсчёта ошибок использовали для Apple SpeechAnalyzer и SFSpeechRecognizer. То есть методика, которая воспроизводит результаты OpenAI, используется и для колонок, которые никто больше проверить не может.
Открытые данные
Чтобы любой разработчик мог проверить подсчёты, Inscribe выложила сырые данные:
summary.json— все 10 измерений в машиночитаемом виде (около 3 КБ).raw-transcripts-apple.json.gz— гипотезы SpeechAnalyzer по всем 5559 фрагментам (около 620 КБ).raw-transcripts-legacy.json.gz— гипотезы SFSpeechRecognizer по тем же фрагментам (около 620 КБ).
Можно взять эти файлы, прогнать через свой нормализатор и пересчитать WER.
Неожиданный бонус: баг в продакшене
Во время сборки бенчмарка Inscribe нашла баг в своём продукте:
- при импорте файлов аудио подавали в SpeechAnalyzer,
- закрывали входной поток,
- но не вызывали
finalizeAndFinishThroughEndOfInput().
Без этого вызова SpeechAnalyzer не возвращал финальный результат, и импорт зависал навсегда. Баг долго не всплывал, потому что режим Auto по умолчанию выбирал Whisper, а не движки Apple.
После бенчмарка Inscribe исправила это и обновила релиз. Это хороший пример, как детальное тестирование движка вылавливает проблемы в самом приложении.
Что это значит для вас
Если вы разработчик под iOS / macOS
1. Если вы всё ещё используете SFSpeechRecognizer — пора мигрировать.
Цифры по LibriSpeech:
- 9,02% → 2,12% WER на чистой речи.
- 16,25% → 4,56% WER на шумной речи.
То есть на часовой встрече, записанной с нормальным микрофоном:
- транскрипция через SFSpeechRecognizer даст примерно в 4 раза больше неправильных слов, чем через SpeechAnalyzer.
- При этом новый API ещё и быстрее, и выдаёт аккуратный текст с пунктуацией.
Если ваше приложение делает что-то длиннее голосовой команды — встречи, лекции, подкасты, диктовку текстов — переход на SpeechAnalyzer окупается только за счёт точности.
2. Если вы уже используете Whisper на устройстве
Для английской речи на актуальных iPhone и Mac ситуация изменилась:
- раньше Whisper Small был почти «дефолтным» выбором для максимальной точности;
- теперь SpeechAnalyzer показывает меньший WER на LibriSpeech и работает в 3 раза быстрее на том же железе.
Inscribe отреагировала на это так:
- в режиме Auto приложение теперь предпочитает SpeechAnalyzer для поддерживаемых языков;
- Whisper остаётся движком по умолчанию для остальных языков.
Если вы делаете продукт только для iOS/macOS и вам нужен английский офлайн-транскрипт, имеет смысл:
- использовать SpeechAnalyzer как основной движок;
- держать Whisper как резерв для языков, которых нет в SpeechTranscriber.
3. Где новый API особенно полезен
- Приложения для заметок и диктовки: быстрый и точный текст прямо на устройстве, без отправки аудио в облако.
- Сервисы для протоколирования встреч: часовой звонок превращается в текст за несколько минут, а ошибок заметно меньше, чем у старого API.
- Продукты с повышенными требованиями к приватности: Inscribe подчёркивает, что не загружает ни один из 5559 фрагментов в облако — всё работает локально.
4. Когда SpeechAnalyzer не подойдёт
- Если вам нужен широкий набор языков (100+), включая редкие, — SpeechTranscriber с его ~30 локалями пока не заменяет Whisper.
- Если вы таргетируете Android, Windows, Linux или старые версии iOS/macOS без 26-й версии, SpeechAnalyzer вам недоступен.
- Если ваша задача — тяжёлые акценты, много говорящих, далекий микрофон, LibriSpeech даёт только ориентир. Вам всё равно придётся собирать свой корпус и тестировать.
Доступность в России
Apple поставляет iOS и macOS в Россию без официальной локальной поддержки, но устройства и обновления операционных систем доступны.
SpeechAnalyzer и SpeechTranscriber встроены в iOS 26 и macOS 26. Для их использования не нужен VPN, так как распознавание в тесте работало полностью офлайн.
Если вы публикуете приложение в российском сегменте, имеет смысл:
- проверить, как новый API ведёт себя с русским языком (в бенчмарке тестировали только английский);
- заложить в архитектуру fallback на Whisper или другие движки для неподдерживаемых локалей.
Место на рынке
SpeechAnalyzer против Whisper
По результатам теста на английском LibriSpeech на Apple M2 Pro:
Точность (WER, меньше — лучше):
- SpeechAnalyzer: 2,12% (clean) / 4,56% (other).
- Whisper Small: 3,74% / 7,95%.
- Whisper Base: 5,42% / 12,51%.
- Whisper Tiny: 7,88% / 17,04%.
Скорость:
- Все движки: 12–40× быстрее реального времени.
- SpeechAnalyzer: примерно в 3 раза быстрее Whisper Small на секунду аудио при лучшей точности.
Размеры моделей Whisper (для ориентира по ресурсам):
- Whisper Tiny — ~40 МБ.
- Whisper Base — ~140 МБ.
- Whisper Small — ~460 МБ.
У SpeechAnalyzer как системного движка нет отдельной цифры по размеру модели — он встроен в ОС. Но по итогам теста на одном и том же железе видно, что он экономнее по вычислениям, чем Whisper Small.
Языки:
- SpeechTranscriber — около 30 локалей.
- Whisper — 100+ языков.
Вывод по позиционированию:
- Для английского on-device на современном iPhone или Mac сейчас самый сильный вариант по сочетанию точности и скорости — встроенный SpeechAnalyzer.
- Для многоязычных приложений или кроссплатформенных решений Whisper остаётся основным кандидатом: он работает на любом железе и закрывает значительно больше языков.
SpeechAnalyzer против SFSpeechRecognizer
На том же корпусе LibriSpeech новый API выглядит как жёсткий апгрейд:
Чистая речь (test-clean):
- SFSpeechRecognizer: 9,02% WER.
- SpeechAnalyzer: 2,12% WER.
Шумная речь (test-other):
- SFSpeechRecognizer: 16,25% WER.
- SpeechAnalyzer: 4,56% WER.
То есть новый движок:
- в 3,5–4 раза точнее на тех же данных;
- выдаёт лучше оформленный текст;
- работает полностью на устройстве и корректно сравнивается с локальными моделями.
Для экосистемы iOS/macOS это означает, что стандартный системный выбор для диктовки и транскрипции меняется. Всё, что ещё опирается на SFSpeechRecognizer для длительных задач, теряет качество без какой-либо выгоды.
Ограничения и что ещё нужно знать
- Только английский в тесте. LibriSpeech — корпус английской прочитанной речи. Никаких цифр по русскому, китайскому или другим языкам здесь нет.
- Тип речи — аудиокниги, а не митинги. Это хорошо читаемый текст, а не хаотичный разговор нескольких людей в переговорке. Для реальных митингов, акцентов и плохих микрофонов нужен отдельный бенчмарк.
- Одна конфигурация железа. Все цифры по скорости относятся к M2 Pro, 32 ГБ, macOS 26.5.1. На других чипах Apple Silicon точность должна быть сопоставимой, а скорость — отличаться.
- Whisper в версии CoreML. В тесте использовали квантизованные модели через WhisperKit. Эталонная GPU-версия может дать немного другие числа, но расхождение уже отражено в сравнении с официальными данными OpenAI.
Если вы планируете строить продукт поверх этих движков, разумный шаг — повторить тест хотя бы на своём типе аудио: звонки, диктовки, лекции, подкасты. Но как стартовый ориентир для английского на Apple-устройствах этот бенчмарк даёт довольно чёткую картину: SpeechAnalyzer сместил Whisper с позиции «по умолчанию» для on-device транскрипции в экосистеме Apple.