Skip to content

Hume EVI 3

hume/evi-3Retires Nov 13, 2026

Hume's third-generation Empathic Voice Interface, one speech-language model that transcribes, responds and speaks with prompt-designed or cloned voices. It remains the default EVI version alongside EVI 4-mini, but Hume closes the EVI API on November 13, 2026.

API
import WebSocket from "ws";
import { randomUUID } from "node:crypto";
import { readFile, writeFile } from "node:fs/promises";

// Mono PCM16 at 16 kHz, paced like microphone input.
const input = await readFile("recording.pcm");
const url = new URL("/v1/audio/conversations/stream", process.env.AUDIOLAB_API_URL);
url.protocol = url.protocol === "https:" ? "wss:" : "ws:";
const socket = new WebSocket(url, {
  headers: { Authorization: `Bearer ${process.env.AUDIOLAB_API_KEY}`, "Idempotency-Key": randomUUID() },
});
let timer, offset = 0, chunk = 0;
const output = [];
socket.on("open", () => socket.send(JSON.stringify({
  type: "session.start", model: "hume/evi-3", voice: "auto", max_seconds: 30,
})));
socket.on("message", raw => {
  const event = JSON.parse(raw.toString());
  if (event.type === "session.ready") timer = setInterval(() => {
    const frame = Buffer.alloc(640);
    if (offset < input.length) input.copy(frame, 0, offset, Math.min(offset + 640, input.length));
    offset += 640;
    if (socket.readyState === WebSocket.OPEN) socket.send(frame);
  }, 20);
  if (event.type === "output_audio.delta") {
    void writeFile(`response-${chunk++}.wav`, Buffer.from(event.delta, "base64")).catch(console.error);
  }
  if (event.type === "output_audio.done") { clearInterval(timer); socket.send(JSON.stringify({ type: "session.finish" })); }
  if (event.type === "session.completed" || event.type === "error") console.log(event);
});
socket.on("close", () => {
  clearInterval(timer);
});
socket.on("error", console.error);
Input Price
$0.0425 / minute
Output Price
$0.00 / minute
Input
Audio
Output
Audio

Capabilities

Explore what Hume EVI 3 supports, then use the API section for a request tailored to this model.

StreamRealtimeDuplexAudio inputAudio output

Model Information

Provider
Hume AI
Product
Conversational
Release Date
May 29, 2025
Data Policy
Not specified
Region
Global
Input
Audio
Output
Audio
Provider Documentation

Playground

Try Hume EVI 3 by Hume AI. Requests use the selected workspace’s credits and API pricing.

Hume EVI 3Credits —
Hume EVI 3
This model uses a dedicated input format. Explore its API example or open the supported playground.

Providers

Compare available endpoints, pricing, and context limits for Hume EVI 3.

ProviderContextOutputInput PriceOutput PriceEndpoint
Hume AINot specifiedAudio$0.0425 / minute$0.00 / minute
hume/evi-3:hume

Prices are catalog rates. Your workspace’s estimate and endpoint pricing determine the final charge.

Input and Output Limits

Formats and limits AudioLab enforces on each request.

LimitValue
Max seconds300
Input sample rate16000
Output formatwav

Provider Notes

Continuous voice conversations with native turn detection, interruptions and transcript events. Up to five minutes per funded session. Use /v1/audio/conversations/stream.

Status

Current catalog availability. Your workspace’s access is checked separately before a request runs.

Getting Started

Use your workspace API key and the exact model identifier below. Set the API URL to the endpoint shown in your workspace and keep credentials on your server.

API
import WebSocket from "ws";
import { randomUUID } from "node:crypto";
import { readFile, writeFile } from "node:fs/promises";

// Mono PCM16 at 16 kHz, paced like microphone input.
const input = await readFile("recording.pcm");
const url = new URL("/v1/audio/conversations/stream", process.env.AUDIOLAB_API_URL);
url.protocol = url.protocol === "https:" ? "wss:" : "ws:";
const socket = new WebSocket(url, {
  headers: { Authorization: `Bearer ${process.env.AUDIOLAB_API_KEY}`, "Idempotency-Key": randomUUID() },
});
let timer, offset = 0, chunk = 0;
const output = [];
socket.on("open", () => socket.send(JSON.stringify({
  type: "session.start", model: "hume/evi-3", voice: "auto", max_seconds: 30,
})));
socket.on("message", raw => {
  const event = JSON.parse(raw.toString());
  if (event.type === "session.ready") timer = setInterval(() => {
    const frame = Buffer.alloc(640);
    if (offset < input.length) input.copy(frame, 0, offset, Math.min(offset + 640, input.length));
    offset += 640;
    if (socket.readyState === WebSocket.OPEN) socket.send(frame);
  }, 20);
  if (event.type === "output_audio.delta") {
    void writeFile(`response-${chunk++}.wav`, Buffer.from(event.delta, "base64")).catch(console.error);
  }
  if (event.type === "output_audio.done") { clearInterval(timer); socket.send(JSON.stringify({ type: "session.finish" })); }
  if (event.type === "session.completed" || event.type === "error") console.log(event);
});
socket.on("close", () => {
  clearInterval(timer);
});
socket.on("error", console.error);
Read the Endpoint Reference

Request Parameters

Available parameters depend on the provider and request format. The endpoint reference explains accepted values and required fields.

ParameterDetails
modelhume/evi-3 — Required model identifier.
voiceView Accepted Values
instructionsView Accepted Values
max_secondsView Accepted Values
input_audioView Accepted Values

Input and Output Limits

Formats and limits AudioLab enforces on each request.

LimitValue
Max seconds300
Input sample rate16000
Output formatwav

Similar Models

Explore more conversational and compare their capabilities.

ModelContextInput PriceOutput Price
Grok Voice LatestxAINot specified$0.0425 / minute—
GPT Realtime 2.1OpenAINot specified$27.20 / 1M tokens$54.40 / 1M tokens
GPT Realtime 2.1 MiniOpenAINot specified$8.50 / 1M tokens$17.00 / 1M tokens
Gemini 3.5 Live TranslateGoogle GeminiNot specified$2.975 / 1M tokens$17.85 / 1M tokens
GPT Realtime 2OpenAINot specified$27.20 / 1M tokens$54.40 / 1M tokens
Grok Voice Think Fast 1.0xAINot specified$0.0425 / minute—
View All Conversational