Whisper Notes теперь определяет говорящих

28 июля 2026 г.
·
8 min read
·Whisper Notes Team

Транскрипция показывает, что было сказано. В интервью, встречах и подкастах не менее важно понимать, кто именно это сказал. В обработке речи эта задача называется диаризацией спикеров. Начиная с версий iPhone 1.8.5, Mac App Store 1.3.2 и Mac DMG 1.5.1, Whisper Notes выполняет диаризацию целиком на устройстве.

Ниже мы разберём устройство функции, покажем результаты теста с облачной эталонной разметкой и честно опишем сценарий, который не удалось исправить одной лишь заменой модели, — вместе с нашим инженерным решением.

Что делает диаризация

Откройте заметку — собственную запись, импортированный аудио- или видеофайл либо запись встречи — и нажмите кнопку говорящих. Через несколько секунд у каждого абзаца появятся метка спикера и временная отметка.

Локальная диаризация спикеров в Whisper Notes для Mac: транскрипция подкаста с метками говорящих и временными отметками Метки спикеров в Whisper Notes для iPhone: имена говорящих и временные отметки в транскрипции

Метки говорящих на Mac и iPhone. Нажатие на предложение переводит воспроизведение к нужному моменту.

Сначала используются имена «Спикер 1» и «Спикер 2». Достаточно переименовать метку один раз, чтобы она изменилась во всей транскрипции. Нажатие на любое предложение сразу переводит аудио к этому моменту — цитату легко сверить с исходной речью.

Переименование говорящего в Whisper Notes: метка меняется во всей транскрипции

После переименования метка обновляется в каждом абзаце заметки.

Для записей встреч определение говорящих запускается автоматически после завершения звонка; это можно отключить в настройках. Метки сохраняются при экспорте: команда Копировать транскрипцию с говорящими переносит их в буфер обмена, а файлы SRT и VTT — в субтитры.

Диаризация анализирует голоса, а не слова, поэтому одинаково работает для более чем 100 языков, которые приложение умеет транскрибировать.

Модель 19 MB на Neural Engine

Диаризация отвечает на вопрос «кто и когда говорил» в три этапа. Аудио делится на фрагменты с речью. Каждый фрагмент превращается в голосовой отпечаток — компактный вектор, описывающий сам голос, а не слова. Затем отпечатки группируются: фрагменты в одном кластере получают одну метку.

Whisper Notes использует конвейер pyannote community-1, преобразованный в Core ML, поэтому оба этапа выполняются на Neural Engine. Модель загружается один раз и занимает 19 MB; разговор длиной 5.7 минуты обрабатывается на Mac с процессором серии M за 2–4 секунды.

Аудио → речевые фрагменты → голосовые отпечатки → кластеры → метки

Каждый этап выполняется на устройстве.

Для диаризации это особенно важно. Голосовой отпечаток — биометрический признак: он идентифицирует человека подобно отпечатку пальца. При локальной обработке отпечатки ваши, коллег и участников интервью вычисляются, группируются и удаляются на устройстве. Они никуда не отправляются.

Что мы измеряли

Для диаризации мы используем постоянный тест из двух файлов. Эталонную разметку создаёт облачный сервис распознавания речи и диаризации ElevenLabs, после чего мы проверяем её вручную. При оценке каждые 10 ms речи относятся к говорящему и выбирается лучшее соответствие результата эталону. Два файла — небольшая выборка, поэтому цифры показывают порядок качества, но не претендуют на окончательный вывод.

Первый файл отражает типичный случай: пятиминутный англоязычный подкаст, два человека с хорошо различимыми голосами. Так выглядят большинство интервью, подкастов и встреч один на один.

Английский подкаст с двумя говорящими (5 мин) Результат
Точность на уровне кадров (шаг 10 ms) 96.7%
Точность на уровне предложений (то, что читает пользователь) 99.1%
Время обработки на Neural Engine серии M 2–4 с

