Skip to content

Voice-over in every language

Each lesson script is translated by a chat model and voiced by a speech model. Both calls carry the course as the customer tag, so the cost of every language version is known before it ships.

Simulated run Simulated · no API call 0:44.5

Request

POST https://api.tovano.ai/v1/tasks
Authorization: Bearer $TOVANO_API_KEY
Content-Type: application/json
X-Tovano-Customer: course-7781
Idempotency-Key: lesson-12-fr-FR-v2

{
  "model": "audio/demo-tts-1",
  "input": {
    "text": "Bienvenue dans le module douze. Dans cette leçon, nous verrons comment lire un bilan en moins de dix minutes…",
    "voice": "mia"
  }
}

Response

{
  "id": "tsk_437a2c848dd2",
  "model": "audio/demo-tts-1",
  "status": "completed",
  "customer": "course-7781",
  "input": {
    "text": "Bienvenue dans le module douze. Dans cette leçon, …",
    "voice": "mia"
  },
  "output": {
    "audio": {
      "url": "https://files.tovano.ai/tsk_437a2c848dd2/0.wav?sig=…",
      "content_type": "audio/wav",
      "duration_s": 143
    }
  },
  "unit": "1k_chars",
  "units": 2.14,
  "charged_micro": 64200,
  "error": null,
  "created_at": "2026-11-12T09:14:03Z",
  "completed_at": "2026-11-12T09:14:24Z"
}

Tasks

8 tasks

  1. fr-FR · Lesson 12

    tsk_437a2c848dd2 · copy + image

    Completed $0.067288
  2. de-DE · Lesson 12

    tsk_19f40823b58e · copy + image

    Completed $0.072584
  3. es-ES · Lesson 12

    tsk_dd181552e59b · copy + image

    Completed $0.0648
  4. it-IT · Lesson 12

    tsk_c3a591d99fe6 · copy + image

    Completed $0.066664
  5. pt-BR · Lesson 12

    tsk_5ec57a301259 · copy + image

    Completed $0.065732
  6. ja-JP · Lesson 12

    tsk_5566979f3df1 · copy + image

    Completed $0.03486
  7. nl-NL · Lesson 12

    tsk_988b6e4e87a0 · copy + image

    Completed $0.069156
  8. pl-PL · Lesson 12

    tsk_80561f5515d6 · copy + image

    Completed $0.068532
Reserved $0.000 Charged $0.509616

Output

fr-FR2:23
de-DE2:34
es-ES2:17
it-IT2:21
pt-BR2:19
ja-JP1:08
nl-NL2:27
pl-PL2:25

Events

  1. 0:00.0POST /v1/tasks · 8 tasks queued
  2. 0:21.0tsk_437a2c848dd2 completed · $0.067288
  3. 0:25.0tsk_dd181552e59b completed · $0.0648
  4. 0:25.5tsk_19f40823b58e completed · $0.072584
  5. 0:29.5tsk_c3a591d99fe6 completed · $0.066664
  6. 0:31.0tsk_5ec57a301259 completed · $0.065732
  7. 0:36.5tsk_5566979f3df1 completed · $0.03486
  8. 0:37.0tsk_988b6e4e87a0 completed · $0.069156
  9. 0:40.5tsk_80561f5515d6 completed · $0.068532
  10. 0:44.5Done · 8 tasks · $0.509616 charged

A played-back run with realistic requests, responses and charges. No API call is made and no key is used. Times are compressed.

Cost of this run

$0.509616 for 8 tasks

ModelAmount
Demo Chat 1
text/demo-chat-15,120 input tokens × $1.00 / 1M input tokens
$0.00512
Demo Chat 1
text/demo-chat-15,224 output tokens × $4.00 / 1M output tokens
$0.020896
Demo Voice 1
audio/demo-tts-116,120 characters × $0.030 / 1K characters
$0.4836
Total$0.509616

Unit prices from the model catalogue, in US dollars, excluding tax. Agent jobs are charged per step at each step model's price.

At your volume

What a month costs

150,000 language versions × $0.06304 $9,456.00 Per language version: 640 input tokens × $1.00 + 600 output tokens × $4.00 + 2,000 characters × $0.030.

List prices. Committed-volume pricing, invoicing and an SLA are agreed in your contract. Talk to sales

How it works

Three calls you would write anyway.

  1. 1

    Translate

    A chat completion turns the source script into the target language. Charged for the tokens in and out, a fraction of a cent per lesson.

  2. 2

    Voice

    The translated text goes to the speech model as a task. Charged per 1,000 characters, so the cost is known before the call.

  3. 3

    Cost per course

    Both calls send the course ID as the customer tag. /v1/usage?group_by=customer gives the production cost of each course, every language included.

The code

Copy it, add your key, run it.

The same request in curl, TypeScript and Python. The TypeScript client is tovano on npm.

# 1. Translate the script (OpenAI-compatible chat endpoint)
curl https://api.tovano.ai/v1/chat/completions \
  -H "Authorization: Bearer $TOVANO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Tovano-Customer: course-7781" \
  -d '{
    "model": "text/demo-chat-1",
    "messages": [
      { "role": "system", "content": "Translate this lesson script into French. Keep the tone and the length." },
      { "role": "user", "content": "Welcome to module twelve. In this lesson..." }
    ]
  }'

# 2. Voice the translation
curl https://api.tovano.ai/v1/tasks \
  -H "Authorization: Bearer $TOVANO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Tovano-Customer: course-7781" \
  -H "Idempotency-Key: lesson-12-fr-FR-v2" \
  -d '{ "model": "audio/demo-tts-1", "input": { "text": "Bienvenue dans le module douze...", "voice": "mia" } }'

More examples

What else teams run at volume.

All examples

Run it on your volume, with your contract.

Committed-volume pricing, monthly invoices, higher limits and a named contact for teams that run AI in production.