# Говорить с ИИ, а не печатать

Экспресс-курс о голосовом ИИ и реальном времени. 18 понятий — Voice Pipeline, Speech-to-Text, Text-to-Speech, Latency Budget, Streaming, Turn-taking, Barge-in, Speech-to-Speech и другие — у каждого английское название, схема и карточка «что это → как работает → пример → подвох». Главная мысль: голос — это слушать, думать и говорить достаточно быстро, чтобы ощущалось разговором. В конце — шпаргалка на одной странице.

- **Author:** Фёдор Чищин
- **Level:** intermediate
- **Reading time:** ~30 минут чтения
- **Published:** 2026-06-13
- **Source:** https://fedorthinks.com/ru/learn/voice-ai-express

---

## 1. Голосовой конвейер

Голосовой ИИ — не одна вещь, а цепочка из трёх работ. Увидь конвейер сразу — и всё остальное в курсе встанет на место.

### Карта: 18 понятий в семи группах

> Карта метро: сначала видишь линии целиком, потом едешь по станциям.

Понятия курса делятся на семь групп. Сначала — сам конвейер. Потом его края: **ухо** (речь в текст) и **рот** (текст в речь). Дальше главная трудность — **задержка**. Потом хореография разговора — **кто и когда говорит**. Затем новый путь — **realtime-модели**. И в конце — как применять голос с умом.

_Diagram: Семь групп понятий — по ним идут главы курса._

### Как читать каждое понятие

> Паспорт: у всех одинаковые поля, поэтому их легко сравнивать.

У каждого понятия дальше одно и то же: **английское название** (запомни его — так его ищут в документации), образ из жизни, **схема** и **карточка** с полями: _что это_, _как работает_, _пример_, _подвох_ и _связи_ с другими понятиями. Одна мысль проходит через весь курс: **задержка решает всё**.

### Voice Pipeline — ухо, мозг, рот

> Человек в разговоре: слышит, что ты сказал, обдумывает и отвечает. Три разных действия, а ощущаются как одно.

Голосовой ИИ делает три вещи по очереди. **Слушает** — превращает речь в текст. **Думает** — модель читает этот текст и пишет ответ. **Говорит** — превращает ответ обратно в звук. У этапов есть имена: **Speech-to-Text (STT)**, модель (**LLM**) и **Text-to-Speech (TTS)**. Такую цепочку ещё называют **каскадом (cascade)**. Большая часть голосового ИИ устроена именно так.

_Diagram: Классический каскад: голос → STT → LLM → TTS → голос обратно пользователю._

#### Voice Pipeline (голосовой конвейер, cascade)

- **Что это:** Цепочка из трёх этапов: речь в текст, модель, текст в речь.
- **Как работает:** Голос внутрь → расшифровать → обдумать → синтезировать → голос наружу.
- **Пример:** Пользователь говорит «столик на двоих», STT пишет текст, модель отвечает, TTS озвучивает ответ.
- **Подвох:** Три этапа подряд — три источника задержки.
- **Связи:** Состоит из **Speech-to-Text**, **LLM Core** и **Text-to-Speech**; альтернатива — **Speech-to-Speech**.

### LLM Core — модель та же, края новые

> Ты уже умеешь думать и отвечать словами. Научиться говорить голосом — значит добавить слух и речь вокруг того же ядра.

Ядро, которое рассуждает, — та же **языковая модель (LLM)**, что и в других курсах. Контекст, промпты, инструменты, структурированный вывод — всё это по-прежнему работает с текстом в середине. Новое — только звук по краям: превратить звук в текст и текст в звук, надёжно и быстро. Мозг переучивать не нужно. Нужно добавить ухо и рот — и научиться главному: успевать всё за то короткое время, которое даёт разговор.

_Diagram: Середина — знакомая модель «текст внутрь, текст наружу»; новые только ухо и рот._

#### LLM Core (рассуждающее ядро)

- **Что это:** Обычная текстовая модель в середине голосового конвейера.
- **Как работает:** Получает текст от STT, пишет текстовый ответ для TTS.
- **Пример:** Тот же промпт, те же инструменты и та же структура ответа, что в текстовом чат-боте.
- **Подвох:** Модель видит только текст — она не знает, как именно это было сказано.
- **Связи:** Середина **Voice Pipeline**; её убирает **Speech-to-Speech**.

