You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hermes today supports Whisper-family STT backends (OpenAI Whisper, Groq Whisper, local faster-whisper, generic HERMES_LOCAL_STT_COMMAND). For multilingual voice workflows (Telegram/Discord/CLI) and low-latency streaming, Soniox offers a stronger product:
real-time WebSocket STT with partial results
automatic language ID + code-switching across 60+ languages in a single stream (no need to pre-declare locale)
speaker diarization
built-in PII redaction
async batch endpoint as well
There is no first-class config path today. Users would have to wrap Soniox behind HERMES_LOCAL_STT_COMMAND, which loses streaming/partials and the OpenAI-shaped response surface that downstream code expects.
Proposed Solution
Add soniox as a provider option alongside openai / groq / local. Config sketch:
stt:
enabled: trueprovider: sonioxsoniox:
api_key: ${SONIOX_API_KEY}model: stt-rt-preview # or stt-async-preview for batchlanguage_hints: [en, hu] # optional; auto-detect when omittedenable_speaker_diarization: falseenable_endpoint_detection: true
Problem or Use Case
Hermes today supports Whisper-family STT backends (OpenAI Whisper, Groq Whisper, local
faster-whisper, genericHERMES_LOCAL_STT_COMMAND). For multilingual voice workflows (Telegram/Discord/CLI) and low-latency streaming, Soniox offers a stronger product:There is no first-class config path today. Users would have to wrap Soniox behind
HERMES_LOCAL_STT_COMMAND, which loses streaming/partials and the OpenAI-shaped response surface that downstream code expects.Proposed Solution
Add
sonioxas a provider option alongsideopenai/groq/local. Config sketch:Endpoints:
wss://stt-rt.soniox.com/transcribe-websockethttps://api.soniox.com/v1/transcriptionsAdapter would normalize Soniox
tokens[](with per-token language + speaker) into the existing transcript shape Hermes consumes.Alternatives Considered
HERMES_LOCAL_STT_COMMANDwrapper — works for batch, but drops streaming/partials and forces a custom JSON-shape translation per user.Feature Type
Configuration option
Scope
Medium (few files, < 300 lines)