Оставшиеся 0.9% — три смещения границ общей длительностью 3.4 секунды, то есть в пределах разрешения самой эталонной разметки. На таком материале локальный результат соответствует облачному сервису, создавшему эталон.

Сложный случай

Второй файл намеренно сложный: два похожих мужских голоса в помещении с реверберацией и ведущий, который перебивает гостя 19 раз — в среднем на 2.3 секунды. Гость говорит 272 секунды, ведущий — 43. Именно такой акустический профиль ломает диаризацию на любом языке: похожие голоса обмениваются короткими репликами.

Автоматическая кластеризация здесь схлопывается. Голосовые отпечатки настолько близки, что алгоритм объединяет их и присваивает почти весь разговор одной метке. Запись оказалась китайским интервью, что позволило проверить очевидную гипотезу: языковая специализация модели даст лучший результат. Через конвейер CPU мы запустили две модели, специально обученные на китайской речи:

Модель Английский подкаст Сложный случай* Время (аудио 5.7 мин)
pyannote community-1 (наша модель, Neural Engine) 96.7% 81–82% 2–4 с
CAM++ (обучена на китайском, CPU) 93.9% 81.2% 36–103 с
ERes2NetV2 (обучена на китайском, CPU) 80.5% 220–290 с

* Покадровая точность на сложном файле при заданном числе говорящих. Без него все модели сходятся к одному говорящему.

Обе модели схлопываются одинаково, хотя требуют в 10–100 раз больше вычислений. Трудность носит акустический, а не языковой характер: предел задаёт то, что современные голосовые эмбеддинги способны различить на любом языке.

Поэтому мы дали конвейеру факт, который он не может надёжно вывести сам: число людей в комнате. Если указать число говорящих в меню — от 2 до 6, — точность предложений в сложном файле поднимается после схлопывания до 89%. Для обычных записей по умолчанию остаётся автоматическое определение.

Повторное определение говорящих в Whisper Notes с точным числом спикеров и экспорт SRT и VTT с метками

Повторный запуск с точным числом говорящих. В том же меню экспортируются SRT и VTT с метками спикеров.

Уточнение коротких реплик

После фиксации числа говорящих примерно половина оставшихся ошибок пришлась на реплики короче трёх секунд. В двухсекундном фрагменте модели эмбеддингов не хватает сигнала, а при быстрой смене реплик голосовой отпечаток захватывает часть соседнего говорящего.

После кластеризации конвейер повторно проверяет каждое предложение короче 3.5 секунды: заново вычисляет голосовой отпечаток по маске, точно охватывающей кадры предложения, сравнивает его с опорным отпечатком каждого говорящего — средним по его самым длинным репликам — и меняет метку только при убедительном преимуществе. Используется та же модель, дополнительной загрузки нет.

Итоговая точность предложений До уточнения После
Сложный случай (число задано) 89.0% 94.8%
Английский подкаст (автоматически) 98.5% 99.1%

Порог выбран консервативно: на двух файлах уточнение изменило 21 метку и не внесло ни одной новой ошибки.

Ограничения

• Метки появляются после окончания записи, а не во время звонка. Если нужны живые субтитры с именами до завершения встречи, лучше подойдёт облачный сервис вроде Otter или Notta.

• При одновременной речи каждому предложению назначается одна метка.

• Похожие голоса по-прежнему сложны. 94.8% на нашем трудном файле — текущий предел при указанном числе говорящих, а не решённая задача.

Доступность

Определение говорящих входит в разовую покупку за $6.99 вместе с тремя движками транскрипции — Parakeet V3, Whisper Large V3 Turbo и SenseVoice — и локальным ИИ-редактированием. Отдельного тарифа и учётной записи нет.

iPhone: App Store, версия 1.8.5 или новее.

Mac App Store: версия 1.3.2 или новее.

Прямая загрузка для Mac (DMG): версия 1.5.1 или новее с сайта whispernotes.app, доступна бесплатная пробная версия.

Как устроена сама запись встреч, читайте в нашей статье об офлайн-транскрипции встреч.