> **Вопрос рамки:** «Вижу ли я свою голосовую фичу как три этапа — слушать, думать, говорить, — чтобы знать, к какому этапу относится каждая проблема?»

> Голосовой ИИ — это конвейер: ухо (STT), мозг (модель) и рот (TTS). Мозг ты уже знаешь; новое — звук по краям и время между этапами.

## 2. Речь в текст

Первый этап превращает звук в слова. Сегодня он очень хорош, но его ошибки влияют на всё, что идёт дальше. Поэтому стоит понимать, что он может, а что нет.

### Speech-to-Text — звук становится текстом

> Судебный стенограф печатает каждое слово, пока его произносят. Поток речи превращается в запись, которую может прочесть остальная система.

**Speech-to-Text (STT)** — его ещё называют **транскрипцией (transcription)** или **ASR (automatic speech recognition)** — превращает речь в письменный текст. Это ухо системы: человек говорит, STT выдаёт слова, над которыми потом думает модель. Современный STT очень точен и справляется с живой, неряшливой речью куда лучше старого распознавания голоса. Именно этот шаг позволяет просто говорить вместо того, чтобы печатать.

_Diagram: STT (ASR): звуковая волна на входе, слова для модели на выходе._

#### Speech-to-Text (STT, ASR, транскрипция)

- **Что это:** Ухо системы: превращает речь в текст.
- **Как работает:** Слушает аудио и выдаёт слова, которые потом читает модель.
- **Пример:** Пользователь говорит — на выходе строка «столик на двоих».
- **Подвох:** Не идеален: акценты, шум, имена и термины дают ошибки.
- **Связи:** Первый этап **Voice Pipeline**; его ошибки — это **Error Propagation**.

### Error Propagation — ошибка уха течёт дальше

> Если стенограф ослышался в одном слове, каждый следующий читатель получит эту ошибку. Она вшита в самом начале.

STT не идеален: **акценты, фоновый шум, речь в несколько голосов, термины и имена** — всё это даёт неверную расшифровку. А раз STT — первый этап, его ошибки **распространяются (error propagation)**: модель рассуждает над тем текстом, который ей дали. Одно ослышанное слово может тихо увести весь ответ не туда. Голосовая система хороша ровно настолько, насколько хороша её расшифровка. Поэтому проектируй под неидеальный ввод: модель должна спокойно переваривать слегка искажённый текст, а ты следишь, где ухо буксует сильнее всего.

_Diagram: Ошибка на первом этапе проходит через всю цепочку — модель уверенно отвечает не на то._

#### Error Propagation (ошибки текут вниз по конвейеру)

- **Что это:** Ошибка STT становится входом для всех следующих этапов.
- **Как работает:** Модель не слышит звук — она верит тексту, который получила.
- **Пример:** STT ослышался в имени — модель уверенно ищет не того человека.
- **Что делать:** Проектировать под неидеальный ввод; следить за шумом и акцентами реальных пользователей.
- **Связи:** Слабое место **Speech-to-Text**; модель из **LLM Core** его не видит.

### Streaming STT — расшифровка на ходу

> Стенограф, который печатает, пока ты говоришь, а не ждёт конца речи. Текст появляется в ногу со словами.

STT может быть **потоковым (streaming)** — расшифровывать непрерывно, пока человек говорит, а не ждать конца фразы и обрабатывать весь кусок разом. Это важно для скорости: система начинает работу раньше и реагирует сразу, как только человек замолчал, без долгой паузы. Выбор «расшифровать в конце или на ходу» — одно из первых решений о задержке. Обычно именно потоковость делает систему живой.

_Diagram: Batch ждёт конца фразы и добавляет паузу; streaming расшифровывает на ходу и реагирует сразу._

#### Streaming STT (потоковая расшифровка)

