Обзор
Голосовой режим Hermes Agent позволяет вести реальные голосовые диалоги с ассистентом через CLI, Telegram и Discord. Агент распознаёт вашу речь (STT), обрабатывает запрос с помощью LLM и отвечает голосом (TTS) — всё в одном потоке.
Команды управления
| Команда | Описание |
|---|---|
/voice on |
Голос-в-голос: распознавание речи + голосовой ответ |
/voice tts |
Всегда голосовой ответ (текст тоже озвучивается) |
/voice off |
Выключить голосовой режим |
Поддерживаемые платформы
CLI (терминал)
Запуск голосового режима в терминале:
hermes --voice— запуск сессии с голосовым вводом/выводомhermes voice— альтернативная команда- Автоматическое определение тишины — просто замолчите, чтобы агент начал обрабатывать
- Потоковая озвучка ответа — агент начинает говорить, не дожидаясь полной генерации
- Фильтр галлюцинаций Whisper — отсекает случайные артефакты распознавания
Telegram
В Telegram голосовой режим работает через gateway:
- Отправьте голосовое сообщение — агент распознает и ответит
- Команда
/voiceпереключает режим ответа: текст или голос - Команда
/voice onвключает голосовые ответы,/voice off— выключает - Ответ доставляется как аудиосообщение в чат
Discord
Discord поддерживает голос в текстовых каналах, личных сообщениях и голосовых каналах:
- Текстовые каналы и ЛС — отправьте голосовое сообщение, бот ответит голосом
- Голосовые каналы — бот подключается, слушает и отвечает голосом в реальном времени
- Команда
/join— бот заходит в голосовой канал - Команда
/leave— бот покидает канал - В серверных каналах требуется @упоминание бота
Настройка
Файл config.yaml
Основные секции конфигурации голосового режима:
| Параметр | Описание | Значения |
|---|---|---|
stt.enabled |
Включить распознавание речи | true / false |
stt.provider |
Провайдер STT | local, groq, openai, mistral |
stt.local.model |
Модель faster-whisper | tiny, base, small, medium, large-v3 |
tts.provider |
Провайдер TTS | edge, elevenlabs, openai, minimax, mistral, neutts |
Пример конфигурации:
stt:
enabled: true
provider: "local"
local:
model: "base"
tts:
provider: "edge"
edge:
voice: "en-US-AriaNeural"
Провайдеры STT (распознавание речи)
| Провайдер | Тип | Скорость | Ключ / Установка | Примечание |
|---|---|---|---|---|
| Local faster-whisper | Бесплатный | Зависит от железа | pip install faster-whisper |
Работает полностью оффлайн. Модели: tiny, base, small, medium, large-v3. Не требует API-ключа |
| Groq Whisper | Бесплатный тир | ~0.5с | GROQ_API_KEY |
Очень быстрый, модель whisper-large-v3-turbo. Бесплатный лимит |
| OpenAI Whisper | Платный | ~1-2с | VOICE_TOOLS_OPENAI_KEY |
Модели: whisper-1, gpt-4o-transcribe |
| Mistral Voxtral | Платный | ~1с | MISTRAL_API_KEY |
Multimodal STT от Mistral |
Приоритет автопереключения: local → groq → openai → mistral.
Провайдеры TTS (синтез речи)
| Провайдер | Тип | Качество | Ключ / Установка | Примечание |
|---|---|---|---|---|
| Edge TTS | Бесплатный | Хорошее | Не требуется | 322 голоса, 74 языка, задержка ~1с. Провайдер по умолчанию |
| ElevenLabs | Бесплатный тир | Премиум | ELEVENLABS_API_KEY |
Лучшее качество, задержка ~2с |
| OpenAI TTS | Платный | Хорошее | VOICE_TOOLS_OPENAI_KEY |
Модель: gpt-4o-mini-tts. Голоса: alloy, echo, fable, onyx, nova, shimmer |
| MiniMax | Платный | Хорошее | MINIMAX_API_KEY |
Поддержка русского и китайского языков |
| Mistral Voxtral | Платный | Хорошее | MISTRAL_API_KEY |
TTS от Mistral, единый ключ для STT и TTS |
| NeuTTS (local) | Бесплатный | Среднее | pip install neutts[all] + espeak-ng |
Локальный, работает на CPU/GPU. Полностью оффлайн |
Переменные окружения
| Переменная | Назначение |
|---|---|
GROQ_API_KEY |
Ключ для Groq STT |
VOICE_TOOLS_OPENAI_KEY |
Ключ для OpenAI STT и TTS |
ELEVENLABS_API_KEY |
Ключ для ElevenLabs TTS |
MINIMAX_API_KEY |
Ключ для MiniMax TTS |
MISTRAL_API_KEY |
Ключ для Mistral Voxtral STT и TTS |
DISCORD_BOT_TOKEN |
Токен Discord-бота |
DISCORD_ALLOWED_USERS |
Разрешённые пользователи Discord |
Решение проблем
Нет аудиоустройства (CLI)
Установите PortAudio: brew install portaudio (macOS) или sudo apt install portaudio19-dev (Ubuntu).
Бот не отвечает в Discord
- Убедитесь, что ваш ID указан в
DISCORD_ALLOWED_USERS - В серверных каналах используйте @упоминание бота
- Проверьте наличие STT-провайдера: установите faster-whisper или задайте
GROQ_API_KEY
Whisper возвращает мусор
- Используйте более тихое окружение
- Настройте
silence_threshold(выше = менее чувствительно) - Попробуйте другую модель STT
Голосовой режим не работает
- Проверьте
stt.enabled: trueв config.yaml - Установите STT-провайдер:
pip install faster-whisperили задайте API-ключ - В gateway:
/restart. В CLI: перезапустите сессию