تحويل النص إلى كلام (TTS)
تحويل النص إلى كلام طبيعي
POST
/api/v1/tts/generate/
تحويل النص إلى كلام باستخدام توليف الصوت بالذكاء الاصطناعي. يرجع ملف صوتي بصيغة MP3.
المصادقة
قم بتضمين مفتاح API الخاص بك في ترويسة Authorization.
محتوى الطلب (Request Body)
| Parameter | إجراء مطلوب | النوع | الوصف |
|---|---|---|---|
| text | مطلوب | نص (string) | النص المراد تحويله (بحد أقصى 1500 حرف) |
| output_format | اختياري | نص (string) | صيغة مخرجات الصوت المطلوبة. يتم تحديدها بصيغة الكودك_معدل العينة_معدل البت (مثلاً: mp3_22050_32). القيمة الافتراضية هي mp3_44100_128. راجع قسم صيغ المخرجات أدناه للحصول على القائمة الكاملة. |
| voice_id | مطلوب | عدد صحيح (integer) | معرف الصوت من قائمة الأصوات. |
| prerecording | اختياري | عدد صحيح (integer) | 1 (تحسين أساسي) أو 2 (تحسين بالذكاء الاصطناعي) |
| voice_settings | اختياري | نص (JSON) | خيارات تخصيص الصوت |
صيغ المخرجات المدعومة
يمكن أن تكون معلمة output_format أيًا من القيم التالية:
- MP3: mp3_22050_32, mp3_24000_48, mp3_44100_32, mp3_44100_64, mp3_44100_96, mp3_44100_128, mp3_44100_192
- PCM: pcm_8000, pcm_16000, pcm_22050, pcm_24000, pcm_32000, pcm_44100, pcm_48000
- Opus: opus_48000_32, opus_48000_64, opus_48000_96, opus_48000_128, opus_48000_192
يعمل هذا القسم كمرجع، حتى يتمكن المستخدمون من اختيار الصيغة المناسبة دون إزدحام جدول الطلب الرئيسي.
كائن إعدادات الصوت
| Parameter | النوع | النطاق | افتراضي | الوصف |
|---|---|---|---|---|
| temperature | عدد صحيح (integer) | 0 – 100 | 25 | يتحكم في تباين الكلام والتعبير. تؤدي القيم المنخفضة إلى إنتاج كلام أكثر استقرارًا وقابلية للتنبؤ، بينما تزيد القيم الأعلى من التباين والعفوية والصياغة الإبداعية. |
| voice_similarity | عدد صحيح (integer) | 0 – 100 | 100 | يحدد مدى مطابقة الكلام الناتج لملف الصوت المختار. تحافظ القيم الأعلى على هوية الصوت الأصلية، بينما تسمح القيم الأقل بمزيد من الانحراف في النبرة والنطق. |
| speed | عدد عشري (float) | 0.7 – 1.2 | 1.0 | يضبط معدل التحدث. القيم الأقل من 1.0 تبطئ الكلام من أجل الوضوح، بينما القيم الأعلى من 1.0 تزيد من سرعة التحدث. |
| enable_emotions | قيمة منطقية (boolean) | false / true | false | يفعل توليد الكلام التعبيري العاطفي. عند تفعيله، يتحكم النموذج ديناميكيًا في الوتيرة والintonation والتأكيد بناءً على السياق العاطفي. |
| fast_mode | عدد صحيح (integer) | 0, 1, or 2 | 0 |
يقلل من وقت معالجة التوليف على حساب جودة الصوت.
|
قواعد وقيود إعدادات الصوت
-
عند ضبط enable_emotions على true، يجب عدم تضمين الحقول التالية في إعدادات الصوت (voice_settings):
voice_similarityspeedfast_mode
- الطلبات التي تتضمن أيًا من هذه الحقول أثناء تفعيل العواطف سيتم رفضها بخطأ 400 INVALID_REQUEST.
مثال
curl -X POST "https://moknah.io/api/v1/tts/generate/" \
-H "Authorization: "Bearer your_api_key"
-d '{
"text": "مرحبا بك في منصة مكنة",
"voice_id": 1,
"prerecording": 1,
"voice_settings": {
"speed": 1.0,
"temperature": 25
}
}' \
--output speech.mp3
import requests
response = requests.post(
"https://moknah.io/api/v1/tts/generate/",
headers={
"Authorization": "Bearer your_api_key",
"Content-Type": "application/json"
},
json={
"text": "مرحبا بك في منصة مكنة",
"voice_id": 1,
"prerecording": 1,
"voice_settings": {
"speed": 1.0,
"temperature": 25
}
}
)
with open("speech.mp3", "wb") as f:
f.write(response.content)
const response = await fetch(
'https://moknah.io/api/v1/tts/generate/',
{
method: 'POST',
headers: {
'Authorization': 'Bearer your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
text: 'مرحبا بك في منصة مكنة',
voice_id: 1,
prerecording: 1,
voice_settings: {
speed: 1.0,
temperature: 25
}
})
}
);
const blob = await response.blob();
// Save or play the audio
الاستجابة
يرجع بيانات صوتية ثنائية بصيغة MP3 مع هذه الترويسات:
| الترويسة (Header) | الوصف |
|---|---|
Content-Type |
audio/mpeg |
أخطاء
| الحالة | الكود | الوصف |
|---|---|---|
400 |
INVALID_REQUEST | معلمات غير صالحة |
401 |
UNAUTHORIZED | مفتاح API غير صالح |
402 |
INSUFFICIENT_CREDITS | رصيد غير كافٍ |
429 |
RATE_LIMIT_EXCEEDED | عدد كبير جدًا من الطلبات |
دعم واجهة برمجة التطبيقات (API)
للأسئلة أو المشكلات المتعلقة بواجهة برمجة التطبيقات، اتصل بنا على api@moknah.io.