- **Что это:** Расшифровка непрерывно, пока человек ещё говорит.
- **Как работает:** Текст копится по ходу речи — к концу фразы он уже почти готов.
- **Пример:** Пользователь договорил — система отвечает сразу, а не после паузы на расшифровку.
- **Подвох:** Без неё к каждому ответу добавляется заметная пауза.
- **Связи:** Пара к **Streaming TTS**; часть приёма **Stream & Overlap**.

> **Вопрос слушания:** «Насколько точна моя расшифровка на реальных пользователях — с их акцентами и шумом — и работает ли она потоково, чтобы система реагировала сразу, как человек замолчал?»

> STT — это ухо: оно превращает речь в текст для модели. Его ошибки текут дальше, поэтому проектируй под неидеальный ввод — и расшифровывай на ходу.

## 3. Текст в речь

Последний этап превращает текстовый ответ модели обратно в голос. Это то, что человек реально слышит, поэтому от качества этого этапа зависит, каким ощущается весь продукт.

### Text-to-Speech — текст становится голосом

> Диктор читает сценарий вслух — и написанные слова становятся живой, выразительной речью, а не зачитыванием.

**Text-to-Speech (TTS)**, или **синтез речи (speech synthesis)**, превращает текстовый ответ модели в звук. Это рот системы. Современный TTS даёт очень естественные голоса — с живой интонацией и ритмом, совсем не как плоская роботская речь прошлого. Отличный конвейер с роботским голосом всё равно ощущается дёшево. Естественный голос делает всё общение человечным — во многом поэтому голосовые продукты вообще стали возможны.

_Diagram: TTS: текст ответа на входе, живой голос — интонация, ритм, темп — на выходе._

#### Text-to-Speech (TTS, синтез речи)

- **Что это:** Рот системы: превращает текст ответа в голос.
- **Как работает:** Берёт текст от модели и синтезирует речь с интонацией и ритмом.
- **Пример:** Строка «Столик забронирован» становится тёплой живой фразой.
- **Подвох:** Роботский голос делает дешёвым даже отличный конвейер.
- **Связи:** Последний этап **Voice Pipeline**; тон задаёт **Voice Persona**, скорость — **Streaming TTS**.

### Voice Persona — голос несёт опыт

> Одни и те же слова, сказанные тепло или холодно, воспринимаются совсем по-разному. Человек реагирует на подачу, а не только на смысл.

В голосовом продукте _как_ сказано так же важно, как _что_ сказано. Выбор голоса, его тон и темп — это продуктовые решения. Они влияют на доверие и комфорт так же, как визуальный дизайн в экранном продукте. Голос слишком быстрый, слишком плоский или со странной интонацией портит даже хороший ответ. Поэтому TTS — не то, что прикручивают в последний момент. Голос (**voice persona**) выбирают и настраивают так же внимательно, как любой элемент интерфейса.

_Diagram: Одни и те же слова: тёплая подача вызывает доверие, плоская и быстрая — портит хороший ответ._

#### Voice Persona (голос и подача продукта)

- **Что это:** Выбранный голос, тон и темп — «лицо» голосового продукта.
- **Как работает:** Подача меняет, как воспринимается тот же самый ответ.
- **Пример:** «Ваш заказ задерживается» спокойным тёплым голосом — и то же самое быстро и плоско.
- **Подвох:** Если оставить голос «по умолчанию», он может подрывать доверие к хорошим ответам.
- **Связи:** Настройка **Text-to-Speech**; часть **Conversation Flow**.

### Streaming TTS — говорить, пока пишешь

> Человек, который начинает отвечать, пока додумывает мысль, — а не молча сочиняет весь ответ и выдаёт его одним куском.

Как STT может принимать звук потоком, так и TTS может **отдавать его потоком (streaming)**: начинать говорить первую часть ответа, пока остальное ещё пишется. Не нужно ждать полного текста и полного аудио, чтобы издать первый звук. Человек слышит, что ответ начался почти сразу, а не сидит в тишине. Вместе с моделью, которая тоже отдаёт текст потоком, это и убирает неловкую паузу: речь начинается, как только есть что сказать.

_Diagram: Batch молчит, пока не готов весь ответ; streaming начинает говорить, пока модель ещё пишет._

