>_ HERMES CONSOLE

 > voice --guide

Talk to Hermes your way.

Dictation, reading a reply, and holding a conversation are independent features. Start with the recommended local route and only change what you need. Hermes Console includes no wake-word activation or idle listening.

quick recommendation

Where should voice be processed?

Conversation mode works with any combination. Choose the dictation and speech route that fits you.

recommended combination

Dictation: Live dictation → On this phone.
Speech: Offline voice; or Android voice when an engine is already installed.

On my phone →

01 > voice --entender

Three features you can combine

  • Dictation (STT) turns your voice into text in the chat composer.
  • Read aloud (TTS) plays a reply from the speaker button on its bubble. Automatic reading is optional.
  • Conversation mode adds the orb, turn-by-turn listening, and spoken replies without touching the composer.

Conversation mode has its own switch. When you turn it off, composer dictation and the speaker on each message remain available.

You do not need a voice server for the recommended local route. When your Hermes Dashboard provides voice, you can also choose Hermes server: the app uses its provider, model, and voice without copying server keys to the phone.

02 > listen --dictado

Choose how the app listens

Under Settings → Voice → Speech to text, first choose when transcription should appear:

  • Live dictation · recommended. Text appears while you speak. Process it on this phone with Sherpa/Whisper, or use your own faster-whisper STT server.
  • Transcribe when finished. Whisper records the utterance and turns it into text at the end. It works offline after one model download.

Android recognizer is available under “Other dictation methods”. It depends on the system service and may use a network; GrapheneOS and phones without speech services may not provide one.

Live on-device dictation offers Whisper base, Whisper small, and Parakeet v3. The app shows size and memory use: download only the model you intend to use.

03 > local --movil

Recommended setup: everything on the phone

  1. Under Speech to text, choose “Live dictation” and “On this phone”.
  2. Download one model. Whisper base is a balanced starting point.
  3. Under Text to speech, choose “Offline voice”.
  4. Download and select one voice, then tap Test voice.
  5. Grant microphone access when Android asks.

Recognition and synthesis run on the phone and need neither Google nor a voice API after model download. As with any message, the final text is still sent to the Hermes instance you selected.

To save storage, choose Android voice; the phone must have a compatible TTS engine installed.

04 > server --servidor-hermes

Use the voice configured on your Hermes server

  1. Under Settings → Voice, choose Hermes server.
  2. Check the provider, model, and voice reported by the Dashboard.
  3. Tap Test server voice before returning to chat.

When the server exposes /api/audio/speak-stream, Hermes Console plays PCM as it is generated for a faster start. Otherwise it falls back to compatible progressive synthesis; the screen states which route was actually observed.

Providers and their keys are configured on the server. The app does not blindly install providers or present anything the Dashboard did not report as available.

05 > connect --servicios

Kokoro, OpenAI, ElevenLabs, and other APIs

These choices are folded under External services (advanced). They are not required for local voice.

  • Local Kokoro · guided setup. Enter the machine address and port —usually 8880—. The app completes the path, checks the server, and loads available voices.
  • Another OpenAI-compatible API. For services implementing POST /v1/audio/speech. Enter the base URL ending in /v1, voice, model, and token when required.
  • ElevenLabs. Enter your xi-api-key and voice ID. Text selected for speech is sent to ElevenLabs.
  • Custom TTS API. Supports your own REST URL with no key, Bearer, x-api-key, or a custom header. It detects binary audio and common base64 JSON formats.

For a custom API, open “My provider uses a special format” only when its documentation requires a different JSON template or a specific audio path.

Tokens are encrypted with Android Keystore. Public URLs must use HTTPS; HTTP is accepted only on localhost, LAN, or Tailscale.

06 > speak --lectura

Pause, resume, and read naturally

Under Text to speech, choose what another tap on the speaker means while a reply is being read:

  • Pause and resume · default. Speech stops immediately; the next tap continues from the sentence where you paused.
  • Stop and restart. Reading progress is discarded; the next tap starts from the beginning.

The screen keeps the original message, while its spoken projection is cleaned up: Markdown marks and visual separators are removed; slashes and technical fragments are humanized; lists, quotes, and tables are structured; code blocks, source headings, bibliographies, and isolated URLs are omitted; and pauses follow paragraphs and headings.

Reading progress only lives for that session and is not stored as history. If the message content changes, the next reading starts from the new version.

07 > talk --conversacion

Conversation mode with the orb

  1. Under Settings → Voice, enable “Conversation mode”.
  2. Open a chat and tap the conversation icon to show the orb.
  3. Speak when it says “Listening”. Live transcription and turn states remain visible.
  4. Tap the orb to pause or continue, and end the session when finished.

Voice and keyboard share the same context and response: conversation mode does not add a hidden brevity instruction or change the agent's personality. Markdown and technical blocks remain complete on screen; the spoken projection omits marks and code that would not sound natural.

With Interrupt by speaking enabled, server voice may support barge-in during generation and during playback over a demonstrably private route such as headphones. The app requires sustained speech, silences playback, and only cancels the run after a valid transcription. Speaker playback keeps touch controls for stopping.

A manually started Voice session can keep the conversation going and accept a complete stop command from the launcher or lock screen when continuity and “Interrupt by speaking” are enabled and a private route is confirmed. This does not enable idle listening. That external stop path, including microphone and service teardown, remains in the final device gate; use the touch control to end Voice on speaker playback.

Hermes Console does not include wake-word activation, an idle-listening detector, or associated models. The microphone opens only when you start Dictation or a Voice conversation; continuing outside the app remains a separate choice.

08 > lock --bloqueo

Continue while the screen is locked

This option is off by default. Before first use, the app explains where voice may be processed and offers two choices:

  • Only while the app is open. Locking or leaving the app pauses both the microphone and Hermes voice.
  • Continue while screen is locked. Keeps the session through a visible Android service.

With continuity enabled, the notification shows the Voice state and provides clear actions to Pause/Continue, Open, and End. Android also keeps its microphone privacy indicator visible.

Ending the session, force-stopping the app, or rebooting the phone turns it off. It does not restore itself after reboot or start from the background.

09 > privacy --privacidad

What leaves the phone

  • Local STT and local TTS: audio is processed on the phone. Recognized text is then sent to your Hermes like a normal message.
  • Your own STT server: microphone audio goes to the faster-whisper URL you configured.
  • Android recognizer: its provider may process audio online depending on the installed engine.
  • External TTS: text selected for reading is sent to Kokoro, ElevenLabs, or the API you configured.

XPeta Lab operates no voice server, receives no conversations, and adds no telemetry. You choose the engines and can return to the local setup at any time.

10 > check --problemas

Test and quick troubleshooting

  • No sound. Tap “Test voice”, check media volume and Bluetooth output. For local speech, confirm the engine or model is installed.
  • The speaker is slow or will not stop. Tap it once and wait for its state to change. If an external engine is unresponsive, test it in Settings and check its network first; the app uses a timeout to avoid hanging indefinitely.
  • Android voice is missing on GrapheneOS. Use “Offline voice” and “Live dictation → On this phone”.
  • A local model fails. Free memory and try Whisper base or a lighter voice; Parakeet and some voices require more RAM.
  • Kokoro is not detected. Confirm the phone can reach its address over LAN/Tailscale and that the port responds. Enter only address and port in the assistant.
  • The custom API responds without sound. Check its documentation and use advanced options only for its real JSON or base64 path.
  • The lock-screen notification is missing. Enable “Continue while screen is locked” and grant Android's notification permission.

Change one option at a time and use “Test voice” before returning to chat.

← back home