Інтеграція голосового бота в мобільні застосунки: STT, TTS та latency

Як інтегрувати голосового бота в мобільний застосунок: STT, TTS та latency Уявіть: ви запускаєте голосового асистента в навігаційному застосунку. Користувач вимовляє «Проклади маршрут до Києва, уникаючи платних доріг», але відповідь приходить через 4 секунди, а половина слів розпізнана з помилкам

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція голосового бота в мобільні застосунки: STT, TTS та latency
Складний
від 1 тижня до 3 місяців

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    600

Як інтегрувати голосового бота в мобільний застосунок: STT, TTS та latency

Уявіть: ви запускаєте голосового асистента в навігаційному застосунку. Користувач вимовляє «Проклади маршрут до Києва, уникаючи платних доріг», але відповідь приходить через 4 секунди, а половина слів розпізнана з помилками — «Києва» перетворилося на «київського». Це не гіпотеза, а типова ситуація при інтеграції голосового бота без урахування latency, шумів оточення та особливостей української мови. Ми стикалися з такими кейсами в проєктах для логістичних компаній та рітейлу: втрата 30% користувачів на першій взаємодії через повільний відгук.

Щоб уникнути цього, ми будуємо пайплайн Speech-to-Text → NLU/LLM → Text-to-Speech із сумарним часом відгуку менше 1,5 секунди. Ключовий прийом — потокова обробка на кожному етапі: починаємо транскрипцію до закінчення фрази, генеруємо відповідь за першими токенами, синтезуємо мову одночасно з виведенням. Додатково тюнімо конфігурації під конкретний пристрій (iOS/Android) та акустичне середовище (тихий офіс vs. шумна вулиця).

Нижче — розбір основних компонентів та їхнього впливу на якість діалогу: STT-двигун, TTS-синтезатор, керування аудіосесією та wake word. Кожен блок ми оптимізували на реальних проєктах із навантаженням до 10 000 запитів на добу. Наша компанія має понад 5 років досвіду, реалізували 30+ проєктів.

Чому latency — головний ворог голосового бота?

Типовий breakdown затримки показує, де губиться час. Streaming-архітектура швидша в 2-3 рази.

Порівняльна таблиця latency
Етап Хмарний варіант Оптимізований (streaming)
STT (транскрипція) 400–800ms 200–400ms
NLP / LLM відповідь 500–2000ms 150–400ms (streaming + кеш)
TTS (синтез) 300–600ms 100–200ms
Мережа (2x) 100–300ms
Разом 1,3–3,7s ~1s

Ключ — не чекати завершення кожного етапу:

  • STT з shouldReportPartialResults = true — починаємо обробку до кінця фрази.
  • LLM streaming — щойно прийшли перші токени, запускаємо синтез.
  • TTS streaming — починаємо відтворення, поки решта фрази ще синтезується.

Який STT-двигун обрати для української та російської мови?

Порівняння STT-двигунів
Двигун Якість укр./рос. Latency Offline Вартість
Нативний (SFSpeechRecognizer / SpeechRecognizer) Середня (короткі команди) 200–300ms Так Безкоштовно
Yandex SpeechKit Відмінна 200–400ms (streaming) Ні Похвилинна
Whisper API (OpenAI) Дуже висока 200–500ms Ні За запит
Google Cloud Speech-to-Text Висока 200–400ms (gRPC streaming) Ні Похвилинна

Для розмовних діалогів з нестандартною лексикою (медицина, юриспруденція) ми рекомендуємо Yandex SpeechKit — він навчений на великому російськомовному корпусі та дає на 15–20% менше помилок, ніж нативний STT. Для української мови радимо тестувати конкретні моделі.

// iOS: AVAudioEngine → Yandex SpeechKit streaming class VoiceBotRecorder { private let audioEngine = AVAudioEngine() private var recognitionStream: RecognitionStream? func startRecording() throws { let inputNode = audioEngine.inputNode let format = AVAudioFormat(commonFormat: .pcmFormatInt16, sampleRate: 16000, channels: 1, interleaved: false)! recognitionStream = speechKitClient.createStream(config: streamConfig) inputNode.installTap(onBus: 0, bufferSize: 4096, format: format) { [weak self] buffer, _ in guard let pcmData = buffer.int16ChannelData?[0] else { return } let bytes = Data(bytes: pcmData, count: Int(buffer.frameLength) * 2) try? self?.recognitionStream?.send(audio: bytes) } audioEngine.prepare() try audioEngine.start() } } 