#### Streaming TTS (потоковый синтез)

- **Что это:** Озвучка начала ответа, пока остальное ещё генерируется.
- **Как работает:** Модель отдаёт текст кусками, TTS превращает каждый кусок в звук сразу.
- **Пример:** Первые слова ответа звучат почти мгновенно, а не после тишины.
- **Подвох:** Без потока человек сидит в тишине, пока готовится весь ответ.
- **Связи:** Пара к **Streaming STT**; часть приёма **Stream & Overlap**.

> **Вопрос голоса:** «Звучит ли мой голос достаточно естественно, чтобы нести опыт, — и начинается ли ответ почти сразу, а не после тишины?»

> TTS — это рот: он озвучивает ответ модели, и современные голоса звучат так естественно, что несут весь опыт. Озвучивай потоком — пусть ответ начинается сразу, а не после тишины.

## 4. Вызов задержки

Вот что делает голос по-настоящему трудным. У разговора есть ритм, и весь конвейер из трёх этапов должен уложиться в него — иначе магия ломается.

### Latency Budget — у разговора тесное окно

> В живом разговоре ответ на такт позже звучит неловко, а ответ через несколько секунд — будто что-то сломалось. Окно для «естественно» маленькое.

Люди ждут ответа в разговоре за **долю секунды**. Задержка, которую в чате никто не заметит, в речи режет слух: пара секунд тишины после твоей фразы — и кажется, что система зависла. Это тесное окно — **бюджет задержки (latency budget)** — главное ограничение голосового ИИ. Весь круг — услышать, расшифровать, подумать, синтезировать, сказать — должен в него влезть. Промахнулся — и даже идеальный ответ ощущается сломанным.

_Diagram: Доля секунды — естественно, на такт позже — неловко, несколько секунд — «зависло». Весь круг должен уложиться в первое окно._

#### Latency Budget (бюджет задержки)

- **Что это:** Окно времени на ответ, которое терпит живой разговор, — доля секунды.
- **Как работает:** Всё — от «услышать» до «сказать» — должно поместиться в это окно.
- **Пример:** Пауза в пару секунд, незаметная в чате, в голосе звучит как «система зависла».
- **Подвох:** Промахнулся — и даже верный ответ ощущается сломанным.
- **Связи:** Его съедает **Latency Stacking**; спасают **Stream & Overlap** и **Speech-to-Speech**.

### Latency Stacking — задержки складываются

> Эстафета: общее время — это сумма всех этапов. Медленная передача палочки где угодно — и опаздывает вся команда.

Самое жестокое: задержка **накапливается (stacks up)** по конвейеру. Время на расшифровку + время модели + время синтеза — всё складывается в ту паузу, которую чувствует человек. Мало, чтобы каждый этап был «достаточно быстрым» сам по себе, если их сумма вылезает за бюджет. Поэтому голос труднее текста: текстовый чат ждёт только модель, а голос ждёт три этапа подряд — и окно у разговора гораздо теснее.

_Diagram: Чат ждёт один этап; голос ждёт три подряд, и их сумма вылезает за бюджет._

#### Latency Stacking (накопление задержки)

- **Что это:** Задержки трёх этапов складываются в одну общую паузу.
- **Как работает:** Общая задержка = STT + модель + TTS, если идти строго по очереди.
- **Пример:** Каждый этап «быстрый», но вместе — неловкая тишина после каждой фразы.
- **Подвох:** Оптимизировать один этап мало — человек чувствует сумму.
- **Связи:** Ломает **Latency Budget**; лечится **Stream & Overlap** или **Speech-to-Speech**.

### Stream & Overlap — этапы внахлёст

> Синхронный переводчик: переводит, пока ты говоришь, и начинает озвучивать ответ посреди мысли. Этапы идут внахлёст, а не строго один за другим.

Главный приём — **потоковость и наложение (stream & overlap)** этапов вместо работы строго по очереди. Расшифровывай, пока человек говорит. Дай модели начать писать ответ, не дожидаясь полной обработки вопроса. Начинай озвучивать ответ, пока он ещё не дописан. Наложение трёх этапов вместо ожидания каждого — вот как голосовая система сжимает общую задержку до разговорной. Всё искусство быстрого голоса — держать конвейер в непрерывном движении, без остановок на каждом этапе.

