Speech-to-Text у мобільному додатку: нативні API та хмарні сервіси

Пацієнт диктує скарги в додаток — текст має з'являтися миттєво, без помилок у медичних термінах. Але на практиці ми стикаємося з дилемою: on-device дає затримку 200 мс і працює офлайн, але словник обмежений; хмара точніша, але вимагає інтернету та грошей. Ми реалізували обидва сценарії в 15 проектах

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Speech-to-Text у мобільному додатку: нативні API та хмарні сервіси
Середній
~3-5 днів

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

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

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Пацієнт диктує скарги в додаток — текст має з'являтися миттєво, без помилок у медичних термінах. Але на практиці ми стикаємося з дилемою: on-device дає затримку 200 мс і працює офлайн, але словник обмежений; хмара точніша, але вимагає інтернету та грошей. Ми реалізували обидва сценарії в 15 проектах і знаємо, де що застосовно. Зв'яжіться з нами для вибору оптимальної архітектури STT для вашого додатку.

Як реалізувати розпізнавання мови в мобільному додатку?

На iOS використовуємо SFSpeechRecognizer — вбудований API з підтримкою on-device з iOS 13 для 11 мов. Для російської мови on-device недоступний, тому запити йдуть на сервери Apple. Обмеження: 1 хвилина на запит, близько 1000 запитів на добу на пристрій без платної угоди. На Android — SpeechRecognizer, який дозволяє офлайн-розпізнавання російської мови через встановлення мовного пакету (80–200 МБ).

let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "ru-RU")) let request = SFSpeechAudioBufferRecognitionRequest() request.requiresOnDeviceRecognition = false // для російської — хмара request.shouldReportPartialResults = true 

Параметр shouldReportPartialResults = true критичний для UX: користувач бачить текст у міру говоріння.

Як вибрати між on-device та хмарним розпізнаванням?

On-device не потребує мережі, затримка мінімальна, але якість розпізнавання нижча для складних термінів та довгих фраз. Хмарні сервіси (Whisper, Google Cloud STT, Яндекс SpeechKit) дають точність до 95% на російській, але додають latency 1–3 с та вартість за запит. On-device розпізнавання в 5–10 разів дешевше хмарного, але поступається точності на 10–15%. Вибір залежить від критичності офлайн-режиму та бюджету. Для диктування коротких команд зазвичай вистачає on-device, для транскрибації бесід — тільки хмара.

Критерій On-device Хмарний STT
Інтернет Не потрібен Потрібен
Затримка < 200 мс 1–3 с
Точність (російська) 80–85% 90–95%
Кастомний словник Обмежений Повна підтримка
Вартість Безкоштовно Плата за запити

Нативні API: деталі реалізації

Характеристика iOS SFSpeechRecognizer Android SpeechRecognizer
Підтримка російської on-device Ні Так (з пакетом)
Дод. дозволи 2 в Info.plist Запит мікрофона
Ліміти 1 хв / 1000 запр./день Немає фікс. ліміту
Кастомний словник Через SFSpeechRecognitionTaskHint Через phrase hints (API)

Коли використовувати streaming замість batch?

Batch (запис → стоп → розпізнавання) простіший у реалізації, але UX гірший. Streaming — текст з'являється у міру говоріння. Streaming на iOS реалізується через SFSpeechAudioBufferRecognitionRequest з append(buffer:) з AVAudioEngine:

inputNode.installTap(onBus: 0, bufferSize: 1024, format: format) { buffer, _ in request.append(buffer) } 

Для Яндекс SpeechKit streaming — WebSocket з chunked audio в PCM 16kHz 16bit, чанки по 200–400 мс.

Покращення точності за допомогою кастомних словників

Якщо точність нативного API недостатня, додавайте кастомні словники. У Яндекс SpeechKit це PhraseSuggestions, у Google Cloud Speech-to-Text — SpeechAdaptation. На практиці, після додавання 3000 артикулів у додаток для складу, точність розпізнавання кодів товарів зросла з 61% до 89%, що зекономило близько 15 000 рублів на місяць на ручних правках. Для iOS можна обмежити лексику через SFSpeechRecognitionTaskHint.

Чому on-device STT не завжди вигідний?

Незважаючи на уявну економію, on-device розпізнавання може потребувати додаткових витрат на розробку та тестування через обмеження за словником і точністю. У деяких сценаріях, наприклад, при роботі зі спеціалізованою лексикою (медицина, юриспруденція, технічні терміни), on-device дає неприпустимо високий рівень помилок. Хмарні сервіси з кастомним словником вирішують цю проблему за рахунок гнучкості та регулярних оновлень моделей.

Кейс: додаток для голосового заповнення форм на складі

Оператор диктує дані, не відволікаючи руки. Нативний Android STT з офлайн-пакетом російської мови. Проблема: специфічні SKU-коди ("артикул 7788-АБВ") розпізнавалися погано. Рішення: Яндекс SpeechKit з кастомним словником із 3000 артикулів. Точність на коді товару зросла з 61% до 89%. Додатково: вартість обробки — близько $0.004 за 15 секунд аудіо, що при 5000 диктувань на день дає ~$20 на день. Отримайте консультацію з підбору STT для вашого бізнесу — ми допоможемо розрахувати економічну ефективність.

Дозволи та UX

На iOS NSMicrophoneUsageDescription та NSSpeechRecognitionUsageDescription обов'язкові в Info.plist. Запит дозволів до першого використання — через AVAudioSession.requestRecordPermission та SFSpeechRecognizer.requestAuthorization. Індикатор запису в UI — обов'язково: анімована хвиля або пульсуючий індикатор дають користувачеві зрозуміти, що його слухають.

Що входить в роботу з інтеграції STT?

  • Аналіз сценаріїв використання та вибір оптимального API (on-device / хмара / гібрид)
  • Проектування архітектури з offline-кешуванням та fallback
  • Реалізація інтеграції з нативними або хмарними сервісами, включаючи кастомні словники
  • Налаштування тестового середовища та тестування точності на репрезентативній вибірці (50+ диктувань)
  • Підготовка документації по дозволах, конфігурації проекту, рекомендації по UI (індикатор запису)
  • Інтеграція з CI/CD (TestFlight, Firebase App Distribution)
  • Навчання команди замовника роботі з компонентом
  • Пост-релізна підтримка та моніторинг якості розпізнавання

Процес роботи

  1. Аналіз сценаріїв використання та вибір оптимального API (on-device / хмара / гібрид).
  2. Проектування архітектури з урахуванням offline-режиму та кешування.
  3. Реалізація інтеграції з нативними або хмарними сервісами, включаючи кастомні словники.
  4. Тестування точності на репрезентативній вибірці (50+ диктувань).
  5. Налаштування CI/CD для збірок з TestFlight та Firebase App Distribution.
  6. Підготовка документації по дозволах та конфігурації проекту.

Терміни орієнтовно

Нативний STT (iOS/Android) з UI — 3–7 днів. Streaming з хмарним API та кастомним словником — 1–3 тижні. Вартість розраховується індивідуально — зв'яжіться з нами для оцінки вашого проекту.

Ми гарантуємо точність розпізнавання не нижче 90% для вибраного сценарію. Наші інженери мають сертифікати Apple (iOS) та Google (Android), а також 7+ років досвіду в мобільній розробці. За цей час реалізовано 40+ проектів з інтеграцією Speech-to-Text.

Документація SFSpeechRecognizer