TTS: синтез мови, який не дратує

  • ElevenLabs — найкраща якість, клонування голосу для бренду, streaming через WebSocket.
  • OpenAI TTS — моделі tts-1 (швидкий) та tts-1-hd (якісний); для української найприродніший голос nova (перевіряйте підтримку).
  • Yandex SpeechKit TTS — голоси alena, filipp, jane; streaming через gRPC, naturalness на рівні ElevenLabs для російськомовної аудиторії.
  • Нативний синтез — AVSpeechSynthesizer (iOS) та TextToSpeech (Android) — безкоштовно, offline, але звучить роботизовано.

Вибір TTS залежить від бюджету та вимог до натуральності: для простих відповідей достатньо нативного, для сервісу «помічник-консультант» — тільки хмарні рішення. Економія від використання streaming TTS — до 30% часу синтезу.

Керування аудіо: як уникнути еха та переривань

iOS. Категорія AVAudioSession має бути .playAndRecord з опцією .defaultToSpeaker. При відтворенні TTS тимчасово деактивуємо мікрофон: AVAudioSession.sharedInstance().setActive(false) перед синтезом, true — після.

try AVAudioSession.sharedInstance().setCategory( .playAndRecord, options: [.defaultToSpeaker, .allowBluetooth] ) 

Android. Використовуємо AudioManager.requestAudioFocus() на час відтворення, abandonAudioFocus() — після. Bluetooth-гарнітури вимагають окремої обробки через BluetoothHeadset.

Barge-in (переривання). Якщо користувач починає говорити, поки бот ще відповідає, потрібно виявити мову → зупинити TTS → почати запис. Voice Activity Detection можна реалізувати через AudioRecord.getMaxAmplitude() або використовувати WebRTC VAD для більшої точності.

Wake word та hands-free режим

Для сценаріїв «навігація за кермом» або «розумні окуляри» додаємо wake word, наприклад «Привіт, асистент», що активує бота без натискання кнопки. Використовуємо Picovoice Porcupine — підтримує кастомні wake words і працює повністю on-device. Альтернатива — OpenWakeWord (open source). Споживання ресурсів: ~50 MB RAM, вмикається лише на час прослуховування.

Що входить у роботу (під ключ)

  1. Аудит поточної архітектури — оцінка вимог до мови, latency, спікер-діаризації.
  2. Вибір двигунів — STT/TTS під завдання (бюджет, точність, offline-режим).
  3. Розробка аудіо-пайплайну — захоплення з мікрофона, кодування PCM/WAV, streaming у хмарні API.
  4. Інтеграція NLU/LLM — від простих intent-роутингів до генерації відповідей через OpenAI або Yandex GPT.
  5. Оптимізація latency — streaming, кешування, гранульоване налаштування буферів.
  6. UI/UX — візуалізація станів (слухає, думає, говорить), анімація звукової хвилі, обробка помилок.
  7. Тестування — на реальних пристроях з різними акцентами, фоновими шумами (кафе, вулиця, метро).
  8. Документація та навчання — опис інтеграції, ключів API, процедур підтримки.
  9. Підтримка після запуску — моніторинг, доналаштування моделей під зростаючу базу фраз.

Наш досвід та гарантії

Ми працюємо з голосовими інтерфейсами понад 5 років — за цей час реалізували більше 30 проєктів для iOS та Android в українських та міжнародних компаніях. Наші інженери — сертифіковані розробники Swift та Kotlin, мають досвід інтеграції з Yandex SpeechKit, ElevenLabs та OpenAI. Гарантуємо стабільність роботи при навантаженні до 10 000 запитів на добу та SLA на час відгуку не більше 2 секунд.

Орієнтири за термінами та вартістю

  • Базова версія з нативними STT/TTS — 1 тиждень, від $500.
  • З хмарними двигунами (Yandex SpeechKit / ElevenLabs), streaming та latency ~1 с — 3–5 тижнів, від $2000.
  • З wake word та hands-free — +1–2 тижні, від $500.

Етапи роботи

  1. Аналітика та прототип — 2–4 дні.
  2. Проектування аудіо-пайплайну — 2–3 дні.
  3. Реалізація — 1–3 тижні.
  4. Тестування та налагодження — 3–5 днів.
  5. Деплой в App Store / Google Play — 1–2 дні.

Оцінимо ваш проект безкоштовно — пишіть нам. Замовте демонстрацію вже працюючого голосового бота на реальних даних.

Технічна реалізація голосового бота потребує глибоких знань аудіообробки та оптимізації. Ми допоможемо впровадити голосовий інтерфейс у ваш застосунок.