Skip to main content
هذا الواجهة تعتمد على Fish Audio الرسمية TTS API، فقط في طريقة التوثيق (استخدام توكن هذه المنصة) والرد غير المتزامن (callback_url كامتداد) هناك اختلاف، هيكل جسم الطلب متطابق مع المصدر. العنوان هو POST https://api.acedata.cloud/fish/tts.

عملية التقديم

لاستخدام Fish TTS API، يجب أولاً الذهاب إلى لوحة تحكم Ace Data Cloud للحصول على توكن API الخاص بك، احتفظ به للاستخدام لاحقًا. إذا لم تكن قد قمت بتسجيل الدخول أو التسجيل، سيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول لدعوتك للتسجيل وتسجيل الدخول، وبعد الانتهاء سيتم العودة تلقائيًا إلى الصفحة الحالية. توكن API واحد يكفي لاستدعاء جميع خدمات المنصة، ولا حاجة لتقديم طلب منفصل لكل خدمة. عند التقديم لأول مرة، ستحصل على رصيد مجاني لتجربته؛ عند نفاد الرصيد يمكنك إعادة شحن الرصيد العام في لوحة التحكم.
📘 الوثائق الكاملة: Fish TTS API →

رأس الطلب

حقول جسم الطلب

أسماء الحقول متطابقة تمامًا مع المصدر. باستثناء callback_url، المعاني والقيم الأخرى راجع وثائق TTS الرسمية من Fish.

مثال 1: الحد الأدنى من الطلب (text + format=mp3)

الرد (تم الاختبار):
audio_url تشير إلى CDN الخاص بالمنصة، يمكن تنزيلها مباشرة باستخدام GET أو تشغيلها في <audio>。الرابط متاح لفترة طويلة، ولكن يُنصح بالاحتفاظ بنسخة في تخزينك الخاص.

مثال 2: استخدام صوت مستنسخ reference_id

فيما يلي استخدام صوت إسباني عام على منصة Fish (يمكن استرجاع _id من Fish Model Query):
الرد (تم الاختبار):

مثال 3: ضبط سرعة الكلام / الصوت (prosody)

الرد (تم الاختبار):
speed أكبر من 1 يسرع، أقل من 1 يبطئ؛ volume وحدة dB، 0 تعني عدم التغيير، الأعداد الموجبة زيادة، السالبة تقليل.

مثال 4: تبديل النموذج + التحكم في معدل البت

من خلال رأس HTTP model: s1 يتم التبديل إلى النموذج المستقر، أضف mp3_bitrate: 128 في جسم الطلب للتحكم في معدل بت MP3:
返回(实测):

示例 5:PCM 原始波形

需要在浏览器里做实时拼接、或在客户端做后续处理(混音、变速)的场景,推荐使用 pcm
返回(实测):
链接的扩展名跟随请求里的 formatmp3 得到 .mp3wavpcm 得到 .wav(WAV 容器,16 بت PCM)。

异步回调(callback_url

长文本一次合成可能需要十几秒到几十秒,连接如果中断需要重试。请求体中传 callback_url 后,接口会立即返回 {task_id, started_at},上游真正完成时把完整结果以 POST JSON 形式回调到该 URL,请求体中带同一个 task_id
立即返回(实测):
稍后 callback_url 会收到形如:
也可以用 Fish Tasks API 主动按 task_id 拉取结果,详见该文档。

错误处理

  • 400 token_mismatched:请求参数缺失或不合法(最常见是 text 为空,或 format 传了 mp3/wav/pcm 之外的值)。
  • 401 invalid_token:鉴权 token 不存在或无效。
  • 429 too_many_requests:触发账号速率限制。
  • 500 api_error:服务器内部错误。
错误响应示例:
参数校验错误会把上游的 pydantic 报错原文放在 message 字段,便于定位是哪个字段不合法,例如:

结论

接入 Fish TTS 的最小代价是:在已有调用 api.fish.audio/v1/tts 的代码里把鉴权换成本平台 token,并在请求体里显式带上 format: "mp3"。长文本场景建议使用 callback_url 异步回调;对克隆音色 reference_id 的发现,请配合 Fish Model QueryFish Model Get