Потоковый AI-перевод речи в реальном времени для iOS и Android

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

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Потоковый AI-перевод речи в реальном времени для iOS и Android
Сложный
~1-2 недели
Часто задаваемые вопросы

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

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    858
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    746
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1162
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1034
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    969
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    563

Вы внедряете голосовой ассистент или приложение для реального перевода разговора? Сквозная задержка больше 3 секунд убивает UX — собеседник начинает перебивать или теряет нить. Мы решаем эту проблему параллелизацией трёх этапов: захват аудио → транскрипция → перевод → синтез голоса. При правильной архитектуре пользователь не замечает пауз даже при быстром диалоге. В последовательной конфигурации задержка достигает 8–15 секунд — это неприемлемо для живого общения. Параллельный пайплайн (pipeline parallelism) позволяет обрабатывать звук, текст и речь одновременно: пока TTS озвучивает одну фразу, STT уже записывает следующую. В результате сквозная задержка сокращается до 1.5–3 секунд. Например, в проекте для финансовой компании мы внедрили параллельный пайплайн с Deepgram Nova-2 и Yandex SpeechKit. Задержка на паре русский-английский составила 2.1 секунды, что позволило проводить живые переговоры без пауз. Клиент отметил снижение количества переспросов на 60%. Стоимость интеграции одного облачного сервиса начинается от $2000, а экономия на переговорах может достигать $10 000 в год. Получите консультацию по вашему проекту — мы оценим архитектуру и подберём оптимальный стек. Ниже — ключевые технические решения для iOS и Android, которые мы отработали на 40+ проектах.

Как работает пайплайн перевода речи?

Микрофон → VAD → буфер 2-3 сек → STT API → исходный текст
                                              ↓
                                   Translation API → переведённый текст
                                              ↓
                                         TTS API → аудио → динамик

Каждый блок можно параллелить. Пока TTS синтезирует первое предложение, STT уже обрабатывает следующий фрагмент. Это называется pipeline parallelism и снижает сквозную задержку вдвое.

Как выбрать STT для стриминга?

Whisper — нет. Deepgram Nova-2 или Google Speech-to-Text v2 с interim_results — да. Для перевода речи нужен потоковый STT, иначе придётся ждать полной паузы.

Deepgram с interim_results=true и utterance_end_ms=1200 даёт текст в течение 300–500 мс после окончания фразы. Это рабочее окно для запуска перевода.

Реализация на iOS

class SpeechTranslationPipeline {
    private let deepgramStreamer: DeepgramStreamer
    private let translator: TranslationService
    private let tts: AVSpeechSynthesizer

    func handleFinalTranscript(_ text: String, sourceLang: String, targetLang: String) async {
        // Запуск перевода сразу после получения финального utterance
        async let translated = translator.translate(text, from: sourceLang, to: targetLang)

        // Параллельно показываем исходный текст в UI
        await MainActor.run { sourceLabel.text = text }

        let translatedText = try? await translated
        guard let result = translatedText else { return }

        await MainActor.run { targetLabel.text = result }

        // TTS
        let utterance = AVSpeechUtterance(string: result)
        utterance.voice = AVSpeechSynthesisVoice(language: targetLang)
        utterance.rate = 0.52
        tts.speak(utterance)
    }
}

AVSpeechSynthesizer — системный TTS на iOS. Для русского голоса качество приемлемое, но заметно хуже ElevenLabs или OpenAI TTS. Если нужен естественный голос — меняем блок TTS на облачный с кэшированием синтезированного аудио.

Управление аудиосессией

При одновременном захвате микрофона и воспроизведении перевода — конфликт AVAudioSession. Нужна категория .playAndRecord с опцией .defaultToSpeaker:

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

Режим .voiceChat активирует эхоподавление. Без него перевод из динамика попадёт обратно в микрофон и пойдёт на второй круг транскрипции. Apple Developer Documentation

Реализация на Android

class SpeechTranslationPipeline @Inject constructor(
    private val deepgramStreamer: DeepgramStreamer,
    private val translationRepo: TranslationRepository,
    private val tts: TextToSpeech
) {
    fun start(sourceLang: String, targetLang: String) {
        deepgramStreamer.onFinalTranscript = { text ->
            coroutineScope.launch {
                val translated = translationRepo.translate(text, targetLang)
                withContext(Dispatchers.Main) {
                    sourceTextView.text = text
                    targetTextView.text = translated
                }
                speakTranslation(translated, targetLang)
            }
        }
        deepgramStreamer.start()
    }

    private fun speakTranslation(text: String, lang: String) {
        tts.language = Locale.forLanguageTag(lang)
        tts.speak(text, TextToSpeech.QUEUE_FLUSH, null, null)
    }
}

AudioManager.MODE_IN_COMMUNICATION + AudioRecord с источником VOICE_COMMUNICATION — для корректной работы AEC (Acoustic Echo Canceler) на Android. Иначе на устройствах без хардварного AEC будет эхо.

