Голосовой режим в Hermes
Этот гайд — практическое дополнение к справочнику по функции голосового режима.
Если справочная страница объясняет, что умеет голосовой режим, то здесь — как им пользоваться по-настоящему хорошо.
Nous Portal объединяет LLM и TTS через единый OAuth — голосовой режим работает от начала до конца без дополнительных учётных данных.
Для чего подходит голосовой режим
Голосовой режим особенно полезен, когда:
- хочется работать в CLI без рук
- нужны голосовые ответы в Telegram или Discord
- хочется, чтобы Hermes сидел в голосовом канале Discord для живого разговора
- удобнее быстро надиктовать идею, отладить задачу или поговорить на ходу, не набирая текст
Выберите вариант голосового режима
В Hermes три разных голосовых сценария.
| Режим | Лучше всего для | Платформа |
|---|---|---|
| Интерактивный цикл с микрофоном | Личное использование без рук во время разработки или исследования | CLI |
| Голосовые ответы в чате | Озвученные ответы наряду с обычными сообщениями | Telegram, Discord |
| Живой бот в голосовом канале | Групповой или личный разговор в войсе | Голосовые каналы Discord |
Оптимальный путь:
- сначала добейтесь стабильной работы в текстовом режиме
- затем включите голосовые ответы
- и только потом, если нужен полный опыт, переходите к голосовым каналам Discord
Шаг 1: убедитесь, что обычный Hermes работает
Прежде чем трогать голосовой режим, проверьте:
- Hermes запускается
- провайдер настроен
- агент отвечает на текстовые промпты нормально
hermes
Задайте что-нибудь простое:
What tools do you have available?
Если с этим что-то не так, сначала разберитесь с текстовым режимом.
Шаг 2: установите нужные расширения
Микрофон и воспроизведение в CLI
pip install "hermes-agent[voice]"
Мессенджеры
pip install "hermes-agent[messaging]"
Премиум TTS от ElevenLabs
pip install "hermes-agent[tts-premium]"
Локальный NeuTTS (опционально)
python -m pip install -U neutts[all]
Всё сразу
pip install "hermes-agent[all]"
Шаг 3: установите системные зависимости
macOS
brew install portaudio ffmpeg opus
brew install espeak-ng
Ubuntu / Debian
sudo apt install portaudio19-dev ffmpeg libopus0
sudo apt install espeak-ng
Зачем они нужны:
portaudio→ ввод с микрофона и воспроизведение в голосовом режиме CLIffmpeg→ конвертация аудио для TTS и доставки в мессенджерахopus→ поддержка голосового кодека Discordespeak-ng→ бэкенд фонемайзера для NeuTTS
Шаг 4: выберите провайдеры STT и TTS
Hermes поддерживает как локальные, так и облачные речевые стеки.
Самая простая и дешёвая конфигурация
Локальный STT и бесплатный Edge TTS:
- провайдер STT:
local - провайдер TTS:
edge
Это лучшая отправная точка для большинства.
Пример файла окружения
Добавьте в ~/.hermes/.env:
# Cloud STT options (local needs no key)
GROQ_API_KEY=***
VOICE_TOOLS_OPENAI_KEY=***
# Premium TTS (optional)
ELEVENLABS_API_KEY=***
Рекомендации по провайдерам
Распознавание речи (STT)
local→ лучший вариант по умолчанию: приватность и нулевая стоимостьgroq→ очень быстрая облачная транскрипцияopenai→ хороший платный резерв
Синтез речи (TTS)
edge→ бесплатно и достаточно хорошо для большинства пользователейneutts→ бесплатный локальный/офлайн TTSelevenlabs→ лучшее качествоopenai→ золотая серединаmistral→ многоязычный, нативный Opus
Если используете hermes setup
Если вы выбрали NeuTTS в мастере настройки, Hermes проверяет, установлен ли neutts. Если не установлен, мастер сообщает, что NeuTTS требует Python-пакет neutts и системный пакет espeak-ng, предлагает установить их, устанавливает espeak-ng через пакетный менеджер вашей платформы, а затем выполняет:
python -m pip install -U neutts[all]
Если установка пропущена или завершилась с ошибкой, мастер откатывается на Edge TTS.
Шаг 5: рекомендуемая конфигурация
voice:
record_key: "ctrl+b"
max_recording_seconds: 120
auto_tts: false
beep_enabled: true
silence_threshold: 200
silence_duration: 3.0
stt:
provider: "local"
local:
model: "base"
tts:
provider: "edge"
edge:
voice: "en-US-AriaNeural"
Это разумный консервативный вариант для большинства людей.
Если хотите локальный TTS, замените блок tts на:
tts:
provider: "neutts"
neutts:
ref_audio: ''
ref_text: ''
model: neuphonic/neutts-air-q4-gguf
device: cpu
Сценарий 1: голосовой режим в CLI
Включение
Запустите Hermes:
hermes
Внутри CLI:
/voice on
Процесс записи
Клавиша по умолчанию:
Ctrl+B
Порядок действий:
- нажмите
Ctrl+B - говорите
- дождитесь, пока детектор тишины автоматически остановит запись
- Hermes транскрибирует и отвечает
- если TTS включён, ответ будет озвучен
- цикл может автоматически перезапускаться для непрерывного использования
Полезные команды
/voice
/voice on
/voice off
/voice tts
/voice status
Хорошие рабочие сценарии в CLI
Отладка на ходу
Скажите:
I keep getting a docker permission error. Help me debug it.
Затем продолжайте без рук:
- “Read the last error again”
- “Explain the root cause in simpler terms”
- “Now give me the exact fix”
Исследование и мозговой штурм
Отлично подходит для:
- прогулки во время размышлений
- диктовки полусформированных идей
- просьбы к Hermes структурировать ваши мысли в реальном времени
Режим доступности / минимума набора текста
Если набирать текст неудобно, голосовой режим — один из самых быстрых способов оставаться в полном цикле работы с Hermes.
Тонкая настройка поведения CLI
Порог тишины
Если Hermes начинает или останавливает запись слишком агрессивно, настройте:
voice:
silence_threshold: 250
Выше порог — меньше чувствительность.
Длительность тишины
Если вы делаете паузы между предложениями, увеличьте:
voice:
silence_duration: 4.0
Клавиша записи
Если Ctrl+B конфликтует с привычками вашего терминала или tmux:
voice:
record_key: "ctrl+space"
Сценарий 2: голосовые ответы в Telegram или Discord
Этот режим проще, чем полноценные голосовые каналы.
Hermes остаётся обычным чат-ботом, но может озвучивать ответы.
Запустите шлюз
hermes gateway
Включите голосовые ответы
Внутри Telegram или Discord:
/voice on
или
/voice tts
Режимы
| Режим | Значение |
|---|---|
off | только текст |
voice_only | озвучивать только когда пользователь отправил голос |
all | озвучивать каждый ответ |
Когда какой режим использовать
/voice on— если хотите озвученные ответы только на голосовые сообщения/voice tts— если хотите полноценного голосового ассистента всегда
Хорошие рабочие сценарии в мессенджерах
Telegram-ассистент на телефоне
Используйте когда:
- вы вдали от рабочего места
- хотите отправлять голосовые сообщения и получать быстрые голосовые ответы
- хотите, чтобы Hermes работал как портативный исследовательский или операционный ассистент
Discord в личных сообщениях с озвученным выводом
Полезно, когда нужно приватное взаимодействие без поведения с упоминаниями в серверных каналах.
Сценарий 3: голосовые каналы Discord
Это самый продвинутый режим.
Hermes заходит в голосовой канал Discord, слушает речь пользователей, транскрибирует её, запускает обычный пайплайн агента и озвучивает ответы обратно в канал.
Необходимые разрешения Discord
Помимо стандартной настройки текстового бота, убедитесь, что у бота есть:
- Connect
- Speak
- желательно Use Voice Activity
Также включите привилегированные интенты на Developer Portal:
- Presence Intent
- Server Members Intent
- Message Content Intent
Вход и выход
В текстовом канале Discord, где присутствует бот:
/voice join
/voice leave
/voice status
Что происходит после входа
- пользователи говорят в голосовом канале
- Hermes определяет границы речи
- транскрипты публикуются в связанном текстовом канале
- Hermes отвечает текстом и аудио
- текстовый канал — тот, в котором была выдана команда
/voice join
Лучшие практики использования голосовых каналов Discord
- держите
DISCORD_ALLOWED_USERSстрогим - сначала используйте отдельный бот/тестовый канал
- убедитесь, что STT и TTS работают в обычном текстово-чатовом голосовом режиме, прежде чем переходить к голосовым каналам
Рекомендации по качеству голоса
Лучшее качество
- STT: локальный
large-v3или Groqwhisper-large-v3 - TTS: ElevenLabs
Лучшее соотношение скорости и удобства
- STT: локальный
baseили Groq - TTS: Edge
Лучший вариант без затрат
- STT: локальный
- TTS: Edge
Типичные проблемы
«No audio device found»
Установите portaudio.
«Bot joins but hears nothing»
Проверьте:
- ваш Discord user ID есть в
DISCORD_ALLOWED_USERS - вы не в режиме mute
- привилегированные интенты включены
- у бота есть разрешения Connect/Speak
«It transcribes but does not speak»
Проверьте:
- конфигурацию провайдера TTS
- API-ключ / квоту для ElevenLabs или OpenAI
- установку
ffmpegдля путей конвертации Edge
«Whisper outputs garbage»
Попробуйте:
- более тихую обстановку
- повысить
silence_threshold - другой провайдер/модель STT
- более короткие и чёткие фразы
«It works in DMs but not in server channels»
Скорее всего, это политика упоминаний.
По умолчанию боту нужно @упоминание в текстовых каналах сервера Discord, если не настроено иначе.
Рекомендуемая настройка на первую неделю
Если хотите добиться результата кратчайшим путём:
- добейтесь стабильной работы текстового Hermes
- установите
hermes-agent[voice] - используйте голосовой режим CLI с локальным STT + Edge TTS
- затем включите
/voice onв Telegram или Discord - и только после этого попробуйте режим голосовых каналов Discord
Такая последовательность держит поверхность отладки маленькой.