Google Text-to-Speech

Google's neurale tekst-naar-spraak met WaveNet-stemmen. Meer dan 380 stemmen in 50+ talen met SSML-ondersteuning.

✓ 380+ stemmen

✓ 50+ talen

✓ WaveNet-kwaliteit

✓ SSML-ondersteuning

Authenticatie

Gebruik je Doitong API-key om toegang te krijgen tot Google TTS via de Doitong API. Voeg deze toe aan de GraphQL-mutatie of de REST API-headers.

Belangrijk: Houd je Doitong API-key veilig en deel deze nooit in client-side code. Voer API-aanroepen altijd uit vanaf je eigen backend-server.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

// REST Header
"X-API-Key": "YOUR_API_KEY"

Snel aan de slag

Ga binnen enkele minuten aan de slag met Google TTS API. Volg deze eenvoudige stappen om je eerste tts te genereren.

Stap 1: Ontvang je API-key

Maak een Doitong-account aan en ga naar je dashboard om een API-key te genereren.

Stap 2: Doe je eerste verzoek

Gebruik een van de onderstaande codevoorbeelden voor je eerste API-aanroep.

curl -X POST https://api.doitong.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
    "variables": {
      "input": {
        "type": "AUDIO",
        "provider": "google-tts",
        "input": {
          "text": "Hello world, this is a text to speech example.",
          "voice": "en-US-neural"
        },
        "options": {
          "speed": 1.0
        }
      }
    }
  }'
const response = await fetch('https://api.doitong.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    query: `
      mutation GenerateSpeech($input: TTSInput!) {
        generateSpeech(input: $input) {
          id
          audioUrl
          duration
        }
      }
    `,
    variables: {
      input: {
        service: 'google-tts',
        text: 'Hello world, this is a text to speech example.',
        voice: 'en-US-neural',
        speed: 1.0
      }
    }
  })
});

const data = await response.json();
console.log('Result:', data.data.generate);
import requests
import json

url = "https://api.doitong.com/graphql"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

query = """
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
  }
}
"""

variables = {
    "input": {
        "type": "AUDIO",
        "provider": "google-tts",
        "input": {
            "text": "Hello world, this is a text to speech example.",
            "voice": "en-US-neural"
        },
        "options": {
            "speed": 1.0
        }
    }
}

response = requests.post(url, json={
    "query": query,
    "variables": variables
}, headers=headers)

data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
    createdAt
  }
}

# Variables
{
  "input": {
    "type": "AUDIO",
    "provider": "google-tts",
    "input": {
      "text": "Hello world, this is a text to speech example.",
      "voice": "en-US-neural"
    },
    "options": {
      "speed": 1.0,
      "pitch": 1.0,
      "language": "en",
      "version": "neural2"
    }
  }
}

Tarieven

Google TTS API maakt gebruik van een prijsmodel op basis van credits. Credits worden verbruikt op basis van de complexiteit en de duur van de gegenereerde content.

Functie Credits Beschrijving
Standaardstem 1 credit per 100 tekens Basis neurale stemmen
Premium stem 2 credits per 100 tekens Geavanceerde neurale stemmen met emotie

API-endpoints

Google TTS API is beschikbaar via ons universele GraphQL-endpoint.

GraphQL-endpoint

POST https://api.doitong.com/graphql

REST-endpoint

POST https://api.doitong.com/v1/tts

Parameters

Beschikbare parameters voor Google TTS API-aanvragen:

Parameter Type Verplicht Beschrijving
service String Yes Service-ID: "google-tts"
version String No Model version: "wavenet", "neural2"
webhookUrl String No URL voor het ontvangen van voltooiingsmeldingen

Responsformaat

Alle API-antwoorden volgen een consistent formaat:

Succesvolle respons

{
  "data": {
    "tts": {
      "id": "abc123xyz",
      "status": "processing",
      "url": null,
      "webhookUrl": "https://your-webhook.com/callback",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Voltooide respons

{
  "data": {
    "tts": {
      "id": "abc123xyz",
      "status": "completed",
      "url": "https://cdn.doitong.com/outputs/abc123xyz.mp3",
      "duration": null,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Foutafhandeling

De API maakt gebruik van standaard HTTP-statuscodes en retourneert gedetailleerde foutmeldingen.

Veelvoorkomende foutcodes

Statuscode Fouttype Beschrijving
400 Bad Request Invalid parameters or malformed request
401 Unauthorized Missing or invalid API key
402 Payment Required Insufficient credits
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry

Foutrespons-formaat

{
  "errors": [
    {
      "message": "Insufficient credits for this operation",
      "extensions": {
        "code": "INSUFFICIENT_CREDITS",
        "creditsRequired": 100,
        "creditsAvailable": 50
      }
    }
  ]
}

Webhooks

Ontvang realtime meldingen zodra de generatie van je tts is voltooid.

Webhooks instellen

Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.

Webhook-payload

{
  "id": "abc123xyz",
  "status": "completed",
  "url": "https://cdn.doitong.com/outputs/abc123xyz.mp3",
  "service": "google-tts",
  "createdAt": "2024-01-01T00:00:00Z",
  "completedAt": "2024-01-01T00:01:00Z",
  "metadata": {
    "duration": null,
    "width": null,
    "height": null
  }
}

Webhook-beveiliging

Alle webhook-verzoeken bevatten een signature-header ter verificatie:

X-Doitong-Signature: sha256=abc123...

Rate limits

Om eerlijk gebruik en systeemstabiliteit te garanderen, gelden de volgende limieten:

Abonnement Requests/minuut Gelijktijdige taken Dagelijkse limiet
Gratis 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Enterprise Maatwerk Maatwerk Onbeperkt
Rate limit-headers: Controleer de respons-headers voor de huidige status van je limieten:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Best practices

1. Optimaliseer je prompts

Schrijf duidelijke, beschrijvende prompts voor de beste resultaten:

  • Be specific about visual elements, style, and mood
  • Include details about lighting, camera angles, and composition
  • Avoid contradictory or impossible requests

2. Verwerk asynchrone processen

Generatie is asynchroon. Implementeer polling of webhooks op de juiste manier:

// Polling example
async function pollStatus(jobId) {
  let status = 'processing';
  while (status === 'processing') {
    await sleep(2000); // Wait 2 seconds
    const result = await checkJobStatus(jobId);
    status = result.status;
  }
  return result;
}

3. Foutherstel

Implementeer retry-logica met exponential backoff:

async function retryWithBackoff(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await sleep(Math.pow(2, i) * 1000);
    }
  }
}

4. Monitor je creditverbruik

Houd je verbruik bij om onderbrekingen te voorkomen:

  • Check credit balance before large batch operations
  • Set up alerts for low credit thresholds
  • Implement credit-aware request queuing

Klaar om te beginnen?

Sluit je aan bij duizenden developers die Google TTS API gebruiken om geweldige content te maken

Ontvang nu je API-key Bekijk tarieven