ElevenLabs Voice AI

De mest naturlige AI-stemmene med emosjonell kontroll og støtte for mange språk.

✓ Naturlige stemmer

✓ Emosjonell kontroll

✓ 29 språk

✓ Stemmekloning

Autentisering

For å få tilgang til ElevenLabs via Doitong-API-et, bruk din Doitong-API-nøkkel. Inkluder den i GraphQL-mutasjonen eller i REST-API-headerne.

Viktig: Hold Doitong-API-nøkkelen din trygg og eksponer den aldri i kode på klientsiden. Gjør alltid API-kall fra din backend-server.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

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

Hurtigstart

Kom i gang med ElevenLabs TTS API på bare noen få minutter. Følg disse enkle trinnene for å generere din første tts.

Trinn 1: Hent din API-nøkkel

Registrer en Doitong-konto og gå til kontrollpanelet ditt for å generere en API-nøkkel.

Trinn 2: Gjør din første forespørsel

Bruk et av kodeeksemplene nedenfor for å gjøre ditt første API-kall.

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": "elevenlabs",
        "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: 'elevenlabs',
        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": "elevenlabs",
        "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": "elevenlabs",
    "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": "eleven-turbo-v2"
    }
  }
}

Priser

ElevenLabs TTS API bruker en kredittbasert prismodell. Kreditter forbrukes basert på kompleksiteten og varigheten til det genererte innholdet.

Funksjon Kreditter Beskrivelse
Standard stemme 1 kreditt per 100 tegn Grunnleggende nevrale stemmer
Premium-stemme 2 kreditter per 100 tegn Avanserte nevrale stemmer med følelser

API-endepunkter

ElevenLabs TTS API er tilgjengelig via vårt enhetlige GraphQL-endepunkt.

GraphQL-endepunkt

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

REST-endepunkt

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

Parametere

Tilgjengelige parametere for ElevenLabs TTS API-forespørsler:

Parameter Type Obligatorisk Beskrivelse
service String Yes Tjenesteidentifikator: "elevenlabs"
version String No Model version: "eleven-turbo-v2"
webhookUrl String No URL for å motta varsler om fullføring

Svarformat

Alle API-svar følger et konsekvent format:

Vellykket svar

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

Fullført svar

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

Feilhåndtering

API-et bruker standard HTTP-statuskoder og returnerer detaljerte feilmeldinger.

Vanlige feilkoder

Statuskode Feiltype Beskrivelse
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 for feilsvar

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

Webhooks

Motta varsler i sanntid når din tts-generering er fullført.

Sette opp webhooks

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

Webhook-nyttelast

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

Webhook-sikkerhet

Alle webhook-forespørsler inkluderer en signatur-header for verifisering:

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

Grenser for forespørsler

For å sikre rettferdig bruk og systemstabilitet gjelder følgende grenser:

Plan Forespørsler/minutt Samtidige jobber Daglig grense
Gratis 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Enterprise Tilpasset Tilpasset Ubegrenset
Headere for hastighetsbegrensning: Sjekk svar-headerne for gjeldende status:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Beste praksis

1. Optimaliser ledetekstene dine

Skriv klare og beskrivende ledetekster (prompts) for best mulig resultat:

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

2. Håndter asynkron prosessering

Genereringen er asynkron. Implementer riktig polling eller webhooks:

// 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. Feilretting

Implementer logikk for nye forsøk med eksponentiell ventetid:

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. Overvåk kredittforbruk

Spor kredittforbruket ditt for å unngå avbrudd i tjenesten:

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

Klar til å komme i gang?

Bli med tusenvis av utviklere som bruker ElevenLabs TTS API for å skape fantastisk innhold

Hent API-nøkkel nå Se priser