Hume ends access to its TTS and EVI APIs on November 13, 2026, then deletes account data.Source

Hume TTS alternative: replace Octave with one API call

Fish Audio's speech API uses the OpenAI request shape, so one call replaces your Hume request and your next switch is a config change. Try it free with fish-audio/s2.1-pro-free.

No credit card required: fish-audio/s2.1-pro-free costs $0 through November 30, 2026.

The call that replaces Hume

Fish serves the OpenAI speech API, so you can call it with the official OpenAI SDK. This code runs as-is on a fresh account with a $0 balance.

import os from openai import OpenAI client = OpenAI(    base_url="https://api.fish.audio/compat/v1",    api_key=os.environ["FISH_API_KEY"],) with client.audio.speech.with_streaming_response.create(    model="fish-audio/s2.1-pro-free",    voice="",    input="Hello, world!",    response_format="mp3",) as response:    response.stream_to_file("speech.mp3")
import fs from "node:fs";import OpenAI from "openai"; const client = new OpenAI({  baseURL: "https://api.fish.audio/compat/v1",  apiKey: process.env.FISH_API_KEY,}); const response = await client.audio.speech.create({  model: "fish-audio/s2.1-pro-free",  voice: "",  input: "Hello, world!",  response_format: "mp3",});fs.writeFileSync("speech.mp3", Buffer.from(await response.arrayBuffer()));
curl https://api.fish.audio/compat/v1/audio/speech \  -H "Authorization: Bearer $FISH_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "model": "fish-audio/s2.1-pro-free",    "voice": "",    "input": "Hello, world!",    "response_format": "mp3"  }' \  --output speech.mp3

Needs the official OpenAI SDK (pip install openai or npm install openai) and your Fish API key in FISH_API_KEY.

Map your Hume request

Each part of a Hume TTS request has a counterpart in the Fish call above.

Fish Audio
POST /v0/tts/filePOST /compat/v1/audio/speechThe response body is the audio.
X-Hume-Api-KeyAuthorization: BearerYour Fish API key, sent as a Bearer token.
utterances[].textinputOne request per utterance. Join texts that share a voice.
utterances[].voicevoiceA Fish voice ID. An empty string uses the model's default voice.
utterances[].descriptioninputWrite acting instructions into the text as bracket cues, such as [whispering].
utterances[].speedspeedSpeed multiplier.
format.typeresponse_formatmp3, wav, opus or pcm. Defaults to pcm, so set it explicitly.

Bring your voices

Hume deletes account data after November 13, 2026, so sort out your voices before then.

Your cloned voices

Keep the original recordings. Fish clones a voice from clips of 10 seconds or more.

Hume library voices

Pick a close match in the Fish Voice Library and pass its ID as the voice.

Acting instructions

Write them into the text as bracket cues, such as [whispering] or [warm and happy]. Any natural-language cue works.

Pricing

Pay as you go, with no subscription or monthly minimum. S2.1-Pro bills by UTF-8 bytes of input text; 1M bytes is roughly 180,000 English words.

ModelPrice
Fish Audiofish-audio/s2.1-pro-freeFree through November 30, 2026, under fair-use limits. Same model as S2.1-Pro, without latency (TTFA) or DPA guarantees; requests may be used to improve the model.$0.00 / 1M UTF-8 bytes
Fish Audiofish-audio/s2.1-proFor production. Pay as you go, no subscription.$15.00 / 1M UTF-8 bytes

Prices from the official pricing pages, checked October 29, 2026:Fish Audio

Frequently asked questions

Hume's changelog says access to its TTS and EVI APIs ends on November 13, 2026 at 12:01 a.m. EST. Both stay supported until then, and data in your account is permanently deleted afterwards.

Move before November 13, 2026

Create a free key and replace one call.