_Diagram: Та же работа: по очереди — поздно, внахлёст — ответ начинается гораздо раньше._

#### Stream & Overlap (потоковость и наложение этапов)

- **Что это:** Все три этапа работают потоком и одновременно, а не по очереди.
- **Как работает:** STT расшифровывает на ходу, модель начинает раньше, TTS говорит, пока модель пишет.
- **Пример:** Голосовой агент отвечает без паузы, хотя внутри у него те же три этапа.
- **Подвох:** Систему с потоками сложнее строить, чем «сделал этап — отдал дальше».
- **Связи:** Объединяет **Streaming STT** и **Streaming TTS**; главный способ уложиться в **Latency Budget**.

> **Вопрос задержки:** «Успевает ли весь мой конвейер — расшифровать, подумать, сказать — уложиться в разговорное окно, и идут ли этапы потоком и внахлёст?»

> У разговора тесный бюджет задержки, а задержки трёх этапов складываются. Пусти их потоком и внахлёст — расшифровывай, думай и говори одновременно, а не по очереди.

## 5. Очередь реплик и перебивания

Кроме скорости, у живого разговора есть хореография: кто и когда говорит. Именно она отличает живого голосового агента от неуклюжего.

### Turn-taking — понять, что человек договорил

> Хороший собеседник отличает паузу на вдох от конца фразы. Он не влезает каждый раз, когда ты задумался.

Голосовая система должна понять, когда человек **действительно закончил**, а когда просто сделал паузу посреди мысли. Это задача **очерёдности реплик (turn-taking)**: когда наступает очередь системы. Влезешь слишком рано — перебьёшь человека. Будешь ждать слишком долго — разговор тянется. Это решение на удивление трудное и очень важное для естественности. Люди делают его без усилий, по тонким подсказкам. Голосовой агент должен приблизиться к этому настолько, чтобы обмен репликами шёл гладко.

_Diagram: Пауза на вдох — слушаем дальше; конец фразы — наша очередь. Ошибка в любую сторону ломает разговор._

#### Turn-taking (очерёдность реплик)

- **Что это:** Решение: пауза — это вдох или конец реплики?
- **Как работает:** Система слушает паузы и решает, когда её очередь отвечать.
- **Пример:** «Я хочу забронировать… [пауза] …на пятницу» — после первой паузы ещё рано отвечать.
- **Подвох:** Рано — обрежешь человека; поздно — разговор тянется.
- **Связи:** Вместе с **Barge-in** составляет **Conversation Flow**.

### Barge-in — уступить, когда перебили

> Когда ты начинаешь говорить поверх собеседника, он замолкает и слушает. Он не дочитывает своё предложение, будто ты ничего не сказал.

В живом разговоре перебивают. Если человек заговорил, пока ИИ ещё говорит, — это **barge-in** (вклинивание). Естественная система замолкает, слушает и отвечает на новое, а не дочитывает заготовленный ответ поверх человека. Поддержка перебивания — признак хорошего голосового агента. Плохой просто говорит поверх тебя, ничего не замечая. Чтобы обрабатывать barge-in, система должна **слушать всегда, даже когда говорит**, и уступать слово в тот же миг.

_Diagram: Пользователь вклинился — агент замолкает, слушает и отвечает, а не говорит поверх._

#### Barge-in (вклинивание, перебивание)

- **Что это:** Умение остановиться, когда человек перебил.
- **Как работает:** Система слушает даже во время своей речи; услышала голос — замолчала и слушает.
- **Пример:** Агент перечисляет варианты, человек говорит «второй!» — агент сразу переключается.
- **Подвох:** Без barge-in агент говорит поверх человека и кажется глухим.
- **Связи:** Вместе с **Turn-taking** составляет **Conversation Flow**.

### Conversation Flow — поток и есть продукт

> Хороший собеседник и неловкий говорят похожие слова. Разница — в тайминге, умении слушать и уступать. Поток и есть опыт.

