تقدم هذه الوثيقة شرحًا لكيفية تكامل Fish TTS API، حيث أن هذه الواجهة متوافقة تمامًا مع Fish Audio OpenAPI الرسمي، ويمكنك ببساطة نقل الأكواد التي كانت تستدعيDocumentation Index
Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
https://api.fish.audio/v1/tts إلى https://api.xhuoapi.ai/v1/fish/tts مع استبدال معلومات المصادقة فقط، دون الحاجة لتعديل هيكل جسم الطلب.
عملية التقديم
لاستخدام API، يجب أولاً التقديم للحصول على الخدمة المناسبة من خلال صفحة Fish TTS API. بعد الدخول إلى الصفحة، اضغط على زر “Acquire”. إذا لم تكن قد سجلت الدخول أو أنشأت حسابًا، سيتم توجيهك تلقائيًا إلى صفحة تسجيل الدخول لتسجيل الدخول أو إنشاء حساب، وبعد ذلك ستعود تلقائيًا إلى الصفحة الحالية. عند التقديم لأول مرة، ستحصل على حصة مجانية لاستخدام API مجانًا.الفروقات مع API الرسمي
يحافظ هذا API على حقول الطلب والاستجابة الرسمية لـ Fish Audio مع بعض التحسينات الطفيفة لتسهيل التكامل على منصتنا:- طريقة المصادقة: تستخدم
Authorization: Bearer {token}حيث{token}هو المفتاح الذي تم الحصول عليه من منصتنا وليس مفتاح Fish الرسمي. - اختيار نموذج TTS: يتم تحديده عبر رأس HTTP
model، والقيم الممكنة هيs1أوs2-pro، والقيمة الافتراضية هيs2-pro، وهو مطابق لما هو في Fish الرسمي. - القيمة الافتراضية لـ
latency: في الواجهة الأصلية/fish/v1/ttsإذا لم يتم تمريرlatencyيتم إرجاع خطأ، أما في هذه الواجهة يتم تلقائيًا تعيينlatency=normalعند عدم وجوده، وهو سلوك مطابق للواجهة الرسمية. - الاستدعاء غير المتزامن (توسعة المنصة): عند تمرير حقل إضافي
callback_urlفي جسم الطلب، ستقوم الواجهة بإرجاع{task_id, started_at}فورًا، وبعد الانتهاء من المعالجة في الخلفية، سيتم إرسال النتيجة الكاملة{audio_url, ...}عبر POST بصيغة JSON إلى عنوان URL المحدد. لا تدعم الواجهة الرسمية هذا الحقل، وتمريره يؤدي فقط إلى تفعيل هذه الخاصية في منصتنا.
text، reference_id، references، prosody، format، sample_rate، mp3_bitrate، chunk_length، temperature، top_p، وغيرها) مباشرة إلى الواجهة الأصلية، مع سلوك مطابق تمامًا للوثائق الرسمية.
الاستخدام الأساسي
أصغر طلب يحتاج فقط إلى تمرير حقلtext، مثال CURL كالتالي:
audio_url: رابط الصوت المُنتج، يمكن تحميله أو تشغيله مباشرة.latency_ms(اختياري): زمن المعالجة في الخلفية بالميلي ثانية.
reference_id في جسم الطلب:
الاستدعاء غير المتزامن
نظرًا لأن توليد النصوص الطويلة في Fish TTS قد يستغرق وقتًا طويلاً، والحفاظ على اتصال طويل قد يستهلك موارد النظام، يوفر هذا API خاصية الاستدعاء غير المتزامن (وهي توسعة مقارنة بالواجهة الرسمية). العملية هي: عند إرسال الطلب، يتم تمرير حقلcallback_url في جسم الطلب، فتقوم الواجهة بإرجاع استجابة فورية تحتوي على task_id، وعند الانتهاء من التوليد فعليًا، يتم إرسال النتيجة النهائية مثل audio_url عبر POST بصيغة JSON إلى callback_url، مع تضمين نفس task_id لربط النتيجة بالمهمة الأصلية.
مثال على الطلب:
callback_url النتيجة الكاملة:
task_id.
معالجة الأخطاء
تحتفظ هذه الواجهة برموز حالة HTTP الرسمية لـ Fish، لكن جسم الاستجابة يستخدم تنسيقًا موحدًا للمنصة ليتوافق مع سلسلة/fish/audios و /fish/voices:
400 token_mismatched: طلب غير صالح، قد يكون بسبب معلمات مفقودة أو غير صحيحة.400 api_not_implemented: طلب غير صالح، قد يكون بسبب معلمات مفقودة أو غير صحيحة.401 invalid_token: غير مصرح، رمز المصادقة مفقود أو غير صالح.429 too_many_requests: عدد الطلبات كبير جدًا، لقد تجاوزت الحد المسموح.500 api_error: خطأ داخلي في الخادم، حدث خطأ ما في الخادم.