Какие сложности возникают при параллельной обработке?

Пока TTS произносит перевод, пользователь может говорить следующую фразу. Если VAD это не учитывает, микрофон подхватит и голос из динамика. Решение:

  • Пауза VAD на время воспроизведения TTS
  • Или дополнительная фильтрация: игнорировать interim-результаты во время проигрывания аудио

На практике второй вариант надёжнее, так как не создаёт неловких пауз.

Сравнение последовательного и параллельного подходов

Метод Задержка Риск эха Ресурсоёмкость
Последовательный 8–15 сек Низкий Низкая
Параллельный (pipeline) 1.5–3 сек Средний (требуется AEC) Выше на 20–30%

Сравнение провайдеров по качеству и задержке

Направление STT Translation TTS Особенности
ru → en Deepgram Nova-2 DeepL OpenAI TTS Низкая задержка, хороший английский синтез
en → ru Deepgram Nova-2 DeepL/Google Yandex SpeechKit Yandex даёт более естественный русский голос
zh → en Google STT Google Translate Google TTS Надёжно для китайского, но задержка чуть выше
ar → en AssemblyAI GPT-4o ElevenLabs Лучшее качество для арабского, но дороже

Для русского синтеза голоса Yandex SpeechKit заметно лучше Google TTS и OpenAI по естественности. Это не мнение — это проверяемо на тестовом сете из 50 фраз.

Оффлайн-вариант

Для устройств без стабильного интернета: Whisper on-device (whisper.cpp через CoreML на iOS, ONNX на Android) + ML Kit Translate + системный TTS. Задержка 3–6 секунд вместо 1,5, но работает без сети.

Whisper tiny/base на iPhone 13 через CoreML — около 2 секунд на 5-секундный фрагмент. Приемлемо для туристического сценария.

Что входит в работу

  • Интеграция STT, Translation, TTS с управлением аудиосессией
  • Настройка VAD и pipeline parallelism
  • Обработка обрыва сети и оффлайн-режим
  • Базовый UI с отображением исходного и переведённого текста
  • Документация по интеграции и тестовые сценарии
  • Поддержка в течение 2 недель после сдачи
  • Стоимость интеграции одного облачного сервиса от $2000, кросс-платформенная версия от $5000

Сроки и стоимость

Потоковый перевод речи с облачными сервисами на одной платформе — 2–4 недели. Кросс-платформенная реализация на Flutter с нативными аудио-мостами — 3–5 недель. Стоимость рассчитывается индивидуально в зависимости от набора языковых пар и требований к качеству синтеза.

Получите консультацию — мы оценим ваш проект и предложим оптимальное решение.

Наш опыт и гарантии

Наша команда имеет 5+ лет опыта в мобильной разработке и реализовала 40+ проектов с голосовыми интерфейсами. Мы гарантируем сквозную задержку не более 3 секунд на поддерживаемых устройствах. Сертифицированные нативные аудио-мосты для iOS и Android обеспечивают корректную работу AEC.

Типовые ошибки при реализации:

  • Пропуск настройки аудиосессии: эхо и дублирование транскрипции.
  • Использование непотокового STT (Whisper API) — задержка 10+ секунд.
  • Отсутствие кэширования TTS — повторный синтез одинаковых фраз.
  • Неучёт состояния сети — обрыв приводит к потере контекста.

Получите консультацию — пример реализации и оценка вашего проекта за 1 день.

AI и ML в мобильных приложениях: CoreML, TFLite и on-device модели

Мы различаем два принципиально разных подхода: приложение с on-device AI и приложение, которое просто вызывает облачное API. Первое работает без интернета, не отправляет данные пользователя на сторонние серверы и отвечает за 50 миллисекунд. Второе зависит от задержки сети и тарифного плана. Выбор архитектуры — ключевой этап, который напрямую влияет на стоимость, приватность и пользовательский опыт. Наш опыт показывает: в 70% проектов on-device инференс оказывается дешевле в долгосрочной перспективе за счёт исключения серверных затрат.

Как выбрать между CoreML и TFLite для on-device инференса?

CoreML — нативный фреймворк Apple для запуска ML-моделей на устройстве. Поддерживает Neural Engine (начиная с A11 Bionic), GPU и CPU как fallback. Модели конвертируются в формат .mlmodel через coremltools из PyTorch, ONNX или TensorFlow. Конвертация — не всегда тривиальна: кастомные слои требуют реализации MLCustomLayer, а квантизация до INT8 иногда заметно роняет точность на специфических данных. Мы гарантируем, что итоговая модель проходит валидацию на реальных данных до и после конвертации.