Естественный агент или роботский — во многом решает эта хореография: чувствовать очередь, уступать при перебивании, не оставлять **мёртвый эфир (dead air)** и не говорить поверх человека. Эти детали **потока разговора (conversation flow)** так же важны, как точность ответа: верный ответ с неуклюжим таймингом всё равно ощущается сломанным. Проектировать голосовой продукт — значит проектировать _разговор_, а не только ответы. Ритм «кто и когда говорит» — полноценная часть опыта, а не полировка в конце.

_Diagram: Те же слова: гладкая смена реплик против мёртвого эфира и разговора поверх._

#### Conversation Flow (поток разговора)

- **Что это:** Ритм разговора: кто и когда говорит, паузы, уступки.
- **Как работает:** Складывается из turn-taking, barge-in и отсутствия мёртвого эфира.
- **Пример:** Два агента с одинаковыми ответами: один ощущается человеком, другой — автоответчиком.
- **Подвох:** Верный ответ с неуклюжим таймингом всё равно кажется сломанным.
- **Связи:** Собирается из **Turn-taking** и **Barge-in**; зависит от **Latency Budget**.

> **Вопрос потока:** «Понимает ли мой агент, когда человек договорил, замолкает ли, когда его перебили, и держит ли естественный ритм — или обрывает людей и говорит поверх них?»

> Живому голосу нужны turn-taking — понять, что человек договорил, — и barge-in — замолчать, когда перебили. Ритм «кто и когда говорит» — такой же продукт, как сами ответы.

## 6. Realtime-модели

К классическому каскаду добавился новый подход: модели, которые работают с голосом напрямую, от края до края, и схлопывают этапы, чтобы срезать задержку. Стоит знать, куда движется область.

### Speech-to-Speech — одна модель вместо трёх

> Вместо цепочки «переводчик записал — мыслитель ответил — диктор озвучил» — один человек, который слышит, думает и отвечает сразу. Как прямой рейс вместо двух пересадок.

Новый класс моделей — **realtime**, или **speech-to-speech** (речь в речь) — работает со звуком напрямую. Голос внутрь, голос наружу, без отдельных шагов «расшифровать → обдумать → синтезировать». Вместо трёх моделей в цепочке — одна. Это **end-to-end** подход. Главный выигрыш — **задержка**: нет границ между этапами — нет и задержек на передачу. Второй выигрыш — ничего не теряется на преобразованиях: модель слышит, _как_ что-то сказано, а не только слова, сохраняет тон и эмоцию и может ответить в тон.

_Diagram: Каскад теряет тон на текстовых передачах; speech-to-speech — одна модель, голос внутрь и голос наружу._

#### Speech-to-Speech (realtime-модель, end-to-end)

- **Что это:** Одна модель, которая принимает голос и сразу отвечает голосом.
- **Как работает:** Нет отдельных STT и TTS — значит, нет передач между этапами и их задержек.
- **Пример:** Модель слышит раздражение в голосе и отвечает спокойнее — текстовый каскад этого не увидит.
- **Подвох:** Середина — «чёрный ящик»: меньше видимости и контроля.
- **Связи:** Альтернатива **Voice Pipeline**; самый прямой путь в **Latency Budget**.

### Pipeline vs End-to-End — настоящий выбор

> Можно ехать серией поездов и управлять каждым отрезком, а можно прямым рейсом — быстрее, но маршрут уже не твой. Разные компромиссы, оба честные.

Классический **конвейер (pipeline)** и **end-to-end** модель — оба реальные варианты со своей ценой. Конвейер даёт контроль и гибкость на каждом этапе: заменить STT, посмотреть расшифровку, взять любую модель — ценой задержки и сложности. End-to-end даёт скорость и естественность, но меньше видимости и контроля над серединой. Зная оба, ты выбираешь осознанно: прозрачный гибкий конвейер или быстрый плавный end-to-end — смотря что твоему продукту нужнее.

_Diagram: Конвейер: контроль и гибкость, но задержка. End-to-end: скорость и живость, но меньше контроля._

#### Pipeline vs End-to-End (каскад или realtime)

