Реализация голосового помощника в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Реализация голосового помощника в мобильном приложении
Сложная
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Реализация голосового помощника в мобильном приложении

Голосовой помощник в мобильном приложении — это не кнопка с микрофоном. Это пайплайн из нескольких компонентов: VAD (Voice Activity Detection), STT, NLU/Intent Recognition, обработка бизнес-логики, TTS. Каждый компонент добавляет latency. Цель — суммарная latency от конца фразы пользователя до начала ответа ≤1.5 секунды. Это техническое ограничение, не маркетинговая цель.

Архитектура пайплайна

Микрофон → VAD → STT → NLU → Logic → TTS → Динамик
               ↕         ↕
           Streaming   Intent DB

VAD — обнаружение голосовой активности, чтобы не передавать тишину в STT. WebRTCVAD (нативная библиотека) или SileroVAD (ONNX/TFLite, ~1 MB). VAD снижает ложные срабатывания и экономит API-вызовы.

STT — преобразование речи в текст. Выбор: нативный SFSpeechRecognizer / Android STT для простых случаев; OpenAI Whisper API или Яндекс SpeechKit для русского с высокой точностью.

NLU — извлечение интента и сущностей из текста. Например: «добавь молоко в список покупок» → intent: ADD_TO_LIST, entity: {item: молоко, list: покупки}. Решения:

  • Rasa NLU — open source, self-hosted, обучается на своих данных. Подходит для сложных доменов с множеством интентов.
  • Dialogflow ES/CX — Google cloud NLU, быстро стартовать, хорошая русскоязычная поддержка. Платно при большом объёме.
  • LLM-based classification — ChatGPT / Claude API с structured output (function calling). Гибкий, не требует разметки обучающих данных, дороже при высоком трафике.
  • On-device BERT — MobileBERT TFLite, ~50 MB, классификация интентов из фиксированного набора. Работает офлайн.

Intent Recognition: что реально работает

Для приложений с ограниченным доменом (умный дом, интернет-банк, навигация) — Rasa NLU или Dialogflow с явно прописанными интентами. 50–200 обучающих примеров на интент достаточно.

Для открытого домена — LLM с system prompt, описывающим доступные действия. LLM возвращает JSON через function calling:

{
  "intent": "navigate_to",
  "destination": "ресторан Пушкин",
  "time": null
}

Latency LLM-запроса: 400–800 ms для gpt-4o-mini, 200–400 ms для Claude Haiku. Добавляем к STT (800–1500 ms облако) и TTS (~300 ms). Суммарно: 1.3–2.8 секунды. На грани комфортного.

Оптимизация: запускать LLM-запрос параллельно с последними 200 ms STT (до финального результата), кэшировать частые интенты локально.

Контекст диалога

Голосовой помощник без памяти контекста ломается на втором вопросе: «Как зовут директора Газпрома?» — ответ. «А его жену?» — без контекста непонятно, чьей жены. Контекст — массив последних N сообщений, передаётся в каждый LLM-запрос или Dialogflow-сессию.

Управление контекстом на мобиле: ConversationStore — singleton с @Published списком Message. Максимум 10–15 последних сообщений (по токенам — ~2000 токенов контекста достаточно для большинства диалогов).

Wake Word (опционально)

«Привет, [AppName]» без нажатия кнопки — работает через PorcupineManager от Picovoice. On-device, кастомное wake word, ~500 KB модели. Потребление батареи — ~1.5% в час на современных устройствах. На iOS требует фоновую аудио-сессию, что Apple проверяет при ревью.

Кейс

Корпоративный ассистент для полевых сотрудников: голосовое создание задач и запросов в CRM без разблокировки телефона. Стек: SileroVAD on-device → Яндекс SpeechKit streaming → Rasa NLU (self-hosted, 23 интента) → CRM REST API → Яндекс SpeechKit TTS. Latency от конца фразы до начала ответа: медиана 1.1 секунды, p95 2.3 секунды. Rasa NLU — собственный сервер, что дало полный контроль над данными.

Сроки

Пайплайн STT + NLU с фиксированным набором интентов + TTS — 2–3 недели. С wake word, контекстом диалога и интеграцией с бизнес-логикой — 4–6 недель. Стоимость рассчитывается индивидуально.