ElevenLabs balso DI

Natūraliausi DI balsai su emocijų valdymu ir daugybe palaikomų kalbų.

✓ Natūralūs balsai

✓ Emocijų valdymas

✓ 29 kalbos

✓ Balso klonavimas

Autentifikavimas

Norėdami pasiekti ElevenLabs per „Doitong“ API, naudokite savo „Doitong“ API raktą. Įtraukite jį į „GraphQL“ mutaciją arba REST API antraštes.

Svarbu: Saugokite savo „Doitong“ API raktą ir niekada nenaudokite jo kliento pusės kode. API užklausas visada vykdykite iš savo serverio.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

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

Greita pradžia

Pradėkite naudotis ElevenLabs TTS API vos per kelias minutes. Atlikite šiuos paprastus veiksmus, kad sugeneruotumėte savo pirmąjį tts.

1 žingsnis: Gaukite API raktą

Užsiregistruokite „Doitong“ paskyroje ir eikite į valdymo skydą, kad sugeneruotumėte API raktą.

2 žingsnis: Atlikite pirmąją užklausą

Pasinaudokite vienu iš žemiau pateiktų kodo pavyzdžių savo pirmajai API užklausai.

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

Kainodara

ElevenLabs TTS API naudoja kreditais pagrįstą kainodaros modelį. Kreditai nurašomi atsižvelgiant į kuriamo turinio sudėtingumą ir trukmę.

Funkcija Kreditai Aprašymas
Standartinis balsas 1 kreditas už 100 simbolių Baziniai neuroniniai balsai
Premium balsas 2 kreditai už 100 simbolių Pažangūs neuroniniai balsai su emocijomis

API prieigos taškai

ElevenLabs TTS API paslauga pasiekiama per mūsų bendrą „GraphQL“ prieigos tašką.

GraphQL prieigos taškas

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

REST prieigos taškas

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

Parametrai

Galimi ElevenLabs TTS API užklausų parametrai:

Parametras Tipas Privaloma Aprašymas
service String Yes Paslaugos identifikatorius: "elevenlabs"
version String No Model version: "eleven-turbo-v2"
webhookUrl String No URL adresas pranešimams apie užbaigimą gauti

Atsakymo formatas

Visi API atsakymai pateikiami vienodu formatu:

Sėkmingas atsakymas

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

Užbaigtas atsakymas

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

Klaidų valdymas

API naudoja standartinius HTTP būsenos kodus ir pateikia išsamius klaidų pranešimus.

Dažni klaidų kodai

Būsenos kodas Klaidos tipas Aprašymas
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

Klaidos atsakymo formatas

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

Webhooks

Gaukite pranešimus realiuoju laiku, kai jūsų tts kūrimas bus baigtas.

Webhooks nustatymas

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

Webhook duomenys

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

Visos webhook užklausos turi parašo antraštę patikrai:

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

Užklausų ribojimai

Siekiant užtikrinti sąžiningą naudojimąsi ir sistemos stabilumą, taikomi šie ribojimai:

Planas Užklausos per minutę Lygiagretūs darbai Dienos limitas
Nemokamas 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Enterprise Individualus Individualus Neribota
Ribojimų antraštės: Dabartinę ribojimų būseną tikrinkite atsakymo antraštėse:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Geriausios praktikos

1. Optimizuokite užklausas

Rašykite aiškias, aprašomąsias užklausas (prompts) geriausiems rezultatams pasiekti:

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

2. Valdykite asinchroninį apdorojimą

Kūrimas vyksta asinchroniškai. Įdiekite tinkamą būsenos tikrinimą (polling) arba naudokite 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. Klaidų atitaisymas

Įdiekite pakartotinio bandymo logiką su eksponentiniu atidėjimu:

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. Stebėkite kreditų likutį

Sekite kreditų suvartojimą, kad išvengtumėte paslaugų pertrūkių:

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

Pasiruošę pradėti?

Prisijunkite prie tūkstančių kūrėjų, naudojančių ElevenLabs TTS API nuostabiam turiniui kurti

Gauti API raktą Peržiūrėti kainas