Голосовой режим в Hermes

Этот гайд — практическое дополнение к справочнику по функции голосового режима.

Если справочная страница объясняет, что умеет голосовой режим, то здесь — как им пользоваться по-настоящему хорошо.

совет

Nous Portal объединяет LLM и TTS через единый OAuth — голосовой режим работает от начала до конца без дополнительных учётных данных.

Для чего подходит голосовой режим

Голосовой режим особенно полезен, когда:

  • хочется работать в CLI без рук
  • нужны голосовые ответы в Telegram или Discord
  • хочется, чтобы Hermes сидел в голосовом канале Discord для живого разговора
  • удобнее быстро надиктовать идею, отладить задачу или поговорить на ходу, не набирая текст

Выберите вариант голосового режима

В Hermes три разных голосовых сценария.

РежимЛучше всего дляПлатформа
Интерактивный цикл с микрофономЛичное использование без рук во время разработки или исследованияCLI
Голосовые ответы в чатеОзвученные ответы наряду с обычными сообщениямиTelegram, Discord
Живой бот в голосовом каналеГрупповой или личный разговор в войсеГолосовые каналы Discord

Оптимальный путь:

  1. сначала добейтесь стабильной работы в текстовом режиме
  2. затем включите голосовые ответы
  3. и только потом, если нужен полный опыт, переходите к голосовым каналам 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 → ввод с микрофона и воспроизведение в голосовом режиме CLI
  • ffmpeg → конвертация аудио для TTS и доставки в мессенджерах
  • opus → поддержка голосового кодека Discord
  • espeak-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 → бесплатный локальный/офлайн TTS
  • elevenlabs → лучшее качество
  • 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

Порядок действий:

  1. нажмите Ctrl+B
  2. говорите
  3. дождитесь, пока детектор тишины автоматически остановит запись
  4. Hermes транскрибирует и отвечает
  5. если TTS включён, ответ будет озвучен
  6. цикл может автоматически перезапускаться для непрерывного использования

Полезные команды

/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 или Groq whisper-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, если не настроено иначе.

Рекомендуемая настройка на первую неделю

Если хотите добиться результата кратчайшим путём:

  1. добейтесь стабильной работы текстового Hermes
  2. установите hermes-agent[voice]
  3. используйте голосовой режим CLI с локальным STT + Edge TTS
  4. затем включите /voice on в Telegram или Discord
  5. и только после этого попробуйте режим голосовых каналов Discord

Такая последовательность держит поверхность отладки маленькой.

Что читать дальше

ESC