Реалізація розпізнавання мовлення (Speech-to-Text) у мобільному застосунку

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Реалізація розпізнавання мовлення (Speech-to-Text) у мобільному застосунку
Середній
~3-5 днів
Часті запитання

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

Етапи розробки

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Реалізація розпізнавання мови (Speech-to-Text) у мобільному додатку

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

Нативні API: SFSpeechRecognizer та Android STT

iOS SFSpeechRecognizer — вбудований в iOS API, доступний з iOS 10. З iOS 13+ підтримує режим на пристрої (requiresOnDeviceRecognition = true) для 11 мов. Для російської мови доступний лише режим хмари (запити йдуть на сервери Apple). Обмеження: 1 хвилина на запит, приблизно 1000 запитів на день на пристрій без платної угоди.

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

Встановлення shouldReportPartialResults = true критично для UX: користувачі бачать текст у міру говоріння, а не чекають завершення запису.

Android SpeechRecognizer — використовує Google Speech Services. Режим офлайн доступний через RecognizerIntent.EXTRA_PREFER_OFFLINE = true, але мовні пакети необхідно завантажити окремо, і вони займають 80–200 МБ. Російський пакет офлайн доступний, але у користувачів він може не бути встановлений — потрібна перевірка та запасний варіант.

Хмарні альтернативи

Коли нативних API недостатньо (користувацькі словники, спеціалізована термінологія, висока точність):

  • OpenAI Whisper — найкраща точність серед доступних варіантів, багатомовний. API простий: POST з аудіофайлом. Затримка на боці сервера 1–3 секунди. Доступна мобільна версія Whisper.cpp, компілюється через CMake — працює на пристрої, ~50–200 МБ залежно від розміру моделі.
  • Google Cloud Speech-to-Text v2 — підтримує потокову передачу через gRPC WebSocket, адаптацію під користувацькі словники через Adaptation API.
  • Яндекс SpeechKit — оптимізований для російської мови, потокова передача через WebSocket.

Потокова передача проти пакетної обробки

Пакетна обробка (запис → стоп → розпізнавання) простіша в реалізації, але гірша для UX. Потокова передача відображає текст у міру говоріння.

Потокова передача на iOS через SFSpeechAudioBufferRecognitionRequest з append(buffer:) із AVAudioEngine:

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

Для потокової передачі Яндекс SpeechKit — WebSocket з розділеним на чанки аудіо в PCM 16 кГц 16-біт. Чанки по 200–400 мс збалансують затримку та накладні витрати.

Приклад: додаток для голосового заповнення форм на складі (оператор диктує дані без рук). Нативний Android STT з офлайн-пакетом російської мови. Проблема: специфічні коди SKU ('артикул 7788-АБВ') розпізнавалися погано. Рішення: Яндекс SpeechKit із користувацьким словником через PhraseSuggestions — додали 3000 артикулів. Точність розпізнавання кодів товарів підвищилася з 61% до 89%.

Дозволи та UX

На iOS NSMicrophoneUsageDescription та NSSpeechRecognitionUsageDescription обов'язкові в Info.plist. Запит дозволів перед першим використанням — через AVAudioSession.requestRecordPermission та SFSpeechRecognizer.requestAuthorization. Без успішної авторизації startRecording() завершиться невдачею без інформативного повідомлення про помилку.

Завжди включайте індикатор запису в UI. Анімована хвиля або імпульсуючий індикатор дає користувачам зрозуміти, що їх слухають.

Терміни

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