Skip to main content
POST
/
conferences
/
{id}
/
actions
/
speak
JavaScript
import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});

const response = await client.conferences.actions.speak('id', {
  payload: 'Say this to participants',
  voice: 'female',
});

console.log(response.data);
import os
from telnyx import Telnyx

client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
response = client.conferences.actions.speak(
id="id",
payload="Say this to participants",
voice="female",
)
print(response.data)
package main

import (
"context"
"fmt"

"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)

func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.Conferences.Actions.Speak(
context.TODO(),
"id",
telnyx.ConferenceActionSpeakParams{
Payload: "Say this to participants",
Voice: "female",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)
}
package com.telnyx.sdk.example;

import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.conferences.actions.ActionSpeakParams;
import com.telnyx.sdk.models.conferences.actions.ActionSpeakResponse;

public final class Main {
private Main() {}

public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();

ActionSpeakParams params = ActionSpeakParams.builder()
.id("id")
.payload("Say this to participants")
.voice("female")
.build();
ActionSpeakResponse response = client.conferences().actions().speak(params);
}
}
require "telnyx"

telnyx = Telnyx::Client.new(api_key: "My API Key")

response = telnyx.conferences.actions.speak("id", payload: "Say this to participants", voice: "female")

puts(response)
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');

try {
$response = $client->conferences->actions->speak(
'id',
payload: 'Say this to participants',
voice: 'female',
callControlIDs: [
'v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg'
],
commandID: '891510ac-f3e4-11e8-af5b-de00688a4901',
language: 'en-US',
payloadType: 'text',
region: 'US',
voiceSettings: [
'type' => 'elevenlabs', 'apiKeyRef' => 'my_elevenlabs_api_key'
],
);

var_dump($response);
} catch (APIException $e) {
echo $e->getMessage();
}
telnyx conferences:actions speak \
--api-key 'My API Key' \
--id id \
--payload 'Say this to participants' \
--voice female
curl --request POST \
--url https://api.telnyx.com/v2/conferences/{id}/actions/speak \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"call_control_ids": [
"v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg"
],
"payload": "Say this to participants",
"payload_type": "text",
"voice": "female",
"language": "en-US",
"command_id": "891510ac-f3e4-11e8-af5b-de00688a4901"
}
'
{
  "data": {
    "result": "ok"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

Specifies the conference by id or name

Body

application/json
payload
string
required

The text or SSML to be converted into speech. There is a 3,000 character limit.

Example:

"Say this to participants"

voice
string
required

Specifies the voice used in speech synthesis.

  • Define voices using the format <Provider>.<Model>.<VoiceId>. Specifying only the provider will give default values for voice_id and model_id.

Supported Providers:

  • AWS: Use AWS.Polly.<VoiceId> (e.g., AWS.Polly.Joanna). For neural voices, which provide more realistic, human-like speech, append -Neural to the VoiceId (e.g., AWS.Polly.Joanna-Neural). Check the available voices for compatibility.
  • Azure: Use Azure.<VoiceId> (e.g., Azure.en-CA-ClaraNeural, Azure.en-US-BrianMultilingualNeural, Azure.en-US-Ava:DragonHDLatestNeural). For a complete list of voices, go to Azure Voice Gallery. Use voice_settings to configure custom deployments, regions, or API keys.
  • ElevenLabs: Use ElevenLabs.<ModelId>.<VoiceId> (e.g., ElevenLabs.eleven_multilingual_v2.21m00Tcm4TlvDq8ikWAM). The ModelId part is optional. To use ElevenLabs, you must provide your ElevenLabs API key as an integration identifier secret in "voice_settings": {"api_key_ref": "<secret_identifier>"}. See integration secrets documentation for details. Check available voices.
  • Telnyx: Use Telnyx.<model_id>.<voice_id> (e.g., Telnyx.KokoroTTS.af). Use voice_settings to configure voice_speed and other synthesis parameters. Bayan provides Arabic (multiple dialects) and English voices (e.g., Telnyx.Bayan.Ahmed, Telnyx.Bayan.Amanda). Sukhan provides Urdu voices (e.g., Telnyx.Sukhan.urdu-professor); voice_speed is not supported.
  • Minimax: Use Minimax.<ModelId>.<VoiceId> (e.g., Minimax.speech-02-hd.Wise_Woman). Supported models: speech-02-turbo, speech-02-hd, speech-2.6-turbo, speech-2.8-turbo. Use voice_settings to configure speed, volume, pitch, and language_boost.
  • Rime: Use Rime.<model_id>.<voice_id> (e.g., Rime.Arcana.cove). Supported model_ids: Arcana, Mist, ArcanaV3, Coda. Use voice_settings to configure voice_speed.
  • Resemble: Use Resemble.Turbo.<voice_id> (e.g., Resemble.Turbo.my_voice). Only Turbo model is supported. Use voice_settings to configure precision, sample_rate, and format.
  • Inworld: Use Inworld.<ModelId>.<VoiceId> (e.g., Inworld.Mini.Loretta, Inworld.Max.Oliver, Inworld.TTS2.Loretta). Supported models: Mini, Max, TTS2. Use voice_settings to configure delivery_mode (STABLE, BALANCED, CREATIVE), supported by TTS2 only.
  • Fish Audio: Use FishAudio.<ModelId>.<VoiceId> (e.g., FishAudio.s2.1-pro.<reference_id>). Supported models: s2.1-pro, s2-pro, s1. VoiceId is a Fish Voice-Library reference ID.
  • xAI: Use xAI.<VoiceId> (e.g., xAI.eve). Available voices: eve, ara, rex, sal, leo.

For service_level basic, you may define the gender of the speaker (male or female).

Example:

"Telnyx.KokoroTTS.af"

call_control_ids
string[]

Call Control IDs of participants who will hear the spoken text. When empty all participants will hear the spoken text.

payload_type
enum<string>
default:text

The type of the provided payload. The payload can either be plain text, or Speech Synthesis Markup Language (SSML).

Available options:
text,
ssml
Example:

"ssml"

voice_settings
ElevenLabs Voice Settings · object

The settings associated with the voice selected

language
enum<string>

The language you want spoken. This parameter is ignored when a Polly.* voice is specified.

Available options:
arb,
cmn-CN,
cy-GB,
da-DK,
de-DE,
en-AU,
en-GB,
en-GB-WLS,
en-IN,
en-US,
es-ES,
es-MX,
es-US,
fr-CA,
fr-FR,
hi-IN,
is-IS,
it-IT,
ja-JP,
ko-KR,
nb-NO,
nl-NL,
pl-PL,
pt-BR,
pt-PT,
ro-RO,
ru-RU,
sv-SE,
tr-TR
Example:

"en-US"

command_id
string

Use this field to avoid execution of duplicate commands. Telnyx will ignore subsequent commands with the same command_id as one that has already been executed.

Example:

"891510ac-f3e4-11e8-af5b-de00688a4901"

region
enum<string>

Region where the conference data is located. Defaults to the region defined in user's data locality settings (Europe or US).

Available options:
Australia,
Europe,
Middle East,
US
Example:

"US"

Response

Successful response upon making a conference command.

data
Conference Command Result · object
Example:
{ "result": "ok" }