canonical: https://jentic.com/apis/hume.ai/hume

# Hume Text-to-Speech

Hume's Text-to-Speech API, powered by the Octave model, synthesises emotionally expressive speech from text and supports both batched and streaming output. Beyond raw synthesis it lets developers manage a library of voices - list, save, and delete them - and convert an existing audio clip's vocal performance to a different voice while preserving the original prosody. The API is the same surface the Hume web app uses for studio-quality narration and dialogue generation.

## For AI agents

Synthesise emotionally expressive speech from text in batched or streaming form, manage saved voices, and convert audio between voices.

## Scope

Does not transcribe audio, detect emotion in speech, or generate music - use for Hume text-to-speech synthesis and voice conversion only.

## Capabilities

- Synthesise expressive speech from text and return the audio as JSON
- Synthesise speech and stream the audio bytes directly to the caller
- Stream synthesis as JSON chunks for low-latency rendering
- Synthesise speech and return the result as a downloadable audio file
- Save a new voice to the account voice library
- List the voices saved on the account
- Convert an audio file's spoken performance to a different voice while preserving prosody

## Use cases

### Studio-quality narration for video and podcast

Turn a written script into expressive narration for a video or podcast using a saved branded voice. The file synthesis endpoint returns a complete audio asset suitable for direct upload into the editing pipeline, while the JSON variant lets the caller inspect timestamps and segment the result before rendering.

Example prompt: Call POST `/v0/tts/file` with the script text and the saved voice ID to receive the rendered audio file ready for the editor.

### Real-time voice for conversational agents

Stream Hume TTS output as it is generated so a conversational agent can speak natural responses without waiting for full synthesis. The streaming JSON endpoint emits chunks the client renders progressively, cutting perceived latency on long replies.

Example prompt: Call POST `/v0/tts/stream/json` with the agent's reply text and pipe the chunks to the audio renderer as they arrive.

### Voice cloning and voice conversion

Convert an existing audio clip - a voice memo, an old recording, or another TTS output - into a different voice while keeping the original timing and inflection. Combined with the saved-voice library, this lets a team standardise on a brand voice across legacy assets without re-recording.

Example prompt: Call POST `/v0/tts/voice_conversion/file` with the source audio and the target voice ID to receive the converted audio.

### Agent-driven narration through Jentic

An AI agent producing automated content searches Jentic for the Hume synthesis operation, loads the schema, and renders a script in the chosen voice. Jentic injects the Hume Bearer token from the vault so the agent never holds the raw credential.

Example prompt: Through Jentic, search 'synthesise speech with Hume', load the schema for POST `/v0/tts/file`, and execute it with the script text and target voice ID.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v0/tts` | Synthesise speech and return the audio in JSON |
| POST | `/v0/tts/file` | Synthesise speech and return a downloadable audio file |
| POST | `/v0/tts/stream/json` | Stream synthesis as JSON chunks |
| POST | `/v0/tts/stream/file` | Stream synthesis as audio bytes |
| GET | `/v0/tts/voices` | List saved voices on the account |
| POST | `/v0/tts/voices` | Save a new voice to the account library |
| DELETE | `/v0/tts/voices` | Delete a saved voice from the library |
| POST | `/v0/tts/voice_conversion/file` | Convert an audio file to a different voice |

## Key resources

- **TTS** — Synthesise speech in JSON, streaming JSON, streaming audio, or file form
- **Voices** — List, save, and delete voices in the account voice library
- **Voice Conversion** — Convert an audio clip's voice while preserving prosody and timing

## Why Jentic

- **Setup:** Wiring Hume Text-to-Speech by hand means holding an API key in its custom auth header, targeting api.hume.ai, and handling streaming versus file responses yourself. Through Jentic you install once, import Hume Text-to-Speech from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** This API drives synthesis through fixed endpoints where text, voice, and options travel in the request body (`/v0/tts`, `/v0/tts/stream/json`), so limit the agent to the operations it needs, such as synthesising speech or listing voices. You choose the operations it may call, so creating or deleting a voice is not included unless you add it.
- **Credential handling:** Your Hume API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'synthesise speech from text' or 'convert this voice', and Jentic returns the matching Hume operation with its input schema, including the text payload, voice id, and streaming options, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **ElevenLabs** — Voice generation API with a large library of cloned and pre-built voices
- **Murf** — TTS focused on narration with a curated catalogue of professional voices
- **Deepgram** — Speech-to-text counterpart for handling the inverse direction in voice pipelines
- **AssemblyAI** — Alternative speech-to-text provider with strong diarisation and summarisation

## FAQ

### What authentication does the Hume TTS API use?

It uses Hume API keys passed as a Bearer header. Through Jentic the key is held in your encrypted Jentic One instance and injected at execution time so the synthesis agent never sees the raw credential.

### Can I stream audio for low-latency playback?

Yes. POST `/v0/tts/stream/file` streams audio bytes directly to the caller, and POST `/v0/tts/stream/json` streams synthesis as JSON chunks suitable for progressive client-side rendering.

### What are the rate limits for the Hume TTS API?

Hume applies per-key rate limits that scale with the account tier; concurrency on streaming endpoints is also tier-bound. Check the Hume dashboard for the active project's quota before scaling parallel synthesis.

### How do I synthesise speech through Jentic?

Search Jentic for 'synthesise speech with Hume', load the schema for POST `/v0/tts/file`, and execute it with the script text and target voice ID. Jentic returns the rendered audio as a binary payload.

### Can I save and reuse a custom voice?

Yes. POST `/v0/tts/voices` saves a voice to the account library and returns a voice ID that can be referenced on subsequent synthesis calls. GET `/v0/tts/voices` lists existing entries and DELETE `/v0/tts/voices` removes them.

### Does the API perform speech-to-text or transcription?

No. This API synthesises speech from text and converts existing audio between voices. For transcription, use a dedicated speech-to-text provider such as Deepgram or AssemblyAI.

### Can I limit what my agent is allowed to do with the Hume Text-to-Speech API?

Yes. Jentic One is self-hosted by you, so your own rules decide which Hume operations and credentials the agent may use. You can allow only the calls it needs, such as synthesising speech through POST `/v0/tts` or POST `/v0/tts/stream/json` and listing voices with GET `/v0/tts/voices`, while withholding saving or deleting voices from the account library. Because you choose the operations, the agent cannot create or delete a voice unless you explicitly grant those endpoints.
