ElevenLabs Voice AI

أصوات ذكاء اصطناعي هي الأكثر طبيعية مع تحكم عاطفي ودعم للغات متعددة.

✓ أصوات طبيعية

✓ تحكم عاطفي

✓ 29 لغة

✓ استنساخ الصوت

المصادقة

للوصول إلى ElevenLabs عبر واجهة برمجة تطبيقات Doitong، استخدم مفتاح API الخاص بك. قم بتضمينه في طلب Mutation الخاص بـ GraphQL أو في ترويسات REST API.

هام: حافظ على أمان مفتاح API الخاص بك ولا تكشفه أبداً في الكود البرمجي لجهة العميل. قم دائماً بإجراء استدعاءات API من خادمك الخلفي (Backend).
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

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

البدء السريع

ابدأ مع ElevenLabs TTS API في دقائق معدودة. اتبع هذه الخطوات البسيطة لإنشاء أول tts لك.

الخطوة 1: احصل على مفتاح API

سجل للحصول على حساب Doitong وانتقل إلى لوحة التحكم لإنشاء مفتاح API الخاص بك.

الخطوة 2: قم بإجراء طلبك الأول

استخدم أحد أمثلة الكود أدناه لإجراء أول استدعاء لواجهة برمجة التطبيقات.

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

الأسعار

يعتمد ElevenLabs TTS API نموذج تسعير قائم على الرصيد. يتم استهلاك الرصيد بناءً على تعقيد ومدة المحتوى الذي يتم إنشاؤه.

الميزة الرصيد الوصف
صوت قياسي رصيد واحد لكل 100 حرف أصوات عصبية أساسية
صوت مميز رصيدان لكل 100 حرف أصوات عصبية متقدمة مع تعبيرات عاطفية

نقاط نهاية API

تتوفر خدمة ElevenLabs TTS API من خلال نقطة نهاية GraphQL الموحدة الخاصة بنا.

نقطة نهاية GraphQL

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

نقطة نهاية REST

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

المعاملات

المعاملات المتاحة لطلبات ElevenLabs TTS API:

المعامل النوع مطلوب الوصف
service نص (String) Yes معرف الخدمة: "elevenlabs"
version نص (String) No Model version: "eleven-turbo-v2"
webhookUrl نص (String) No رابط URL لتلقي إشعارات الاكتمال

تنسيق الاستجابة

تتبع جميع استجابات API تنسيقاً ثابتاً:

استجابة ناجحة

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

استجابة مكتملة

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

معالجة الأخطاء

تستخدم واجهة برمجة التطبيقات رموز حالة HTTP القياسية وتعيد رسائل خطأ مفصلة.

أكواد الخطأ الشائعة

رمز الحالة نوع الخطأ الوصف
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

تنسيق استجابة الخطأ

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

الويب هوك (Webhooks)

تلقَّ إشعارات فورية عند اكتمال عملية إنشاء tts الخاصة بك.

إعداد الويب هوك

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

حمولة الويب هوك (Payload)

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

أمان الويب هوك

تتضمن جميع طلبات الويب هوك ترويسة توقيع للتحقق:

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

حدود معدل الاستخدام

لضمان الاستخدام العادل واستقرار النظام، تُطبق حدود المعدل التالية:

الخطة الطلبات/الدقيقة المهام المتزامنة الحد اليومي
مجاني 10 1 100
للمبتدئين 30 3 1,000
احترافي 60 10 10,000
للمؤسسات مخصص مخصص غير محدود
ترويسات حدود المعدل: تحقق من ترويسات الاستجابة لمعرفة حالة الحد الحالي:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

أفضل الممارسات

1. تحسين الأوامر (Prompts)

اكتب أوامر واضحة ووصفية للحصول على أفضل النتائج:

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

2. معالجة العمليات غير المتزامنة

عملية الإنشاء غير متزامنة. قم بتنفيذ آلية التحقق الدوري (Polling) أو الويب هوك:

// 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. التعافي من الأخطاء

قم بتنفيذ منطق إعادة المحاولة مع التراجع الأسي (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. مراقبة استهلاك الرصيد

تتبع استهلاكك للرصيد لتجنب أي انقطاع في الخدمة:

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

هل أنت مستعد للبدء؟

انضم إلى آلاف المطورين الذين يستخدمون ElevenLabs TTS API لإنشاء محتوى مذهل

احصل على مفتاح API الآن عرض الأسعار