Голосовой ввод

Голосовой ввод

Страница голосового ввода

Что это

Страница, на которой медсестра может надиктовать запись в журнал голосом. Система:

  1. Преобразует голос в текст.
  2. Распознаёт, что именно сказано (кабинет / журнал / данные).
  3. Показывает черновик — «понял так?».
  4. После подтверждения записывает в соответствующий журнал.

Это сокращает заполнение журналов с 5–8 кликов до «нажал → сказал → подтвердил».

Кому полезно

  • При обходе кабинетов с телефоном/планшетом — руки заняты, мышью не покликать. См. Обход кабинетов.
  • При большом количестве однотипных записей — быстрее, чем заполнять формы.
  • Сотрудникам, которым удобнее «надиктовать», чем тыкать в форму.

Как открыть

Сайдбар → Голосовой ввод.

Видна всем, у кого есть право VoiceInputPage.viewAny (по умолчанию — все медсёстры).

Как пользоваться

  1. На странице — большая круглая кнопка с микрофоном.
  2. Нажмите на неё — браузер попросит разрешение на микрофон, дайте.
  3. Кнопка станет красной и начнёт пульсировать — это значит, система слушает.
  4. Диктуйте в свободной форме, например:

    «В первом кабинете утром температура 22 градуса, влажность 55».

  5. Распознанный текст появляется в поле под кнопкой — можно поправить руками опечатки.
  6. Нажмите «Распознать команду» — система покажет черновик карточки:
    • какой кабинет;
    • какой журнал;
    • какие данные;
    • уверенность распознавания (в процентах).
  7. «✓ Верно, записать» — запись создаётся в соответствующем журнале.
  8. «✗ Передиктовать» — черновик отменяется, можно начать заново.

Поддерживаемые журналы

На текущий момент:

Остальные журналы — на голосовом вводе пока не поддерживаются (расширение по мере необходимости).

Что распознаётся в каждом журнале

Температура и влажность

«В кабинете номер один утром температура помещения 22 градуса, сухого 21, влажного 18, влажность 55».

Распознаётся:

  • кабинет;
  • утро/вечер;
  • 4 числовых значения.

Текущие уборки

«В первом кабинете уборка протиранием в восемь утра алмадезом». «В кабинете номер один утром орошение алмадезом 1 процент». «В кабинете номер один утром орошение трилоксом-спреем».

Распознаётся:

  • кабинет;
  • тип уборки (Типы уборок);
  • время;
  • дезсредство (Дезсредства) — если назван только бренд («алмадезом») без концентрации, система предложит все варианты этого бренда и предупредит уточнить.

УФ-обеззараживание

«В первом кабинете УФ-лампу включили в девять утра, выключили в десять, в присутствии людей, обработка воздуха». «В кабинете номер один УФ-сеанс с 14:00 до 14:30, без людей, поверхность».

Распознаётся:

  • кабинет;
  • время вкл/выкл (длительность вычисляется автоматически);
  • условия обеззараживания (in-presence / in-absence);
  • объект (air / surface);
  • режим (если назван).

Технически — два движка распознавания речи

Под капотом — два разных способа превращения голоса в текст:

  1. Web Speech API в браузере (Google) — по умолчанию. Работает в Chrome / Edge / Yandex.

    • Плюсы: бесплатно, аудио не уходит на сервер.
    • Минусы: не работает в Safari / iPad.
    • Что вы увидите: внизу страницы метка «Движок: браузер (Web Speech API)».
  2. SaluteSpeech от СБЕР — fallback на серверное распознавание.

    • Включается автоматически, если браузер не поддерживает Web Speech API.
    • Или вручную: при ошибке «not-allowed» появится кнопка «Использовать серверное распознавание».
    • Плюсы: работает в Safari и через MAX-бот (когда подключим).
    • Минусы: аудио идёт на сервер; задержка пара секунд.

После распознавания текст обрабатывается через GigaChat (Russian LLM от СБЕР), который превращает свободную речь в структурированную запись.

Если микрофон не работает

Самая частая ошибка — браузер не получил разрешения.

В Chrome / Edge:

  1. В адресной строке слева — значок 🔒 → «Настройки сайта».
  2. Микрофон → Разрешить.
  3. Перезагрузить страницу.

На macOS:

  1. Системные настройки → Конфиденциальность и безопасность → Микрофон.
  2. Включите галку для Chrome / Edge / Yandex.
  3. Перезагрузите браузер и страницу.

После этого Chrome должен спросить «Разрешить доступ к микрофону?» — нажмите «Разрешить».

Если всё равно не работает — нажмите «Использовать серверное распознавание» на странице. Тогда страница начнёт записывать аудио через MediaRecorder и слать на сервер в SaluteSpeech (тоже нужен микрофон, но иногда работает там, где Web Speech блокируется политикой Chrome).

Что записывается

Каждая команда сохраняется как черновик в таблице voice_drafts. Это нужно для:

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

Если LLM «галлюцинирует» (придумает несуществующий кабинет) — система это поймает: после парсинга проверяет cabinet_id с реальной таблицей и поля с реальной схемой журнала. Если что-то не сошлось — уверенность падает, в UI пометка «требует проверки».

Связанные документы

Что важно

  • Всегда проверяйте черновик перед нажатием «✓ Верно, записать». Голосовой ввод — это удобство, но за корректность данных отвечает медсестра.
  • Голос не отменяет ЭЦП. Запись создаётся, но ЭЦП подписывается отдельно — кликом по кнопке «Подписать ЭЦП» на странице записи.
  • При обходе кабинетов — это самый удобный способ. Открыли страницу обхода → перешли в нужный журнал → диктуете прямо на месте.