مستندات 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 در مستندات اصلی موجود است. صداهای بالا پرکاربردترین گزینه‌ها هستند.

نکات مهم

پشتیبانی و تماس

برای هرگونه سوال یا مشکل در استفاده از API، می‌توانید با تیم پشتیبانی تاک‌بات از طریق وب‌سایت talkbot.ir تماس بگیرید.


آزمایش رایگان:

برای آزمایش و تست رایگان این وب سرویس (API) ابتدا در سایت ثبتنام کنید، و سپس از طریق کنترل پنل کاربری، کلید اختصاصی خود را ایجاد کنید. پس از ایجاد کلید، آن را در نمونه کدهای بالا جایگزاری کرده و خروجی را مشاهده کنید. امکان استفاده از کلید آزمایشی فقط تا 15000 توکن میسر است.


سایر وب سرویس ها:

با خرید بسته یاقوتی و یا یکی از بسته های فرایاقوتی، شما علاوه بر وب سرویس یا API پیش رو، از وب سرویس های زیر نیز میتوانید استفاده کنید.