- サードパーティ
- ゼロデータ保持
xAI の Grok テキスト読み上げモデルです。eve、ara、rex、sal、leo の 5 つの表現豊かな音声で、20 以上の言語に対応した高忠実度の音声を生成します。笑い、ささやき、間などのインライン speech タグに対応します。
| モデル情報 | |
|---|---|
| 利用規約とライセンス | リンク ↗ |
| 詳細情報 | リンク ↗ |
| ゼロデータ保持 | はい |
| 料金 | Cloudflare ダッシュボードで料金を見る ↗ |
const response = await env.AI.run(
'xai/grok-tts',
{ text: 'Hello! Welcome to the xAI Text to Speech API.', language: 'en' },
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "xai/grok-tts",
"input": {
"text": "Hello! Welcome to the xAI Text to Speech API.",
"language": "en"
}
}'{
"state": "Completed",
"result": {
"audio": "https://examples.aig.cloudflare.com/xai/grok-tts/simple-generation.mp3"
},
"gatewayMetadata": {
"keySource": "Unified"
}
}別の音声 — 温かみのある会話調の `ara` 音声を使います
const response = await env.AI.run(
'xai/grok-tts',
{ text: 'Thank you for calling. How can I help you today?', voice_id: 'ara', language: 'en' },
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "xai/grok-tts",
"input": {
"text": "Thank you for calling. How can I help you today?",
"voice_id": "ara",
"language": "en"
}
}'{
"state": "Completed",
"result": {
"audio": "https://examples.aig.cloudflare.com/xai/grok-tts/different-voice.mp3"
},
"gatewayMetadata": {
"keySource": "Unified"
}
}高音質 MP3 — 制作向けの 44.1 kHz / 192 kbps MP3 です
const response = await env.AI.run(
'xai/grok-tts',
{
text: 'Crystal clear audio at maximum quality.',
voice_id: 'rex',
language: 'en',
output_format: { codec: 'mp3', sample_rate: 44100, bit_rate: 192000 },
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "xai/grok-tts",
"input": {
"text": "Crystal clear audio at maximum quality.",
"voice_id": "rex",
"language": "en",
"output_format": {
"codec": "mp3",
"sample_rate": 44100,
"bit_rate": 192000
}
}
}'{
"state": "Completed",
"result": {
"audio": "https://examples.aig.cloudflare.com/xai/grok-tts/high-fidelity-mp3.mp3"
},
"gatewayMetadata": {
"keySource": "Unified"
}
}電話音声 (mulaw) — SIP / PSTN 連携向けの 8 kHz の G.711 μ-law です
const response = await env.AI.run(
'xai/grok-tts',
{
text: 'Hello, thank you for calling. How can I help you today?',
voice_id: 'ara',
language: 'en',
output_format: { codec: 'mulaw', sample_rate: 8000 },
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "xai/grok-tts",
"input": {
"text": "Hello, thank you for calling. How can I help you today?",
"voice_id": "ara",
"language": "en",
"output_format": {
"codec": "mulaw",
"sample_rate": 8000
}
}
}'{
"state": "Completed",
"result": {
"audio": "https://examples.aig.cloudflare.com/xai/grok-tts/telephony-law.mp3"
},
"gatewayMetadata": {
"keySource": "Unified"
}
}表現豊かな発話 — 笑い、間、ささやき向けのインライン発話タグです
const response = await env.AI.run(
'xai/grok-tts',
{
text: 'So I walked in and [pause] there it was. [laugh] I honestly could not believe it! <whisper>It was a secret the whole time.</whisper>',
voice_id: 'eve',
language: 'en',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "xai/grok-tts",
"input": {
"text": "So I walked in and [pause] there it was. [laugh] I honestly could not believe it! <whisper>It was a secret the whole time.</whisper>",
"voice_id": "eve",
"language": "en"
}
}'{
"state": "Completed",
"result": {
"audio": "https://examples.aig.cloudflare.com/xai/grok-tts/expressive-delivery.mp3"
},
"gatewayMetadata": {
"keySource": "Unified"
}
}テキスト正規化 — 表記の数字と略語を話し言葉に変換します
const response = await env.AI.run(
'xai/grok-tts',
{
text: 'The total is $1,234.56 and the meeting is at 3pm on Jan 15th.',
voice_id: 'rex',
language: 'en',
text_normalization: true,
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "xai/grok-tts",
"input": {
"text": "The total is $1,234.56 and the meeting is at 3pm on Jan 15th.",
"voice_id": "rex",
"language": "en",
"text_normalization": true
}
}'{
"state": "Completed",
"result": {
"audio": "https://examples.aig.cloudflare.com/xai/grok-tts/text-normalization.mp3"
},
"gatewayMetadata": {
"keySource": "Unified"
}
}text
stringminLength: 1maxLength: 15000音声に変換するテキストです。最大 15,000 文字です。インラインの音声タグ(`[pause]`、`[laugh]`、`<whisper>…</whisper>` など)に対応します。REST モードでは必須で、`websocket` とは同時に使えません。language
string必須BCP-47 言語コードです(例: `en`、`zh`、`pt-BR`)。自動検出は `auto` です。REST と WebSocket の両方で必須です。対応コード: auto、en、ar-EG、ar-SA、ar-AE、bn、zh、fr、de、hi、id、it、ja、ko、pt-BR、pt-PT、ru、es-MX、es-ES、tr、vi。websocket
booleanテキストから音声向けの WebSocket ストリーミングを有効にします。`true` の場合、双方向 WebSocket を確立します。`text` とは同時に使えません。voice_id
stringminLength: 1合成に使う voice です。デフォルトは `eve` です。組み込み: eve(energetic)、ara(warm)、rex(confident)、sal(balanced)、leo(authoritative)。`/v1/tts/voices` のカスタム voice ID も受け付けます。大文字小文字は区別しません(`Eve`、`EVE`、`eve` は同じです)。▶output_format{}
object出力音声の形式です。省略時は MP3、24 kHz / 128 kbps です。▶optimize_streaming_latency
いずれかtext_normalization
boolean`true` の場合、合成前に書き言葉を話し言葉に正規化します(例: `Dr.` → `Doctor`、`100` → `one hundred`)。デフォルトは false です。speed
numberminimum: 0.7maximum: 1.5発話速度の倍率です。1.0 が通常速度です。範囲は 0.7〜1.5、デフォルトは 1.0 です。WebSocket モードでのみ使います。audio
string生成音声ファイルの署名付き R2 URL です。MIME タイプは指定したコーデックに従います(mp3 は `audio/mpeg`、wav は `audio/wav` など)。