Использование голосового режима с Hermes
Это руководство является практическим дополнением к справочнику возможностей голосового режима.
Если страница возможностей объясняет, что умеет голосовой режим, то это руководство показывает, как эффективно его использовать.
Для чего подходит голосовой режим
Голосовой режим особенно полезен, когда:
-
вам нужна работа с 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— ввод с микрофона / воспроизведение для голосового режима в 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
Последовательность действий:
-
нажмите
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.
Затем продолжайте без клавиатуры:
-
«Прочитай последнюю ошибку ещё раз»
-
«Объясни первопричину простыми словами»
-
«А теперь дай точное исправление»
Исследования / мозговой штурм
Отлично подходит для:
-
размышлений на ходу
-
диктовки неоформленных идей
-
просьбы к 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 DM с голосовым выводом
Полезно, когда нужно личное взаимодействие без упоминаний в серверных каналах.
Сценарий 3: голосовые каналы Discord
Это самый продвинутый режим.
Hermes подключается к голосовому каналу Discord, слушает речь пользователей, транскрибирует её, запускает обычный конвейер агента и озвучивает ответы обратно в канал.
Необходимые разрешения Discord
В дополнение к обычной настройке текстового бота, убедитесь, что бот имеет разрешения:
-
Подключаться (Connect)
-
Говорить (Speak)
-
Желательно — Использовать голосовую активность (Use Voice Activity)
Также включите привилегированные намерения (Intents) в портале разработчика:
-
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
Частые проблемы
«Аудиоустройство не найдено»
Установите portaudio.
«Бот подключается, но ничего не слышит»
Проверьте:
-
ваш Discord ID указан в
DISCORD_ALLOWED_USERS -
вы не в режиме «без звука» (muted)
-
привилегированные намерения (Intents) включены
-
у бота есть разрешения Connect/Speak
«Транскрибация работает, но ответа нет»
Проверьте:
-
конфигурацию TTS провайдера
-
API-ключ / квоту для ElevenLabs или OpenAI
-
установку
ffmpegдля конвертации в Edge
«Whisper выдаёт мусор»
Попробуйте:
-
более тихое окружение
-
более высокий
silence_threshold -
другого STT провайдера / модель
-
более короткие и чёткие фразы
«Работает в ЛС, но не в серверных каналах»
Чаще всего это связано с политикой упоминаний.
По умолчанию боту требуется @упоминание в текстовых каналах Discord, если не настроено иное.
Рекомендуемая настройка на первую неделю
Если вы хотите кратчайший путь к успеху:
-
настройте текстовый Hermes
-
установите
hermes-agent[voice] -
используйте голосовой режим CLI с локальным STT + Edge TTS
-
затем включите
/voice onв Telegram или Discord -
и только после этого пробуйте голосовые каналы Discord
Такой подход минимизирует поверхность для отладки.