انتقل إلى المحتوى

الصوت ودليل النماذج ​

يسرد GET /v1/chat/catalog النماذج العامة والأصوات وأسعار الائتمان الحالية. تستخدم الدردشة النصية POST /v1/chat/completions; يستخدم الكلام نقاط النهاية أدناه.

الموديلات والأسعار ​

كتالوج النماذج الحية · أسعار الائتمان

جارٍ تحميل كتالوج النماذج...

الكلام إلى النص ​

POST /v1/chat/transcribe يقبل { "audio": "data:audio/webm;base64,..." }. يتم أيضًا دعم Base64 العادي، حتى 10MB الذي تم فك تشفيره. إرجاع text وlanguage.

تحويل النص إلى كلام ​

كتالوج النماذج الحية · أسعار الائتمان

جارٍ تحميل كتالوج النماذج...

قم بتوسيع النموذج لرؤية الأصوات الممكّنة الخاصة به. يمكن للمسؤولين تغيير أسماء الصوت وأوصافه. يتم حذف الأصوات المعطلة من الكتالوج ولا يمكن استخدامها لطلبات التوليف الجديدة؛ قم بتحديث هذه الصفحة لرؤية الإعدادات الحالية. يؤدي تعطيل النموذج أيضًا إلى إزالة جميع أصواته من قوائم أصوات التوثيق والكتالوج ويرفض طلبات التجميع الجديدة. تؤدي إعادة تمكين النموذج إلى الحفاظ على إعدادات الصوت الفردية. إذا تم تعطيل الصوت الافتراضي أو الطراز الخاص به، فسيتم تحديد صوت ممكن من طراز آخر ممكن بدلاً من ذلك.

POST /v1/chat/speech يقبل { "text": "Hello", "voice": "speech-light:af_bella" } (حتى أحرف 2,000). قم بحذف voice للإعداد الافتراضي الذي تم تكوينه. استخدم voices[].id من الكتالوج؛ يحدد modelId نموذج الكلام ومعدله. العائلات: معيار الكلام، ضوء الكلام، الكلام Pro والكلام المعبّر. نماذج الكلام والدردشة مستقلة.

تتضمن الاستجابة audio (MP3 data URI وdata:audio/mpeg;base64,...) وvoice وbilling: { model, credits, characters, price, unit: "1000_characters" }. جميع الأصوات، بما في ذلك الكلام Pro، تُرجع MP3. قم بتعيين audio إلى src لعنصر الصوت، أو قم بفك تشفير base64 بعد الفاصلة واحفظه باسم .mp3. لا يتطلب الكلام Pro أي تحويل من جانب العميل؛ المعرفات الصوتية والتسعير على أساس الأحرف لم تتغير. راجع مثال Python القابل للتشغيل.

تدفق الكلام ​

أرسل "stream": true إلى نقطة نهاية POST /v1/chat/speech نفسها. معيار الكلام، ضوء الكلام، الكلام Pro وتدفق دعم الكلام التعبيري؛ يعرض الكتالوج speechModels[].streaming. يؤدي حذف stream، أو تعيينه إلى false، إلى الاحتفاظ بالاستجابة JSON أعلاه.

json
{ "text": "Hello. How was your day?", "voice": "speech-pro:Ashley", "stream": true }

تكون الاستجابة عبارة عن تيار MP3 ثنائي مستمر مع Content-Type: audio/mpeg، وليس JSON أو base64 أو SSE. يقوم الوكيل بإعادة توجيه الصوت فور وصوله؛ يتم تحويل Speech Pro تدريجيًا إلى MP3. وهذا لا يضمن زمن وصول إنشاء النموذج. يتم إرسال النص كطلب واحد، دون تقسيم الجملة تلقائيًا.

بعد تثبيت curl وFFmpeg، يقوم هذا المثال بتشغيل الصوت أثناء وصوله:

bash
curl --fail --no-buffer https://api.coldstart.win/v1/chat/speech \
  -H "Authorization: Bearer $COLDSTART_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello. How was your day?","voice":"speech-pro:Ashley","stream":true}' \
  | ffplay -nodisp -autoexit -f mp3 -i pipe:0