- **Что это:** Выбор архитектуры голосового продукта.
- **Pipeline:** Можно заменить STT/TTS, читать расшифровку, взять любую модель. Цена — задержка и больше деталей.
- **End-to-end:** Минимальная задержка, тон и эмоции сохраняются. Цена — меньше видимости и контроля.
- **Когда что:** Нужен контроль и проверяемость — конвейер; нужна скорость и живость — end-to-end.
- **Связи:** Сравнивает **Voice Pipeline** и **Speech-to-Speech**.

> **Вопрос архитектуры:** «Что нужнее моему продукту: контроль и гибкость конвейера из трёх этапов — или скорость и живость end-to-end realtime-модели?»

> Realtime-модели принимают и выдают голос напрямую: меньше этапов — меньше задержка, и тон не теряется. Конвейер или end-to-end — честный выбор: контроль и гибкость против скорости и живости.

## 7. Применять хорошо

Применять голос хорошо — значит брать его там, где он уместен, и помнить: больше всего на свете задержка решает, будет ли это волшебно или сломано.

### Modality Fit — голос там, где он к месту

> За рулём ты скорее скажешь адрес вслух, а длинную анкету за столом лучше напечатаешь. Правильный способ ввода зависит от ситуации.

Голос силён там, где он уместен: **руки заняты**, **доступность**, естественный разговор, ситуации, где говорить быстрее или безопаснее, чем печатать. И слаб там, где лучше текст: **точный ввод**, **приватность на людях**, **внимательная проверка**. Навык в том, чтобы подбирать **модальность (modality)** под момент, а не добавлять голос, потому что это впечатляет. Голос там, где лучше текст, — шаг назад. Голос там, где говорить естественно, — прорыв. Выбирай под ситуацию, а не ради новизны.

_Diagram: Голос — когда руки заняты и нужен разговор; текст — когда нужны точность, приватность и проверка._

#### Modality Fit (уместность голоса)

- **Что это:** Выбор голоса или текста под конкретную ситуацию.
- **Голос подходит:** Руки заняты, вождение, доступность, живой разговор.
- **Текст подходит:** Точный ввод, приватность на людях, внимательная проверка.
- **Подвох:** Голос «потому что модно» там, где лучше текст, — это даунгрейд.
- **Связи:** Первый вопрос до всего остального; без него **Latency-First** не нужен.

### Latency-First Design — бюджет задержки с первого дня

> Шеф планирует весь ужин вокруг блюда, которое готовится дольше всех, — а не узнаёт о нём в последний момент.

Раз задержка решает всё, проектируй под неё **с самого начала (latency-first)**: потоковость на каждом этапе, end-to-end модель там, где скорость критична, и план на случай, если какой-то этап тормозит. Голосовые фичи, где о задержке вспоминают в конце, ощущаются вялыми и сломанными, какими бы хорошими ни были ответы. Относись к времени ответа как к главному ограничению голосового продукта — той самой цифре, промах по которой рушит всё остальное.

_Diagram: Сначала бюджет, потом потоковость, end-to-end где нужно и план на медленный этап._

#### Latency-First Design (проектирование от задержки)

- **Что это:** Время ответа — главное ограничение, вокруг которого строится всё.
- **Как работает:** Задать бюджет → потоковость везде → end-to-end где критично → план на медленный этап.
- **Пример:** Засечь весь круг в первом прототипе и не принимать решений, которые его ломают.
- **Подвох:** Задержку, найденную в конце, уже трудно починить.
- **Связи:** Защищает **Latency Budget**; опирается на **Stream & Overlap** и **Speech-to-Speech**.

### Как всё связано

> Схема метро целиком: теперь видно, где линии пересекаются.

Каскад даёт **накопление задержки**, которое бьёт по **бюджету**. Спасают **потоковость и наложение** этапов или **speech-to-speech**. Уложился в бюджет и выстроил **поток разговора** из turn-taking и barge-in — разговор ощущается живым. А **modality fit** решает, нужен ли голос вообще.

_Diagram: Задержка в центре: каскад её копит, потоковость и speech-to-speech срезают; вместе с потоком разговора это даёт естественность._

#### Прежде чем выкатывать голосовую фичу

