Речь на входе и выходе (STT / TTS)
AiHummer обрабатывает речь на входе и на выходе «из коробки» — отдельный
платный API‑ключ не обязателен; доступность и условия онлайн‑сервиса edge-tts
задаются его поставщиком. Входящий аудиофрагмент распознаётся (STT), текст
запускает обычную обработку запроса агентом, а ответ озвучивается (TTS).
faster-whisper работает локально; edge-tts использует внешний онлайн‑сервис
Microsoft. Оба подключаются как
дополнительные сервисы: faster-whisper для
распознавания и edge-tts для синтеза.
Как проходит обработка аудиозапроса
Обработка аудиозапроса — это обычная обработка запроса агентом с аудио на обоих концах:
- Шлюз отправляет входящее аудио в сервис STT (
:8001, faster-whisper — локально) и получает текст. - Этот текст запускает обычный цикл вызова функций — те же маршрутизатор, оркестратор, инструменты и память, что и для текстового сообщения.
- Текст ответа отправляется в сервис TTS (
:8002, edge-tts — внешний онлайн-сервис Microsoft), и озвученное аудио возвращается звонящему.
Всё это доступно через единый endpoint POST /v1/voice/turn: канал или клиент
передаёт аудио и получает аудио, не оркеструя шаги самостоятельно.
Endpoints
| Метод | Endpoint | Назначение |
|---|---|---|
POST |
/v1/voice/turn |
Аудио на входе → обработка агентом → аудио на выходе |
GET |
/v1/voice/config |
Текущая голосовая конфигурация (движки, настройки) |
POST /v1/voice/turn HTTP/1.1
Host: localhost:8780
Content-Type: application/json
{
"audio": "<клип в base64>",
"format": "wav"
}
[!NOTE] Речевые возможности входят в ядро — они не привязаны к плагину SIP. Канал SIP использует эти же движки STT/TTS для своего движка
local, но речь на входе/выходе работает для любого клиента, который вызывает/v1/voice/turn.
Голосовые сервисы
| Порт | Сервис | Движок | Роль | Подключается через |
|---|---|---|---|---|
| 8001 | STT | faster-whisper | речь → текст | AIHUMMER_STT_URL |
| 8002 | TTS | edge-tts | текст → речь | AIHUMMER_TTS_URL |
faster-whisper может распознавать речь локально. edge-tts обращается к
онлайн‑сервису Microsoft Edge, поэтому текст для синтеза покидает ваш контур.
Для полностью изолированного режима подключите локальный TTS‑движок. Как и
любой дополнительный сервис, шлюз обращается к ним по URL, поэтому их можно
запустить рядом со шлюзом или указать на общий экземпляр.
Подключение
Установщик прописывает URL STT и TTS за вас. Это настройки каталога —
меняйте их из веб-интерфейса (Управление → Настройки) или командой
aihummer settings set; gateway.env — только для начальной загрузки и для
этих ключей игнорируется:
# Речь на входе/выходе (настраивается установщиком)
aihummer settings set AIHUMMER_STT_URL http://127.0.0.1:8001
aihummer settings set AIHUMMER_TTS_URL http://127.0.0.1:8002
[!TIP] Поскольку каждый сервис — это просто URL, несколько шлюзов могут использовать один экземпляр STT/TTS. Централизуйте более тяжёлые речевые сервисы вместо копии на каждом хосте.
Настройка аудио-тракта
Настройки качества речи находятся в группе «Media · Voice» и конфигурируются из веб-интерфейса — без повторного развёртывания. Они охватывают аудио-тракт реального времени:
| Настройка | Что регулирует |
|---|---|
| Duplex | Полный дуплекс (слушать во время речи) или полудуплекс |
| AEC | Подавление акустического эха |
| Noise suppression | Фильтрация фонового шума до STT |
| AGC | Автоматическая регулировка усиления (нормализация уровня) |
| VAD threshold | Чувствительность детектора голосовой активности |
| Barge-in | Возможность перебить агента во время ответа |
GET /v1/voice/config возвращает действующую конфигурацию, чтобы клиент мог
узнать активные движки и эти настройки.
Куда дальше
- Транспортная модель за этими сервисами: Дополнительные сервисы.
- Перевод речи и понимание видео: Перевод речи и видео.
- Голос на телефонной линии: SIP-телефония.