Google Text-to-Speech

Synthèse vocale neurale de Google avec voix WaveNet. Plus de 380 voix dans plus de 50 langues avec support SSML.

✓ Plus de 380 voix

✓ Plus de 50 langues

✓ Qualité WaveNet

✓ Support SSML

Authentification

Pour accéder à Google TTS via l'API Doitong, utilisez votre clé API Doitong. Incluez-la dans la mutation GraphQL ou dans les en-têtes de l'API REST.

Important: Gardez votre clé API Doitong en sécurité et ne l'exposez jamais dans le code côté client. Effectuez toujours vos appels API à partir de votre serveur backend.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

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

Démarrage rapide

Commencez à utiliser Google TTS API en quelques minutes seulement. Suivez ces étapes simples pour générer votre premier tts.

Étape 1 : Obtenez votre clé API

Inscrivez-vous à un compte Doitong et accédez à votre tableau de bord pour générer une clé API.

Étape 2 : Effectuez votre première requête

Utilisez l'un des exemples de code ci-dessous pour effectuer votre premier appel API.

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"
    }
  }
}

Tarification

Google TTS API utilise un modèle de tarification basé sur des crédits. Les crédits sont consommés selon la complexité et la durée du contenu généré.

Fonctionnalité Crédits Description
Voix standard 1 crédit par 100 caractères Voix neurales de base
Voix Premium 2 crédits par 100 caractères Voix neurales avancées avec émotions

Points de terminaison de l'API

Google TTS API est accessible via notre point de terminaison GraphQL unifié.

Point de terminaison GraphQL

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

Point de terminaison REST

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

Paramètres

Paramètres disponibles pour les requêtes Google TTS API :

Paramètre Type Requis Description
service Chaîne Yes Identifiant du service: "google-tts"
version Chaîne No Model version: "wavenet", "neural2"
webhookUrl Chaîne No URL pour recevoir les notifications de fin de traitement

Format de la réponse

Toutes les réponses de l'API suivent un format cohérent :

Réponse de succès

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

Réponse terminée

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

Gestion des erreurs

L'API utilise des codes d'état HTTP standard et renvoie des messages d'erreur détaillés.

Codes d'erreur courants

Code d'état Type d'erreur Description
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

Format de réponse d'erreur

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

Webhooks

Recevez des notifications en temps réel lorsque la génération de votre tts est terminée.

Configuration des webhooks

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

Charge utile (payload) du webhook

{
  "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
  }
}

Sécurité des webhooks

Toutes les requêtes de webhook incluent un en-tête de signature pour vérification :

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

Limites de débit

Pour garantir une utilisation équitable et la stabilité du système, les limites de débit suivantes s'appliquent :

Forfait Requêtes/minute Tâches simultanées Limite quotidienne
Gratuit 10 1 100
Débutant 30 3 1,000
Pro 60 10 10,000
Entreprise Personnalisé Personnalisé Illimité
En-têtes de limite de débit: Consultez les en-têtes de réponse pour connaître l'état actuel de vos limites :
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Bonnes pratiques

1. Optimisez vos instructions (prompts)

Rédigez des instructions claires et descriptives pour obtenir les meilleurs résultats :

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

2. Gérez le traitement asynchrone

La génération est asynchrone. Implémentez un système de sondage (polling) ou des webhooks appropriés :

// 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. Récupération après erreur

Implémentez une logique de tentative (retry) avec un repli exponentiel :

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. Surveillez l'utilisation des crédits

Suivez votre consommation de crédits pour éviter toute interruption :

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

Prêt à commencer ?

Rejoignez des milliers de développeurs qui utilisent Google TTS API pour créer du contenu incroyable

Obtenir une clé API Voir les tarifs