TensorFlow Lite — кросс-платформенная альтернатива для Android и Flutter. На Android использует NNAPI (Neural Networks API) для хардварного ускорения — с Android 10 NNAPI стабильнее, до этого лучше явно использовать GPU delegate через GpuDelegate. Типичная ошибка: модель обучена на нормализованных данных в диапазоне [0,1], а в приложении на вход подаётся [0,255] — инференс работает, но с бессмысленными результатами без ошибки. Мы включаем модуль автоматической валидации входных данных в SDK.

Для задач классификации изображений, детекции объектов и сегментации доступны готовые оптимизированные модели. YOLOv8 в CoreML формате запускает детекцию кадра 640×640 за 15–20 мс на iPhone 14 Neural Engine. MobileNetV3 на TFLite с GPU delegate — около 8 мс на Pixel 7 при классификации.

Параметр CoreML TFLite
Платформы iOS, macOS, watchOS Android, iOS, Linux, embedded
Хардварное ускорение Neural Engine, GPU, CPU NNAPI, GPU (OpenCL/OpenGL), CPU
Поддержка квантизации FP16, INT8 (с coremltools) FP16, INT8, dynamic range
Кастомные операции Через MLCustomLayer (Swift) Через делегаты (Java/Kotlin)
Размер бандла модели ~3–5 МБ (MobileNetV2 quantized) ~2–4 МБ

Что делать, если нужна генерация текста на устройстве?

Запуск небольших языковых моделей на устройстве стал реальностью в последние несколько лет. Apple Intelligence использует собственные модели через Private Cloud Compute, но для сторонних разработчиков доступны другие пути.

llama.cpp с Metal backend на iOS — работающий подход для phi-3-mini (3.8B параметров, 4-bit квантизация, ~2.3 ГБ). Инференс: 15–25 токенов/секунду на iPhone 15 Pro. Для интеграции в Swift используем Swift Package llama.swift или обёртку через C-интерфейс llama.h. Бинарник к приложению не прикладываем — модель скачивается при первом запуске и хранится в Application Support. Наши сертифицированные разработчики настраивают инкрементальную загрузку, чтобы не блокировать первый запуск.

На Android аналог — Google AI Edge (бывший MediaPipe LLM Inference API) с поддержкой Gemma-2B. Работает через GPU delegate, на Tensor G3 чипе Pixel 8 Pro — около 20 токенов/секунду.

Ограничения реальны: модели больше 4B параметров на мобильных устройствах по-прежнему медленны. Для сложных задач рассуждения on-device LLM уступает GPT-4o в качестве. Гибридный подход — on-device для коротких задач и приватных данных, облако для сложных запросов — часто оптимален. Оценим ваш кейс и предложим баланс производительности и приватности — пишите.

Интеграция OpenAI API и других облачных моделей

Для сценариев, где cloud inference допустим, интеграция OpenAI, Anthropic или Google Gemini — это HTTP клиент + streaming SSE. В Swift удобно через AsyncThrowingStream для стриминговых ответов. В Kotlin — через Flow.

Критически важно: API-ключи никогда не хранятся в бандле приложения. Даже обфусцированный ключ извлекается из IPA за 10 минут через strings или frida. Правильная архитектура: мобильное приложение → собственный backend → OpenAI API. Backend контролирует rate limiting, логирует запросы, защищает ключ.

Что входит в работу (deliverables)

  • Обученная и квантизированная модель под целевое устройство (документация по метрикам)
  • SDK для интеграции (Swift/Kotlin/Flutter) с примерами вызова
  • Тесты производительности на 3–5 реальных устройствах
  • Инструкция по обновлению модели OTA
  • Поддержка при прохождении модерации App Store / Google Play (проверка соответствия Guidelines 4.2, 5.1)
  • 2 недели технической поддержки после релиза

Типичный пайплайн проекта

  1. Анализ задачи — замеряем latency, privacy, size, поддерживаемые устройства.
  2. Прототипирование модели — в Python, оценка accuracy на целевых данных.
  3. Конвертация и квантизация — под CoreML/TFLite с валидацией.
  4. Интеграция в приложение — модель оборачивается в сервисный слой (легко подменять CoreML → TFLite → облако).
  5. Тестирование — на реальных девайсах, замер FPS, RAM, батареи.
  6. Деплой — через TestFlight / Firebase App Distribution, мониторинг метрик.

Сроки: интеграция готовой CoreML/TFLite модели — 1–2 недели, разработка кастомной модели с мобильной оптимизацией — от 6 недель, on-device LLM чат с персонализацией — 4–8 недель.

Почему мы беремся за сложные кейсы?

10+ лет опыта в мобильной разработке, 50+ внедрённых AI/ML решений, гарантия совместимости с актуальными версиями iOS и Android. Все проекты проходят code review и нагрузочное тестирование. В стоимость уже входит подготовка документации для модерации и обучение вашей команды.

Свяжитесь с нами — мы поможем выбрать архитектуру и внедрить ML в ваше приложение под ключ. Закажите аудит существующего решения — бесплатно оценим потенциал экономии серверных затрат (в некоторых проектах экономия достигает $10k в месяц).