Hume AI Not Working? Fix Common Errors
Troubleshoot Hume AI issues — EVI WebSocket not connecting, 401/403 authentication, browser audio problems, and high latency — with live platform status.
Quick diagnosis
- 1 Platform outage? — Check prismix.dev/service/hume for active incidents
- 2 API key valid? — Keys live at platform.hume.ai — EVI and Expression Measurement use the same key
- 3 Correct header? — Expression Measurement API uses X-Hume-Api-Key (not Authorization: Bearer)
- 4 EVI: WebSocket endpoint? — wss://api.hume.ai/v0/evi/chat with api_key in the query string
- 5 Microphone permission? — EVI requires getUserMedia — must be HTTPS and user must grant permission
- 6 Audio chunk size? — Send 100–200 ms chunks, not large buffers — smaller chunks reduce latency
Common errors and fixes
EVI WebSocket not connecting
Hume EVI uses a persistent WebSocket for real-time voice conversation. Correct setup:
// JavaScript — connect to EVI
const socket = new WebSocket(
`wss://api.hume.ai/v0/evi/chat?api_key=YOUR_HUME_API_KEY`
);
socket.onopen = () => {
// Send initial session settings before any audio
socket.send(JSON.stringify({
type: "session_settings",
audio: { encoding: "linear16", sample_rate: 16000, channels: 1 }
}));
};
socket.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === "audio_output") {
// Play base64-encoded audio response
}
}; - The API key goes in the query string, not a header
- Wait for
socket.onopenbefore sending audio - Corporate proxies blocking
wss://will cause silent failures
Expression Measurement API — 401 authentication
The Expression Measurement API uses a different header than most AI APIs:
✖ Wrong
Authorization: Bearer YOUR_KEY ✔ Correct
X-Hume-Api-Key: YOUR_KEY import requests
response = requests.post(
"https://api.hume.ai/v0/batch/jobs",
headers={"X-Hume-Api-Key": "YOUR_HUME_API_KEY"},
json={
"models": {"face": {}},
"urls": ["https://example.com/video.mp4"]
}
)
print(response.json()) Browser audio not working (microphone blocked)
EVI requires microphone access via the browser's getUserMedia API. Common blockers:
- HTTP vs HTTPS:
getUserMediais blocked on insecure origins. Use HTTPS orlocalhost. - Permission denied: The user dismissed or blocked the permission dialog. Check browser site settings and request permission again.
- No microphone device: Test with
navigator.mediaDevices.enumerateDevices()to list available audio inputs. - Sending audio before session open: Always wait for the WebSocket
onopenevent before streaming audio.
High latency / slow responses
EVI latency has several components. The part you can control:
| Component | Typical latency | Optimization |
|---|---|---|
| Audio upload chunk | 100–200 ms | Send small chunks (don't buffer >500 ms) |
| Speech detection (VAD) | ~150 ms | Set end-of-utterance threshold in session settings |
| LLM generation | 300–800 ms | Not controllable; platform-dependent |
| TTS synthesis | ~200 ms | Streams as soon as first token is ready |
Know when Hume AI has an outage
Free email alerts. Star Hume on Prismix — no credit card needed.
FAQ
What is Hume AI EVI?
EVI (Empathic Voice Interface) is Hume's real-time voice AI that understands emotional tone from speech and generates emotionally expressive responses. It combines speech recognition, LLM inference, and text-to-speech in a single WebSocket connection with sub-second latency.
Hume vs ElevenLabs vs PlayHT — which is more reliable?
All three are in the same real-time voice AI space. For uptime comparison, see prismix.dev/service/hume and prismix.dev/service/elevenlabs. Hume's differentiator is the emotional intelligence layer; the tradeoff is a more complex WebSocket API versus ElevenLabs' REST-based TTS.
Hume Python SDK import error
Install the correct package: pip install hume. The Hume Python SDK provides HumeClient for REST APIs and AsyncHumeClient for async usage. For EVI, use the hume.empathic_voice module.