- **Правда ли голос подходит** ситуации — или пользователю лучше послужил бы текст?
- **Идёт ли каждый этап потоком** — расшифровка, обдумывание и речь внахлёст, а не строго по очереди?
- **Ощущается ли общая задержка** разговорной — или есть неловкая пауза?
- **Есть ли turn-taking** — понимание, что человек договорил, — и **barge-in**?
- **Достаточно ли естественен голос**, чтобы нести опыт?
- **Конвейер или end-to-end** — выбрана ли архитектура под нужды задержки и контроля?

#### Признаки, что ты строишь голос хорошо

- Голос выбран там, где **говорить действительно уместно**, а не ради новизны.
- Каждый этап **идёт потоком и внахлёст**, поэтому ответ начинается почти сразу.
- Общая **задержка ощущается разговорной**, без неловкой тишины.
- Агент умеет **turn-taking и barge-in**, поэтому разговор течёт естественно.
- **Конвейер или end-to-end** выбран осознанно, с оглядкой на **бюджет задержки**.

## Шпаргалка: все 18 понятий

### Конвейер

- **Voice Pipeline** (каскад): STT → модель → TTS: ухо, мозг, рот по очереди.
- **LLM Core** (рассуждающее ядро): Та же текстовая модель в середине; новые только края.

### Слушать

- **Speech-to-Text** (STT, ASR): Ухо: превращает речь в текст.
- **Error Propagation** (ошибки текут дальше): Ошибка расшифровки становится входом для модели.
- **Streaming STT** (расшифровка на ходу): Текст готов к концу фразы — реакция без паузы.

### Говорить

- **Text-to-Speech** (TTS, синтез): Рот: превращает текст ответа в голос.
- **Voice Persona** (голос и подача): Тон и темп — часть продукта, а не мелочь.
- **Streaming TTS** (потоковый синтез): Начинает говорить, пока ответ ещё пишется.

### Задержка

- **Latency Budget** (бюджет задержки): Ответ за долю секунды — иначе «зависло».
- **Latency Stacking** (накопление): Задержки трёх этапов складываются в одну.
- **Stream & Overlap** (этапы внахлёст): Все этапы потоком и одновременно — главный способ успеть.

### Очередь реплик

- **Turn-taking** (очерёдность реплик): Отличить паузу на вдох от конца фразы.
- **Barge-in** (вклинивание): Перебили — замолчи, послушай, ответь.
- **Conversation Flow** (поток разговора): Ритм «кто и когда говорит» — такой же продукт, как ответы.

### Realtime

- **Speech-to-Speech** (realtime, end-to-end): Одна модель: голос внутрь, голос наружу. Меньше задержка, тон не теряется.
- **Pipeline vs End-to-End** (выбор архитектуры): Контроль и гибкость против скорости и живости.

### Применять хорошо

- **Modality Fit** (уместность голоса): Голос — где говорить естественно; текст — где нужна точность.
- **Latency-First Design** (задержка с первого дня): Строить всё вокруг бюджета времени ответа.

> Голос — это слушать, думать и говорить так быстро, чтобы ощущалось разговором. Пускай конвейер потоком и внахлёст, держи очередь реплик и перебивания, выбирай конвейер или end-to-end осознанно — и относись к задержке как к ограничению, под которое гнётся всё остальное.

Конец экспресс-курса · 7 глав · 18 понятий

Дальше — практика: собери простейшую голосовую петлю — речь в текст, ответ модели, текст в речь — и засеки весь круг. Потом пусти каждый этап потоком и посмотри, как сжимается ощущаемая задержка. Наконец, перебей агента посреди ответа и проверь, замолчит ли он и станет ли слушать. Задача становится настоящей в тот момент, когда ты чувствуешь, как секундная пауза ломает иллюзию разговора. Но держи одну мысль выше прочих: голос — это та же думающая модель с ухом и ртом вокруг, и вся трудность — делать все три достаточно быстро, чтобы ощущалось живым. Потоковость везде, внимание к очереди реплик и защита бюджета задержки — вот что делает разговор с ИИ разговором, а не ожиданием.
