Голосовой ввод со знаками препинания: кто их ставит и где подвох
Запятые при диктовке появляются одним из трёх способов. У каждого своя цена, а у самого удобного — ещё и подвох: модель, которая расставляет знаки, норовит заодно «улучшить» ваш текст.
Если вы когда-нибудь диктовали длинное сообщение, вы знаете, что текст без знаков читать тяжелее, чем слушать. Поэтому вопрос «ставит ли программа запятые» — один из первых, которые задают про голосовой ввод. Ответ зависит от того, кто именно их ставит.
Три способа получить знаки препинания
1. Проговаривать голосом
Самый старый способ: вы говорите «запятая», «точка», «новый абзац», и программа вставляет знак. Так работает встроенная диктовка macOS с русским языком: на странице Apple о доступности функций русского нет в списке языков с автоматической пунктуацией, а команды пунктуации на русском есть. Оговорка: страница доступности функций открывается версией для macOS 27, отдельной для 15 и 26 мы не нашли.
В Windows 11 у голосового ввода Win+H есть пункт «Автоматическая вставка знаков препинания», но для каких языков он работает, Microsoft не пишет. Разбор голосового ввода Windows — отдельно.
Минус способа понятен: говорить «запятая» каждые пять слов утомительно, и мысль сбивается.
2. Распознаватель ставит сам
Современные модели распознавания речи выдают текст сразу с запятыми и точками. Модель, которой Doslovno распознаёт речь на вашем компьютере, делает это хорошо — но опирается в основном на паузы. Человек же делает паузы не только между мыслями: он набирает воздуха, подбирает слово. Пауза посреди фразы может превратиться в точку, и мысль рвётся пополам.
3. Отдельная вычитка языковой моделью
Третий способ — отдать распознанный текст языковой модели с просьбой расставить знаки по смыслу. Она видит всю фразу целиком, понимает, где кончается мысль, и ставит запятые там, где они нужны по правилам, а не там, где вы вдохнули. Для длинных диктовок это заметно лучше.
Подвох: модель хочет «улучшить» ваш текст
Языковые модели обучены писать гладко. Когда такую модель просят «расставь запятые», она часто делает больше, чем просили:
- заменяет слово синонимом, который ей кажется удачнее;
- переставляет слова «для благозвучия»;
- выбрасывает повторы и слова, которые сочла лишними;
- дописывает то, чего вы не говорили, — чтобы фраза выглядела законченной.
Для заметки себе это терпимо. Но голосовой ввод вставляет текст в письмо клиенту, в рабочий чат, в договор. Человек обычно не перечитывает то, что надиктовал, — он продолжает работать. Подменённое слово обнаружится уже после отправки.
Многие программы диктовки с ИИ подают это как достоинство: «чистый текст», «без лишних слов». Мы считаем это главным риском голосового ввода и построили защиту от него.
Как это устроено в Doslovno: сторож дословности
Когда языковая модель возвращает текст со знаками, Doslovno сравнивает её слова со сказанными — не «на глаз» и не по просьбе в инструкции, а механически, по спискам слов.
- Модель только расставила знаки и заглавные — её ответ принимается.
- Модель потеряла пару слов или дописала лишнее, но немного, — пропавшие слова возвращаются, выдуманные выбрасываются, знаки остаются.
- Расхождений слишком много — значит модель переписывала, а не расставляла знаки. Её ответ выбрасывается целиком, и вставляется текст, как его распознали.
Настоящий пример
Мы прочитали фразу синтетическим голосом macOS с двумя паузами посреди мысли и прогнали её через приложение — тем же путём, каким идёт обычная диктовка. Ниже — то, что вставилось бы в курсор, без единой правки.
Что здесь произошло:
- Паузы не порвали фразу. Распознаватель поставил запятые на месте обеих пауз и точку там, где закончилась мысль.
- Вычитку сторож отклонил. В журнале: «расхождений слишком много (5 из 34 слов) — похоже на переписывание». Модель изменила пять слов из тридцати четырёх, и приложение оставило текст таким, каким его распознало.
- Вместе с ответом модели ушли и её исправления. «Гуглокс» — ошибка распознавания на месте «гугл докс», а «в зуме» осталось кириллицей. Возможно, среди пяти изменённых слов модель как раз исправила их. Но отличить «исправила ослышку» от «заменила слово своим» механически нельзя — и мы выбираем ваши слова, даже когда догадка модели была бы верной.
Названия, которые встречаются у вас постоянно, чинит не модель, а словарь: поправили слово один раз — дальше приложение пишет его правильно само, без всякой вычитки.
Короткие и длинные диктовки
- Короче четырёх секунд — «да, давай в пятницу» — вычитки нет. Знаки ставит распознаватель, и вы не ждёте лишнего.
- Обычная диктовка — распознаватель, затем вычитка со сторожем.
- Длинный текст, примерно от двухсот слов — ещё и абзацы. Их расставляет отдельный шаг, который вообще не видит слов: модель получает пронумерованные предложения и возвращает только номера тех, с которых начинается новый абзац. Сами переносы ставит программа, поэтому изменить слова этот шаг не может физически.
А если переписать как раз нужно
Иногда нужен не дословный текст, а аккуратный: из сбивчивой речи — внятное сообщение. Для этого в Doslovno есть отдельные форматы — «Smart» (своими словами) и «Перевод». Их выбирают явно, прямо во время записи, и сторож дословности на них не стоит: вы сами попросили переписать. По умолчанию всегда работает дословный формат. Форматы «Smart» и «Перевод» пока есть только в версии для Mac.
Где мы слабее
Модель, которая распознаёт речь на вашем компьютере, пишет английские названия кириллицей: «зум», «гугл докс». Это видно и в примере выше. Пока слово не попало в словарь, так и будет. Облачное распознавание на платных тарифах обычно оставляет такие названия латиницей — это одна из причин, зачем оно вообще нужно.
И сторож иногда отбрасывает удачную вычитку вместе с неудачной, как в примере. Это сознательный размен: лучше текст без пары запятых, чем текст с чужими словами в вашем письме.
Вопросы
Как диктовать со знаками препинания на Mac?
Встроенной диктовке macOS знаки по-русски, судя по странице Apple, надо проговаривать: «запятая», «точка», «вопросительный знак», «новый абзац». Русского нет в списке языков, для которых Apple заявляет автопунктуацию. Программы голосового ввода с отдельной вычиткой ставят знаки сами.
Может ли программа диктовки изменить мои слова?
Может, если знаки ставит языковая модель без проверки: она склонна заменять слова, сокращать и «причёсывать». Doslovno сравнивает ответ модели со сказанным, и если слова разошлись сильнее допустимого, выбрасывает ответ целиком.
Почему в коротких фразах нет отдельной вычитки?
Для речи короче четырёх секунд Doslovno не отправляет текст на вычитку: знаки в такой фразе ставит сам распознаватель, и ожидание не растёт.
Почему английские названия выходят русскими буквами?
Модель, которая распознаёт речь на вашем компьютере, пишет английские названия кириллицей: «зум» вместо Zoom. Чинится словарём — поправили слово один раз, дальше приложение пишет его правильно само.