ToolAssay

Text to speech API

Text to speech API: offline speech in 41 voices and 6 languages (English, Spanish, French, Hindi, Italian, Portuguese), MP3, WAV or Ogg audio (Kokoro-82M, CPU) (mlpeek, Tanod). Use when an agent must turn text into spoken audio in English, Spanish, French, Hindi, Italian or Portuguese.

Answeringour last check, 2026-10-18
1 of 1checks answered this week
359 msmedian answer time
$0.005listed price per call
$0.005price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://tanod.dev/v1/audio/speak

CategoryImage and media
Provider hosttanod.dev
Networkseip155:137, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Payment schemesexact
Self-reported calls, 30 days2 from 2 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-18 valid payment request 402$0.005 359 ms

Example input (from the provider)

{
  "body": {
    "text": "Your report is ready."
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "properties": {
            "format": {
              "default": "mp3",
              "description": "Audio format: mp3, wav (16-bit PCM) or ogg (Opus).",
              "enum": [
                "mp3",
                "wav",
                "ogg"
              ],
              "type": "string"
            },
            "output": {
              "default": "base64",
              "description": "base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, which keeps the file out of your context window.",
              "enum": [
                "base64",
                "url"
              ],
              "type": "string"
            },
            "speed": {
              "default": 1,
              "description": "Speaking rate, 0.5 to 2.0 (1.0 is normal).",
              "maximum": 2,
              "minimum": 0.5,
              "type": "number"
            },
            "text": {
              "description": "Text to speak, 1 to 2,000 characters, in the language of the chosen voice (English, Spanish, French, Hindi, Italian or Brazilian Portuguese).",
              "maxLength": 2000,
              "minLength": 1,
              "type": "string"
            },
            "voice": {
              "default": "af_heart",
              "description": "Voice (41): the first letter is the language: a US English (af_heart default, af_bella, am_adam), b UK English (bf_emma, bm_george), e Spanish (ef_dora), f French (ff_siwis), h Hindi (hf_alpha, hm_omega), i Italian (if_sara, im_nicola), p Brazilian Portuguese (pf_dora, pm_alex); f = female, m = male. Write the text in the voice's language.",
              "enum": [
                "af_heart",
                "af_alloy",
                "af_aoede",
                "af_bella",
                "af_jessica",
                "af_kore",
                "af_nicole",
                "af_nova",
                "af_river",
                "af_sarah",
                "af_sky",
                "am_adam",
                "am_echo",
                "am_eric",
                "am_fenrir",
                "am_liam",
                "am_michael",
                "am_onyx",
                "am_puck",
                "am_santa",
                "bf_alice",
                "bf_emma",
                "bf_isabella",
                "bf_lily",
                "bm_daniel",
                "bm_fable",
                "bm_george",
                "bm_lewis",
                "ef_dora",
                "em_alex",
                "em_santa",
                "ff_siwis",
                "hf_alpha",
                "hf_beta",
                "hm_omega",
                "hm_psi",
                "if_sara",
                "im_nicola",
                "pf_dora",
                "pm_alex",
                "pm_santa"
              ],
              "type": "string"
            }
          },
          "required": [
            "text"
          ],
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "properties": {
            "bytes": {
              "type": "integer"
            },
            "chars": {
              "type": "integer"
            },
            "content_type": {
              "type": "string"
            },
            "data_base64": {
              "type": "string"
            },
            "duration_s": {
              "type": "number"
            },
            "engine": {
              "type": "string"
            },
            "expires_at": {
              "type": "string"
            },
            "format": {
              "type": "string"
            },
            "sample_rate": {
              "type": "integer"
            },
            "sha256": {
              "type": "string"
            },
            "speed": {
              "type": "number"
            },
            "url": {
              "type": "string"
            },
            "voice": {
              "type": "string"
            }
          },
          "required": [
            "format",
            "content_type",
            "bytes",
            "duration_s",
            "sample_rate",
            "voice"
          ],
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON