Разработка системы Speech-to-Speech (голосовой перевод в реальном времени)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Разработка системы Speech-to-Speech (голосовой перевод в реальном времени)
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Разработка системы Speech-to-Speech (голосовой перевод в реальном времени)

Speech-to-Speech (STS) переводит речь на одном языке в речь на другом в реальном времени, сохраняя характеристики голоса говорящего. Это нетривиальная инженерная задача: нужно минимизировать сквозную задержку всего pipeline при сохранении качества.

Архитектура STS-системы

STT → Translation → TTS
 ↓         ↓          ↓
~200мс    ~100мс     ~300мс
                Total: ~600–1000мс

Компоненты:

  1. STT — транскрибация источника (Whisper streaming / Deepgram)
  2. MT — машинный перевод (GPT-4o, DeepL API, NLLB)
  3. Voice Conversion — перенос характеристик голоса на синтезированную речь
  4. TTS — синтез переведённого текста

Реализация async pipeline

import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI()

async def speech_to_speech_pipeline(
    audio_chunk: bytes,
    source_lang: str,
    target_lang: str,
    speaker_voice: str = "alloy"
) -> bytes:
    # Этап 1: STT
    transcript_response = await client.audio.transcriptions.create(
        model="whisper-1",
        file=("audio.wav", audio_chunk, "audio/wav"),
        language=source_lang
    )
    transcript = transcript_response.text

    if not transcript.strip():
        return b""

    # Этап 2: Перевод
    translation_response = await client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "system", "content": f"Переведи на {target_lang}. Только перевод, без пояснений."},
            {"role": "user", "content": transcript}
        ],
        temperature=0.1
    )
    translated = translation_response.choices[0].message.content

    # Этап 3: TTS
    tts_response = await client.audio.speech.create(
        model="tts-1",
        voice=speaker_voice,
        input=translated,
        response_format="pcm"
    )
    return tts_response.content

Оптимизация задержки

Sentence-level streaming: не ждём конца всей фразы, переводим и синтезируем предложениями:

async def streaming_sts(text_stream):
    buffer = ""
    async for word in text_stream:
        buffer += word
        # Переводим при обнаружении конца предложения
        if buffer.endswith((".", "!", "?")):
            yield await translate_and_synthesize(buffer)
            buffer = ""

Сохранение голоса говорящего

Для сохранения характеристик голоса при переводе используем voice conversion:

# Извлекаем speaker embedding из исходного аудио
# Синтезируем перевод нейтральным голосом
# Применяем voice conversion с embedding оригинала

Сроки реализации

  • Базовый STS без сохранения голоса: 1 неделя
  • С voice conversion и streaming: 3–4 недели
  • Production-система с масштабированием: 6–8 недель