POST https://api.acedata.cloud/fish/tts.
عملية التقديم
لاستخدام Fish TTS API، يجب أولاً الذهاب إلى لوحة تحكم Ace Data Cloud للحصول على رمز API الخاص بك، احتفظ به للاستخدام لاحقًا.
إذا لم تكن قد قمت بتسجيل الدخول أو التسجيل بعد، سيتم تحويلك تلقائيًا إلى صفحة تسجيل الدخول لدعوتك للتسجيل وتسجيل الدخول، وبعد الانتهاء سيتم العودة تلقائيًا إلى الصفحة الحالية.
رمز API واحد يكفي لاستدعاء جميع خدمات المنصة، ولا حاجة لتقديم طلب منفصل لكل خدمة. عند التقديم لأول مرة، ستحصل على رصيد مجاني لتجربته؛ عند نفاد الرصيد، يمكنك إعادة شحن الرصيد العام في لوحة التحكم.
📘 الوثائق الكاملة: Fish TTS API →
رأس الطلب
حقول جسم الطلب
استنساخ لمرة واحدة يقبل فقط عنوان URL للصوت عبر HTTPS، ولا يقبل MessagePack، Base64، data URI أو URL مع بيانات الاعتماد. يُوصى بأن يكون طول الصوت المرجعي من 10 إلى 270 ثانية؛ تستخدم Studio نطاقًا أكثر تحفظًا من 10 إلى 60 ثانية.
المثال 1: الحد الأدنى من الطلب (text + format=mp3)
audio_url تشير إلى CDN الخاص بالمنصة، يمكن تنزيلها مباشرة عبر GET أو تشغيلها في <audio>. ستعيد الاستجابة الناجحة النهائية أيضًا cost في المستوى الأعلى، حيث amount هو الرصيد الفعلي المخصوم؛ إذا كان هناك خصم على الحساب، فإن list_amount تشير إلى الرصيد قبل الخصم. الروابط متاحة لفترة طويلة، ولكن يُوصى بالاحتفاظ بنسخة في تخزينك الخاص.
المثال 2: استخدام صوت استنساخ reference_id
فيما يلي استخدام صوت إسباني عام على منصة Fish (يمكن استرجاع _id عبر Fish Model Query):
المثال 3: استنساخ الصوت الفوري لمرة واحدة (references)
ضع الصوت المرجعي في عنوان HTTPS عام، وقدم النص الدقيق الذي تم قوله. سيتم استخدام هذا الصوت فقط في هذا التحويل، ولن يتم إنشاء نموذج طويل الأمد:
示例 3:调节语速 / 音量(prosody)
speed 大于 1 加快,小于 1 减慢;volume 单位 dB,0 表示不变,正数增益,负数衰减。
示例 5:切换模型 + 控制码率
通过 HTTP 头model: s1 切换到稳定型模型,请求体中加 mp3_bitrate: 128 控制 MP3 码率:
示例 6:PCM 原始波形
需要在浏览器里做实时拼接、或在客户端做后续处理(混音、变速)的场景,推荐使用pcm:
链接的扩展名跟随请求里的format:mp3得到.mp3,wav与pcm得到.wav(WAV 容器,16 bit PCM)。
异步回调(callback_url)
长文本一次合成可能需要十几秒到几十秒,连接如果中断需要重试。请求体中传 callback_url 后,接口会立即返回 {task_id, started_at},上游真正完成时把完整结果以 POST JSON 形式回调到该 URL,请求体中带同一个 task_id 和本次最终计费的顶层 cost。初始任务确认尚未完成合成,因此不包含 cost。
callback_url 会收到形如:
task_id 拉取结果;终态记录的 response.cost 与回调中的 cost 一致,详见该文档。
错误处理
400 token_mismatched:请求参数缺失或不合法(最常见是text为空,或format传了mp3/wav/pcm之外的值)。401 invalid_token:鉴权 token 不存在或无效。429 too_many_requests:触发账号速率限制。500 api_error:服务器内部错误。
message 字段说明不合法的字段,例如:
结论
接入 Fish TTS 的最小代价是:在已有调用api.fish.audio/v1/tts 的代码里把鉴权换成本平台 token,并在请求体里显式带上 format: "mp3"。长文本场景建议使用 callback_url 异步回调;对克隆音色 reference_id 的发现,请配合 Fish Model Query 与 Fish Model Get。
