RelayCall

play_tts

View as MarkdownOpen in Claude

Play text-to-speech. A typed convenience over play() that builds the {"type": "tts", "params": {...}} media item for you.

Parameters

text
strRequired

The text to speak.

language
str | NoneDefaults to None

Language code for the voice, such as "en-US". Keyword-only.

gender
str | NoneDefaults to None

Voice gender, "male" or "female". Keyword-only.

voice
str | NoneDefaults to None

Voice ID. Keyword-only.

volume
float | NoneDefaults to None

Volume adjustment in dB, from -40.0 to 40.0. Keyword-only.

on_completed
Callable[[RelayEvent], Any] | NoneDefaults to None

Callback invoked when the operation reaches a terminal state. Can be a regular function or async coroutine. Keyword-only.

Returns

PlayAction — An action handle with stop(), pause(), resume(), volume(), and wait() methods.

Example

from signalwire.relay import RelayClient
client = RelayClient(
project="your-project-id",
token="your-api-token",
contexts=["default"],
)
@client.on_call
async def handle_call(call):
await call.answer()
action = await call.play_tts("Welcome to Bayview Taxi.", language="en-US")
await action.wait()
client.run()