Транскрибация аудио в текст решена давно и решена хорошо: слова распознаются почти без ошибок. Нерешённым остаётся другое — когда говорящих несколько, из текста пропадает, кто именно что сказал. Для интервью, совещания или приёма это и есть половина смысла записи.
Разделение по спикерам называется диаризацией. В боте оно включается одним переключателем и работает на любых загруженных файлах. Дальше — как это выглядит на слух и в тексте.
Послушайте запись
Одиннадцать секунд, три человека договариваются о переносе созвона. Попробуйте на слух удержать, кто из них что предложил.
Что даёт обычная расшифровка
Слова распознаны верно, все до единого. Но восстановить, кто на что согласился, по этому тексту невозможно:
Давай перенесём созвон на вторник. Не выйдет. Во вторник я в Ереване. Тогда среда… В среду у нас демо для клиента… Значит, четверг утром… Четверг 11. Записал.
А что даёт разделение по спикерам
- Спикер 1: Давай перенесём созвон на вторник.
- Спикер 2: Не выйдет, во вторник я в Ереване.
- Спикер 1: Тогда среда?
- Спикер 3: В среду у нас демо для клиента.
- Спикер 2: Значит четверг, утром.
- Спикер 1: Четверг, одиннадцать. Записал.
Тот же файл, то же распознавание. Разница только в том, что рядом отработала вторая система — та, что различает голоса.
Что приходит на самом деле
Метка говорящего ставится не на реплику, а на каждое слово — со своими таймкодами:
{ "text": "Давай", "start": 0.08, "end": 0.31, "speaker_id": "speaker_0" }
{ "text": "перенесём", "start": 0.35, "end": 0.79, "speaker_id": "speaker_0" }
{ "text": "Не", "start": 2.11, "end": 2.24, "speaker_id": "speaker_1" }Реплики из этого собираются склейкой подряд идущих слов с одинаковой меткой. Именно поэтому ловится перебивание: граница проходит там, где реально сменился голос, а не по концу предложения.
Насколько точно
Запись я сделал сам, поэтому знаю правильный ответ посекундно: кто говорит в каждый момент. Значит ошибку можно посчитать, а не оценить на слух. Результат: 3 из 3 голосов найдено, 6 из 6 реплик подписано верно.
Теперь сложный случай
Первый пример был вежливым: люди говорят по очереди, голоса разные. В жизни так не бывает. Вот запись потруднее — два похожих женских голоса, короткие реплики, односложное «Нет» и настоящее перебивание: вторая реплика начинается, не дожидаясь конца первой.
Без разметки: «Смета выросла на 20%. Подожди Основное — это логистика. А склад мы считали? Нет. Тогда пересчитываем все заново.» Перебивание здесь исчезает вовсе — «Подожди» слипается со следующей фразой в одно предложение.
С разметкой все шесть реплик ушли к правильным людям, включая перебивание и односложное «Нет»: 2 из 2 голосов, 6 из 6 реплик.
Какова точность разметки
Первый вопрос любого, кто выбирает инструмент. Я свёл все четыре записи в один замер — не по репликам, а по каждому слову: тому ли говорящему оно приписано.
| Запись | Слов | Верно | Реплики |
|---|---|---|---|
| Три голоса, по очереди | 27 | 100% | 6/6 |
| Два похожих голоса, перебивание | 18 | 94.4% | 6/6 |
| Три голоса, английский | 29 | 100% | 6/6 |
| Перебивание, английский | 23 | 91.3% | 5/6 |
Суммарно 96.9% слов приписаны верно — 94 из 97, и 23 реплики из 24. Отраслевая метрика для этого называется DER, ошибка диаризации; мой замер — её упрощённый вариант, без учёта пауз и наложений как отдельных категорий.
Важнее среднего то, где ошибки. Все до единой — в записях с перебиванием. Там, где люди говорят по очереди, обе записи дали ровно 100%. То есть точность определяет не язык и не число говорящих, а то, накладываются ли голоса друг на друга.
Почему одни модели это умеют, а другие нет
Это не забытая галочка в настройках. Модель распознавания речи превращает звук в буквы и оптимизирована ровно на одно — угадать слова. Тембр, высота, манера для неё помеха, от которой надо избавиться, чтобы «привет» басом и «привет» дискантом дали одинаковый ответ.
То есть такая модель намеренно выбрасывает ту самую информацию, по которой можно отличить одного человека от другого. Просить у неё метки говорящих — всё равно что просить у синхронного переводчика описать голос выступавшего: он передавал смысл, а не звук.
Разделение по спикерам делает вторая система, которая работает параллельно с распознаванием: она считает «отпечаток» голоса на каждом отрезке — что-то вроде отпечатка пальца, только для звука — и группирует похожие. Сколько получилось групп, столько и говорящих. Есть она у провайдера — есть разметка. Нет — нет.
Какие движки в боте это умеют
| Движок в боте | Спикеры | Почему |
|---|---|---|
| 🎯 Точная | Есть | Модель отдаёт метку говорящего на каждое слово: рядом с распознаванием работает система различения голосов |
| 🚀 Быстрая | Нет | Модель не различает голоса вовсе — тембр для неё мешающий признак. Зато это самый быстрый и дешёвый вариант |
| 🪄 Эксклюзивная | Нет | Модель отдаёт только текст, без меток говорящих и таймкодов |
Поэтому переключатель «Диаризация» появляется только при выбранной «Точной»: это не наша экономия, а свойство моделей.
Как проверить качество на своей записи
Не верьте чужим процентам, включая мои — проверить можно за десять минут и без единого инструмента.
- Возьмите запись, где вы точно знаете, кто говорит. Годится любая: планёрка, звонок, интервью, которое вы вели сами.
- Расшифруйте её с включённой диаризацией.
- Пройдите по репликам и отметьте те, где метка неверная. Простая оценка — доля ошибочных реплик от всех. Точнее считать по словам: разметка ставится на каждое слово, поэтому перебивание может быть разрезано в середине фразы.
Берите не удобный пример, а худший из своих: там, где перебивают, где голоса похожи, где шумно. По простому диалогу вы получите свои 100% и ничего не узнаете — а по трудному сразу поймёте, годится ли инструмент для вашей задачи.
Отраслевая метрика называется DER — diarization error rate. Она строже: считает не только неверно приписанную речь, но и пропущенную, и придуманную, и отдельно наказывает за наложения. Для выбора инструмента хватает простого счёта по репликам.
Кому это нужно на практике
- Журналистам. Расшифровали интервью — и сразу видно, где ваш вопрос, а где ответ собеседника. Не нужно переслушивать запись, чтобы понять, чью фразу вы цитируете.
- Тем, кто ведёт совещания. Кто что пообещал и к какому сроку — это и есть содержание протокола. В сплошном тексте оно теряется.
- Исследователям и рекрутерам. Десяток интервью подряд, из каждого нужны реплики собеседника, а не свои.
- Юристам и врачам. Там, где важно не только что сказано, но и кем.
Как включить
- Откройте настройки бота и нажмите «Распознавание».
- Выберите «🎯 Точная» — на кнопке видно и цену за минуту.
- Рядом появится переключатель «Диаризация» — включите его.
- Пришлите файл: аудио, видео или голосовое. Расшифровка придёт уже разбитой на реплики.
Работает с загруженными файлами любой длины, а не только с голосовыми в чате. Формат значения не имеет: mp3, wav, m4a, ogg, видео. Открыть бота — 200 кредитов каждый месяц бесплатно.
Честно про ограничения
Обе записи в примерах короткие и сделаны синтезом речи — это благоприятные условия, и цифры «6 из 6» получены именно на них. Синтетика взята не для красоты: только так я знаю правильный ответ посекундно и могу посчитать ошибку, а не оценить её на слух.
На часовом совещании в переговорке, где четыре человека, шум и телефон на столе, точность будет ниже. Проверяйте на своей записи: одна расшифровка стоит дёшево, а понять, годится ли, можно только на своём материале.