Hermes Agent — это AI-агент с открытым кодом от Nous Research, который поддерживает полноценное голосовое взаимодействие: распознавание речи, синтез ответов через 10 TTS-провайдеров и работу в голосовых каналах Discord. В отличие от простых чат-ботов, Hermes озвучивает ответы в реальном времени, предложение за предложением, и может прерываться голосом прямо посреди реплики.
В этой статье — пошаговая настройка голосового режима в Hermes: от установки зависимостей до выбора TTS-провайдера и тонкой регулировки параметров.
Что такое голосовой режим в Hermes Agent?
Голосовой режим в Hermes Agent — это функция, которая позволяет разговаривать с AI-агентом голосом вместо текста. Агент слушает вас через микрофон, транскрибирует речь в текст с помощью Whisper, обрабатывает запрос и озвучивает ответ через выбранный TTS-провайдер.
Hermes поддерживает три формата голосового взаимодействия:
Все три режима работают на одном и том же движке, с одинаковыми настройками и одинаковым качеством.
Какие TTS-провайдеры поддерживаются?
Hermes Agent работает с 10 провайдерами синтеза речи. Это самый широкий выбор среди AI-агентов с открытым кодом — от бесплатных локальных моделей до премиум-сервисов с голосами, неотличимыми от человека.
| Провайдер | Качество | Стоимость | API-ключ |
|---|---|---|---|
| Edge TTS (по умолчанию) | Хорошее | Бесплатно | Не нужен |
| ElevenLabs | Отличное | Платно | ELEVENLABS_API_KEY |
| OpenAI TTS | Хорошее | Платно | VOICE_TOOLS_OPENAI_KEY |
| MiniMax TTS | Отличное | Платно | MINIMAX_API_KEY |
| Mistral Voxtral | Отличное | Платно | MISTRAL_API_KEY |
| Google Gemini TTS | Отличное | Бесплатный тариф | GEMINI_API_KEY |
| xAI TTS | Отличное | Платно | XAI_API_KEY |
| NeuTTS | Хорошее | Бесплатно (локально) | Не нужен |
| KittenTTS | Хорошее | Бесплатно (локально) | Не нужен |
| Piper | Хорошее | Бесплатно (локально) | Не нужен |
Edge TTS включён по умолчанию и не требует никаких ключей. Это облачный сервис Microsoft с 322 голосами на 74 языках. Качество приличное, скорость хорошая — подходит для большинства задач.
ElevenLabs — лидер по качеству голоса. Более 10 000 голосов, клонирование голоса, поддержка 70+ языков с автоматическим определением. Латентность синтеза — около 75 мс. Стоимость начинается от $6/месяц.
Локальные провайдеры (NeuTTS, KittenTTS, Piper) работают полностью на вашем оборудовании без интернета и без API-ключей. NeuTTS и KittenTTS — нейросетевые модели, Piper — классический параметрический синтезатор. Все три требуют ffmpeg для конвертации аудио в формат Telegram.
Пошаговая настройка голосового режима
Шаг 1: Установка зависимостей
Сначала убедитесь, что Hermes Agent установлен и работает с текстовым вводом. Затем установите голосовые зависимости:
cd ~/.hermes/hermes-agent && uv pip install -e ".[voice]"
Для поддержки Discord и Telegram с голосовыми сообщениями:
cd ~/.hermes/hermes-agent && uv pip install -e ".[messaging]"
Для премиум-синтеза речи через ElevenLabs:
cd ~/.hermes/hermes-agent && uv pip install -e ".[tts-premium]"
Или всё сразу:
cd ~/.hermes/hermes-agent && uv pip install -e ".[all]"
Шаг 2: Системные зависимости
На macOS:
brew install portaudio ffmpeg opus
brew install espeak-ng # для NeuTTS
На Ubuntu или Debian:
sudo apt install portaudio19-dev ffmpeg libopus0
sudo apt install espeak-ng # для NeuTTS
PortAudio нужен для захвата звука с микрофона и воспроизведения. ffmpeg конвертирует аудио между форматами — без него Edge TTS не сможет отправлять голосовые сообщения в Telegram. Opus — кодек для Discord-голосовых каналов.
Шаг 3: Настройка API-ключей
Добавьте ключи в файл ~/.hermes/.env:
# Распознавание речи (Whisper)
# Локальный faster-whisper — бесплатный, рекомендуется
# pip install faster-whisper
# Groq Whisper — быстрый, бесплатный тариф (облако)
GROQ_API_KEY=your-key
# OpenAI Whisper — платный (облако)
VOICE_TOOLS_OPENAI_KEY=your-key
# Синтез речи (опционально — Edge TTS работает без ключа)
ELEVENLABS_API_KEY=your-key
Важно: если вы установите faster-whisper, распознавание речи будет работать без единого API-ключика. Модель (~150 МБ для базовой версии) скачивается автоматически при первом использовании.
Пользователи с подпиской Nous Portal получают OpenAI TTS через Tool Gateway — отдельный ключ OpenAI не нужен. Достаточно выполнить hermes setup --portal при первоначальной настройке.
Шаг 4: Выбор и настройка TTS-провайдера
Настройки синтеза речи находятся в ~/.hermes/config.yaml:
tts:
provider: "edge" # провайдер по умолчанию
speed: 1.0 # глобальная скорость
Edge TTS (бесплатный, по умолчанию):
tts:
provider: "edge"
edge:
voice: "ru-RU-DmitryNeural" # русский голос
speed: 1.0
Список всех 322 голосов Edge TTS доступен в документации Hermes. Для русского языка подходят ru-RU-DmitryNeural, ru-RU-SvetlanaNeural и другие.
ElevenLabs (премиум):
tts:
provider: "elevenlabs"
elevenlabs:
voice_id: "pNInz6obpgDQGcFmaJgB" # Adam
model_id: "eleven_multilingual_v2"
OpenAI TTS:
tts:
provider: "openai"
openai:
model: "gpt-4o-mini-tts"
voice: "alloy" # alloy, echo, fable, onyx, nova, shimmer
speed: 1.0
Google Gemini TTS (бесплатный тариф):
tts:
provider: "gemini"
gemini:
model: "gemini-2.5-flash-preview-tts"
voice: "Kore" # 30 голосов: Zephyr, Puck, Kore, Enceladus, Gacrux и др.
Gemini TTS поддерживает персональные промпты для голоса — можно создать файл с описанием характера голоса и указать его в persona_prompt_file.
Piper (локальный, бесплатный):
tts:
provider: "piper"
piper:
voice: "ru-ru-irina-medium" # русский голос
Piper скачивает модель голоса автоматически при первом использовании.
Шаг 5: Запуск голосового режима
Запустите Hermes в интерактивном режиме:
hermes
Внутри CLI включите голосовой режим:
/voice on
Или переключайте его командой /voice. Проверить текущее состояние можно командой /voice status.
Как работает голосовой режим в CLI?
После включения голосового режима нажмите Ctrl+B для начала записи. Hermes воспроизводит звуковой сигнал (880 Гц), и вы начинаете говорить.
Во время записи на экране отображается уровень громкости:
● [▁▂▃▅▇▇▅▂] ❯
Когда вы замолкаете, Hermes ждёт 3 секунды тишины и автоматически останавливает запись. Затем воспроизводит два коротких сигнала (660 Гц), аудио транскрибируется через Whisper и отправляется агенту.
Если TTS включён, ответ озвучивается по предложениям — вы не ждёте полного завершения генерации. Агент начинает говорить, как только сформировано первое предложение.
После ответа запись автоматически запускается снова — говорите дальше, не нажимая кнопок. Этот цикл продолжается до тех пор, пока вы не нажмёте Ctrl+B во время записи или пока не будет обнаружено 3 последовательных записи без речи.
Прерывание агента (Barge-in)
Hermes поддерживает прерывание голосом — вы можете перебить агента прямо посреди его ответа. Это работает в непрерывном голосовом режиме: пока агент говорит, встроенный детектор голосовой активности слушает вас и останавливает воспроизведение, как только вы начинаете говорить.
Детектор калибрует уровень шума относительно самого воспроизведения, поэтому звук из динамиков не вызывает ложного срабатывания.
Прерывание можно отключить в конфигурации:
voice:
barge_in: false
Агент знает, что его прервали: следующее сообщение содержит короткую пометку, что spoken-ответ был оборван, и модель реагирует естественно — может пошутить или продолжить с места остановки.
Детекция тишины
Hermes использует двухэтапный алгоритм для определения конца речи:
Если речь не обнаружена в течение 15 секунд, запись останавливается автоматически.
Оба параметра настраиваются в config.yaml:
voice:
silence_threshold: 200 # порог громкости
silence_duration: 3.0 # секунды тишины до остановки
Звуковые сигналы начала и конца записи можно отключить:
voice:
beep_enabled: false
Фильтр галлюцинаций Whisper
Whisper иногда генерирует фантомный текст из тишины или фонового шума — фразы вроде «Thank you for watching», «Subscribe» и подобные. Hermes фильтрует их автоматически с помощью набора из 26 известных фраз-галлюцинаций на нескольких языках, плюс регулярное выражение для поимки повторяющихся вариаций.
Это означает, что случайный шум или тишина не превратятся в ложный запрос к агенту.
Стриминговый синтез речи
Ключевая особенность Hermes — стриминговый TTS. Агент озвучивает ответ по предложениям по мере генерации текста, а не ждёт завершения всего ответа.
Как это работает:
thinkПровайдеры с поддержкой chunked PCM API (ElevenLabs, OpenAI) стримят необработанный аудиопоток для минимальной задержки от слова до звука. Остальные провайдеры, включая Edge TTS по умолчанию, синтезируют и воспроизводят каждое предложение по мере его завершения.
Голосовые сообщения в мессенджерах
Telegram
Hermes отправляет голосовые ответы в Telegram как inline voice bubbles — аудио проигрывается прямо в чате без скачивания.
Формат: Opus/OGG. Провайдеры OpenAI, ElevenLabs и Mistral генерируют Opus нативно. Edge TTS, MiniMax, Gemini, xAI, NeuTTS, KittenTTS и Piper требуют ffmpeg для конвертации:
# Ubuntu/Debian
sudo apt install ffmpeg
# macOS
brew install ffmpeg
Без ffmpeg аудио от этих провайдеров отправляется как обычный файл (воспроизводится, но отображается как прямоугольный проигрыватель вместо круглой voice bubble).
Discord
В Discord Hermes отправляет голосовые сообщения как Opus/OGG. Если формат не поддерживается, аудио отправляется как файл-вложение.
Для голосовых каналов Discord требуется библиотека discord.py[voice], которая автоматически устанавливает PyNaCl (шифрование голоса) и привязки Opus.
В WhatsApp голосовые ответы отправляются как MP3-файлы.
Ограничения длины текста
Каждый TTS-провайдер имеет ограничение на количество символов в одном запросе. Hermes автоматически обрезает текст, чтобы запросы не возвращали ошибку:
| Провайдер | Лимит символов |
|---|---|
| Edge TTS | 5 000 |
| OpenAI | 4 096 |
| MiniMax | 10 000 |
| Mistral | 4 000 |
| Google Gemini | 32 000 |
| xAI | 15 000 |
| ElevenLabs | Зависит от модели (до 40 000) |
| NeuTTS | 2 000 |
| KittenTTS | 2 000 |
| Piper | 5 000 |
Лимит можно переопределить в конфигурации:
tts:
openai:
max_text_length: 8192
Управление скоростью речи
Глобальная настройка скорости применяется ко всем провайдерам:
tts:
speed: 1.2 # на 20% быстрее
Каждый провайдер может переопределить глобальную скорость своей:
tts:
speed: 1.0
openai:
speed: 1.5 # OpenAI говорит быстрее остальных
Настройка провайдера имеет приоритет над глобальной. Диапазон значений зависит от провайдера: OpenAI — от 0,25 до 4,0, MiniMax — от 0,5 до 2,0.
Часто задаваемые вопросы
Можно ли использовать Hermes как замену Siri или Alexa?
Hermes — это не голосовой ассистент в традиционном смысле. Он не слушает постоянно и не просыпается по ключевому слову. Но в CLI-режиме с непрерывной записью он работает как полноценный голосовой помощник: говорите — получаете ответ. В Discord голосовых каналах Hermes ведёт себя как живой собеседник.
Какой TTS-провайдер выбрать для русского языка?
Edge TTS с голосом ru-RU-DmitryNeural или ru-RU-SvetlanaNeural — бесплатный и достаточно качественный. Для лучшего качества — ElevenLabs с моделью eleven_multilingual_v2. Для полностью локальной работы без интернета — Piper с русским голосом.
Нужен ли мощный компьютер для локального TTS?
Piper и KittenTTS работают на любом современном компьютере, включая Raspberry Pi. NeuTTS требует чуть больше ресурсов. Для локального распознавания речи через faster-whisper рекомендуется минимум 4 ГБ оперативной памяти.
Можно ли менять голоса на лету?
Да, через команды /voice tts и настройки в config.yaml. Для провайдеров с множеством голосов (Edge TTS — 322 голоса, ElevenLabs — 10 000+) можно переключаться без перезапуска агента.
Работает ли голосовой режим без интернета?
Да, если использовать локальные провайдеры: faster-whisper для распознавания речи и Piper, KittenTTS или NeuTTS для синтеза. Вся цепочка работает на вашем оборудовании.
*Подробнее о настройке Hermes Agent читайте в документации hermeswiki.*