بالنسبة لعميل المكالمة الصوتية، قم باستهلاك نص الاستجابة بشكل متزايد وقم بتغذية وحدة فك ترميز/مشغل MP3 المستمر. في المتصفح، استخدم response.body.getReader() مع تنفيذ تشغيل البث؛ response.blob() وarrayBuffer() وjson() انتظر الاستجابة بأكملها. قطع الشبكة عبارة عن نطاقات بايت عشوائية، وليست ملفات MP3 مستقلة. قم بإلغاء عملية الجلب/القارئ عندما يقوم المستخدم بالمقاطعة أو إنهاء المكالمة. لا يزال تشغيل المتصفح يتطلب تفاعل المستخدم المعتاد لفتح الصوت.

تكشف رؤوس الاستجابة عن X-Speech-Voice (المعرف الصوتي العام المشفر بعنوان URL)، وX-Speech-Credits، وX-Speech-Characters، وX-Speech-Usage-Id. مبلغ الائتمان هو الخصم الأولي؛ تستخدم الطلبات المكتملة نفس السعر القائم على الأحرف مثل الطلبات غير المتدفقة. يؤدي التدفق الفاشل أو قطع الاتصال قبل اكتمال الخادم إلى استرداد الطلب وتسجيل الاستخدام الفاشل. لا يؤدي الإلغاء بعد اكتمال الخادم إلى التراجع عن عملية تحصيل الرسوم الناجحة.

قبل بدء تشغيل الصوت، تستخدم الأخطاء حالة HTTP العادية ونص الخطأ JSON. بعد بدء الصوت، يؤدي الفشل إلى إغلاق الاتصال فجأة؛ تجاهل المخرجات غير المكتملة وتحقق من سجل المهام للحصول على نتيجة الفاتورة النهائية. لا تعامل HTTP 200 أو تلقي القطعة الأولى كدليل على الإكمال الناجح. يجب على الوكلاء الإضافيين تعطيل التخزين المؤقت للاستجابة والضغط لهذا المسار؛ يرسل API X-Accel-Buffering: no وCache-Control: no-store, no-transform.

إذا تم رفض نص الكلام بشكل صريح بواسطة سياسة المحتوى، فسيعرض كلا وضعي الاستجابة HTTP 400 مع رمز الخطأ content_policy_violation قبل بدء الصوت. يتم استرداد هذه التهمة. لا تقم بإعادة محاولة نفس النص تلقائيًا؛ قم بمراجعته ليتوافق مع سياسة المحتوى. لا يؤدي دعم البث إلى إزالة قيود المحتوى.

طلبات الكلام مستقلة؛ تمرير المعرف الصوتي العام المطلوب بشكل صريح. يحتوي الكلام JSON على URI للبيانات الصوتية والفوترة؛ يقوم الدفق بإرجاع البايتات الصوتية.

أرصدة الكلام = عدد الأحرف القابلة للفوترة للنص المقيس × سعر النموذج / 1000، مقرب ** إلى أعلى ** إلى 8 منازل عشرية. يعد Speech Light وSpeech Pro وSpeech Expressive وحدات ترميز UTF-16، وفقًا للنموذج المحدد: يتم احتساب الأحرف الصينية/الإنجليزية العادية كحرف واحد، ويتم احتساب الحرف التكميلي مثل 😀 كحرفين. يستخدم Speech Standard نقاط كود Unicode. تحدد speechModels[].characterCounting في الكتالوج وbilling.character_counting في الاستجابة قاعدة العد (utf16_code_units أو unicode_codepoints)؛ billing.characters هي الكمية المفوترة. تتم إزالة التنسيق واتجاهات المرحلة قبل التوليف والعد. يتم رد التوليف الفاشل أو الفارغ. تتم محاسبة كل طلب تجميعي؛ إعادة تشغيل الصوت الذي تم إرجاعه لا يكلف شيئًا. تقوم وحدة التحكم بتخزين الصوت مؤقتًا عن طريق الرسالة والصوت لجلسة الصفحة الحالية.

© 2026 ColdStart. جميع الحقوق محفوظة.