---
title: "chat.tts.speak · OpenVibe.Services"
canonical: "https://openvibe.services/docs/capabilities/chat.tts.speak"
updated: null
---

# chat.tts.speak · OpenVibe.Services

HTML: [chat.tts.speak · OpenVibe.Services](https://openvibe.services/docs/capabilities/chat.tts.speak)

# `chat.tts.speak`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

Not grantable to apps (active, first-party).

Ask OpenVibe.Chat for the sound of one line, in the person own voice and on the person allowance (the Agent Streams plan, S4). The caller presents a service token for audience openvibe.chat that names the person it acts for (a node token on\_behalf\_of), so the voice is that person and never another. The text is one line (220 characters at most). The answer is the audio (base64) with its type; the desk mixes it into the stream Opus track. A person own cloned voice is asked for by name and only by that person.

- Owner: chat (token audience `openvibe.chat`)
- Version: 1.0
- Status: active
- Visibility: first-party
- Resource constraints: owner
- Quota class: internal-write
- Permissions: chat:tts
- Input: [chat.tts-speak-request@1](/docs/contracts/chat.tts-speak-request)
- Output: chat.tts-speak-result@1
- Events: —
- Implemented by: - `POST /api/agent-voice/speak`

[These routes in the API explorer](/docs/api/chat#cap-chat.tts.speak)
