مستندات API تبدیل متن به گفتار - نسخه 1 (Azure)
این مستندات نحوه استفاده از API تبدیل متن به گفتار نسخه 1 با استفاده از صداهای Azure را توضیح میدهد.
• بسته الماسی: استفاده از صداهای Azure کاملاً رایگان است و توکنی کسر نمیشود.
• بستههای طلایی و یاقوتی: به ازای هر کاراکتر، 2 توکن از حساب شما کسر میگردد.
نحوه ارسال درخواست
برای ارسال یک درخواست به API نسخه 1، باید یک درخواست HTTP POST به URL زیر ارسال کنید:
$url = 'https://api.talkbot.ir/v1/media/text-to-speech/REQ';
سربرگها (Headers)
شما باید سربرگ Authorization را با توکن Bearer خود تنظیم کنید:
$headers = [
'Authorization: Bearer YOUR_ACCESS_TOKEN'
];
دادههای POST
دادههای زیر را باید به عنوان بخشی از بدنه درخواست POST ارسال کنید:
$data = [
'text' => 'متن فارسی شما اینجا قرار میگیرد.',
'server' => 'azure',
'voice' => 'fa-IR-FaridNeural - fa-IR (Male)' // نام کامل صدای مورد نظر
];
مثالهای کد
مثال درخواست با PHP
اینجا یک مثال کامل برای درخواست PHP با استفاده از صدای Azure وجود دارد:
<?php
$headers = [
'Authorization: Bearer YOUR_API_KEY' // کلید API خود را جایگزین کنید
];
$data = [
'text' => 'سلام، این یک متن فارسی است که توسط تاکبات به صدا تبدیل شده است.',
'server' => 'azure',
'voice' => 'fa-IR-FaridNeural - fa-IR (Male)'
];
$url = 'https://api.talkbot.ir/v1/media/text-to-speech/REQ';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if(curl_errno($ch)){
echo 'خطای CURL: ' . curl_error($ch);
} else {
$result = json_decode($response, true);
if(isset($result['response']['download'])) {
echo 'فایل صوتی: ' . $result['response']['download'];
} else {
echo 'خطا: ' . $response;
}
}
curl_close($ch);
?>
مثال درخواست با Python
اینجا یک مثال برای درخواست Python با استفاده از صدای Azure وجود دارد:
import requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY' # کلید API خود را جایگزین کنید
}
data = {
'text': 'سلام! این یک تست از API تبدیل متن به گفتار Azure با صدای خاص است.',
'server': 'azure',
'voice': 'fa-IR-FaridNeural - fa-IR (Male)'
}
url = 'https://api.talkbot.ir/v1/media/text-to-speech/REQ'
response = requests.post(url, headers=headers, data=data)
if response.status_code == 200:
result = response.json()
if 'response' in result and 'download' in result['response']:
print(f"فایل صوتی: {result['response']['download']}")
else:
print(f"خطا: {response.text}")
else:
print(f'خطا: {response.status_code} - {response.text}')
مثال درخواست با JavaScript (Node.js)
استفاده از fetch API در Node.js:
const fetch = require('node-fetch');
const FormData = require('form-data');
const headers = {
'Authorization': 'Bearer YOUR_API_KEY'
};
const formData = new FormData();
formData.append('text', 'سلام، این یک متن تستی برای تبدیل به گفتار است.');
formData.append('server', 'azure');
formData.append('voice', 'fa-IR-DilaraNeural - fa-IR (Female)');
const url = 'https://api.talkbot.ir/v1/media/text-to-speech/REQ';
fetch(url, {
method: 'POST',
headers: headers,
body: formData
})
.then(response => response.json())
.then(data => {
if(data.response && data.response.download) {
console.log('فایل صوتی:', data.response.download);
} else {
console.log('خطا:', data);
}
})
.catch(error => {
console.error('خطا:', error);
});
پاسخ API
پاسخ API به صورت یک رشته JSON خواهد بود که شامل اطلاعاتی درباره فایل صوتی تولید شده و وضعیت درخواست است.
نمونه خروجی موفق:
{
"response": {
"code": 200,
"message": "Success",
"id": "TTSTALKBOT_51580953352.mp3",
"download": "https://talkbot.ir/tts_temp/51580953352.mp3"
}
}
لیست صداهای موجود در Azure
در جدول زیر تمام صداهای موجود در سرور Azure همراه با زبان و جنسیت آورده شده است. برای استفاده، نام کامل صدا را در فیلد voice قرار دهید:
| زبان | نام صدا | جنسیت |
|---|---|---|
| Persian (Iran) | fa-IR-DilaraNeural - fa-IR (Female) |
Female |
| Persian (Iran) | fa-IR-FaridNeural - fa-IR (Male) |
Male |
| Afrikaans (South Africa) | af-ZA-AdriNeural - af-ZA (Female) |
Female |
| Afrikaans (South Africa) | af-ZA-WillemNeural - af-ZA (Male) |
Male |
| Albanian (Albania) | sq-AL-AnilaNeural - sq-AL (Female) |
Female |
| Albanian (Albania) | sq-AL-IlirNeural - sq-AL (Male) |
Male |
| Arabic (Algeria) | ar-DZ-AminaNeural - ar-DZ (Female) |
Female |
| Arabic (Algeria) | ar-DZ-IsmaelNeural - ar-DZ (Male) |
Male |
| Arabic (Egypt) | ar-EG-SalmaNeural - ar-EG (Female) |
Female |
| Arabic (Egypt) | ar-EG-ShakirNeural - ar-EG (Male) |
Male |
| Arabic (Saudi Arabia) | ar-SA-HamedNeural - ar-SA (Male) |
Male |
| Arabic (Saudi Arabia) | ar-SA-ZariyahNeural - ar-SA (Female) |
Female |
| English (United States) | en-US-AvaNeural - en-US (Female) |
Female |
| English (United States) | en-US-AndrewNeural - en-US (Male) |
Male |
| English (United States) | en-US-EmmaNeural - en-US (Female) |
Female |
| English (United States) | en-US-BrianNeural - en-US (Male) |
Male |
| English (United Kingdom) | en-GB-LibbyNeural - en-GB (Female) |
Female |
| English (United Kingdom) | en-GB-RyanNeural - en-GB (Male) |
Male |
| Spanish (Spain) | es-ES-ElviraNeural - es-ES (Female) |
Female |
| Spanish (Spain) | es-ES-AlvaroNeural - es-ES (Male) |
Male |
| French (France) | fr-FR-DeniseNeural - fr-FR (Female) |
Female |
| French (France) | fr-FR-HenriNeural - fr-FR (Male) |
Male |
| German (Germany) | de-DE-KatjaNeural - de-DE (Female) |
Female |
| German (Germany) | de-DE-ConradNeural - de-DE (Male) |
Male |
| Italian (Italy) | it-IT-ElsaNeural - it-IT (Female) |
Female |
| Italian (Italy) | it-IT-DiegoNeural - it-IT (Male) |
Male |
| Japanese (Japan) | ja-JP-NanamiNeural - ja-JP (Female) |
Female |
| Japanese (Japan) | ja-JP-KeitaNeural - ja-JP (Male) |
Male |
| Korean (South Korea) | ko-KR-SunHiNeural - ko-KR (Female) |
Female |
| Korean (South Korea) | ko-KR-InJoonNeural - ko-KR (Male) |
Male |
| Chinese (Simplified, China) | zh-CN-XiaoxiaoNeural - zh-CN (Female) |
Female |
| Chinese (Simplified, China) | zh-CN-YunxiNeural - zh-CN (Male) |
Male |
| Russian (Russia) | ru-RU-SvetlanaNeural - ru-RU (Female) |
Female |
| Russian (Russia) | ru-RU-DmitryNeural - ru-RU (Male) |
Male |
| Turkish (Turkey) | tr-TR-EmelNeural - tr-TR (Female) |
Female |
| Turkish (Turkey) | tr-TR-AhmetNeural - tr-TR (Male) |
Male |
| Hindi (India) | hi-IN-SwaraNeural - hi-IN (Female) |
Female |
| Hindi (India) | hi-IN-MadhurNeural - hi-IN (Male) |
Male |
💡 نکته: لیست کاملتر صداهای Azure در مستندات اصلی موجود است. صداهای بالا پرکاربردترین گزینهها هستند.
نکات مهم
- حداکثر طول متن ورودی: 5000 کاراکتر
- فرمت خروجی: MP3 با کیفیت بالا
- پشتیبانی از بیش از 100 زبان و لهجه مختلف
- محدودیت نرخ درخواست بستگی به نوع اشتراک شما دارد
- فایلهای تولید شده برای 24 ساعت در دسترس خواهند بود
پشتیبانی و تماس
برای هرگونه سوال یا مشکل در استفاده از API، میتوانید با تیم پشتیبانی تاکبات از طریق وبسایت talkbot.ir تماس بگیرید.
آزمایش رایگان:
برای آزمایش و تست رایگان این وب سرویس (API) ابتدا در سایت ثبتنام کنید، و سپس از طریق کنترل پنل کاربری، کلید اختصاصی خود را ایجاد کنید. پس از ایجاد کلید، آن را در نمونه کدهای بالا جایگزاری کرده و خروجی را مشاهده کنید. امکان استفاده از کلید آزمایشی فقط تا 15000 توکن میسر است.
سایر وب سرویس ها:
با خرید بسته یاقوتی و یا یکی از بسته های فرایاقوتی، شما علاوه بر وب سرویس یا API پیش رو، از وب سرویس های زیر نیز میتوانید استفاده کنید.