API تبدیل گفتار به متن تاکبات | وبسرویس صدا به متن
تبدیل گفتار به متن، یا صوت به متن، یا استخراج متن از فایل صوتی تاکبات، مبتنی بر آخرین نسلهای هوش مصنوعی دنیا، به شما این امکان را میدهد تا صحبتهای گوینده صوتی را بهراحتی از فایل صوتی استخراج کنید و از این سیستم در برنامهها، اپلیکیشنها، وبسایتها و یا افزونههای خود استفاده کنید.
جهت استفاده از این سیستم لازم است که بسته یاقوتی را خریداری نمایید و این بسته روی حساب کاربری شما فعال باشد. خرید بسته یاقوتی — شما همزمان میتوانید به چندین تکنولوژی دیگر هوش مصنوعی متصل شوید؛ یکی از این تکنولوژیها API تبدیل متن به گفتار میباشد.
📡 نحوه ارسال درخواست
این وبسرویس فایل صوتی شما را دریافت و بدون ذخیرهسازی روی سرور، بهصورت زنده (Stream) پردازش میکند. برای ارسال درخواست به این API، دو روش در دسترس است که میتوانید بر اساس نیاز خود یکی را انتخاب کنید:
در این روش، آدرس اینترنتی (URL) فایل صوتی خود را در بدنهی JSON درخواست ارسال میکنید. سرور تاکبات فایل را بهصورت استریم از آن آدرس میخواند و همزمان، بدون ذخیرهی نسخهای از آن روی دیسک، به موتور تبدیل گفتار به متن ارسال میکند.
Endpoint
سربرگها (Headers)
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
بدنه درخواست (Body)
| پارامتر | نوع | الزامی | توضیح |
|---|---|---|---|
url | string | بله | آدرس اینترنتی فایل صوتی (کمتر از 50MB) |
language | string | بله | کد زبان گفتار بهصورت BCP-47، مثل fa-IR. مقادیر کوتاه مثل fa، en، ar نیز پذیرفته میشود. |
مثال درخواست با PHP و cURL
<?php
$url = 'https://api.talkbot.ir/api/talkbot_12m1us.mp3';
$language = 'en-US';
$data = [
'url' => $url,
'language' => $language
];
$ch = curl_init('https://api.talkbot.ir/v1/media/speech-to-text/REQ');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_ACCESS_TOKEN',
'Content-Type: application/json'
]);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
مثال درخواست با cURL (خط فرمان)
curl -X POST https://api.talkbot.ir/v1/media/speech-to-text/REQ \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/path/to/audio.mp3","language":"fa-IR"}'
در این روش، خودِ فایل صوتی را مستقیماً و بهصورت multipart/form-data آپلود میکنید؛ مناسب زمانی که فایل روی سرور دیگری در دسترس عموم نیست (مثلاً فایل ضبطشده در مرورگر یا اپلیکیشن موبایل کاربر). این فایل نیز مانند روش قبل، بدون ذخیرهسازی دائم روی سرور، بهصورت استریم به موتور تبدیل گفتار به متن فوروارد میشود.
Endpoint
سربرگها (Headers)
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: multipart/form-data
فیلدهای فرم (Form Fields)
| فیلد | نوع | الزامی | توضیح |
|---|---|---|---|
file | file | بله | فایل صوتی (کمتر از 50MB) |
language | string | بله | کد زبان گفتار، مثل fa-IR. معادلهای lang و stt_lang نیز پذیرفته میشوند. |
مثال درخواست با PHP و cURL
<?php
$ch = curl_init('https://api.talkbot.ir/v1/media/speech-to-text/REQ');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_ACCESS_TOKEN'
// توجه: هنگام ارسال multipart، هدر Content-Type را دستی ست نکنید؛
// cURL خودش boundary صحیح را اضافه میکند.
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, [
'file' => new CURLFile('/path/to/audio.mp3', 'audio/mpeg', 'audio.mp3'),
'language' => 'fa-IR'
]);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
مثال درخواست با cURL (خط فرمان)
curl -X POST https://api.talkbot.ir/v1/media/speech-to-text/REQ \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@/path/to/audio.mp3;type=audio/mpeg" \
-F "language=fa-IR"
مثال درخواست با JavaScript (Fetch + FormData)
const form = new FormData();
form.append('file', fileInput.files[0]);
form.append('language', 'fa-IR');
const response = await fetch('https://api.talkbot.ir/v1/media/speech-to-text/REQ', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
// Content-Type را دستی ست نکنید؛ مرورگر boundary را خودکار اضافه میکند
},
body: form
});
const result = await response.json();
console.log(result);
✅ پاسخ موفق API
پاسخ شامل یک رشته JSON است که متن استخراجشده از فایل صوتی را در بر میگیرد:
{
"response": {
"code": 200,
"message": "Success",
"output": "hello. this text extracted from an audio file.",
"duration_seconds": 65.3,
"language": "en-US",
"tokens_charged": 100
}
}
⚠️ پاسخ خطا
در صورت بروز خطا (اعم از اعتبارسنجی ورودی، احراز هویت، یا خطای سرویس STT)، ساختار زیر بازگردانده میشود:
{
"error": {
"code": 400,
"message": "Invalid request",
"description": "توضیح دقیقتر خطا به زبان فارسی یا انگلیسی"
}
}
کدهای خطا
| کد HTTP | شرح |
|---|---|
| 400 | درخواست نامعتبر (JSON نامعتبر، پارامتر ناقص، زبان یا فایل ارسال نشده) |
| 401 | خطای احراز هویت (توکن نامعتبر یا موجودی ناکافی) |
| 403 | عدم دسترسی (پلن منقضیشده، سطح دسترسی حساب، محدودیت تعداد درخواست) |
| 500 | خطای داخلی سرور |
| 502 | خطای ارتباط با سرویس تبدیل گفتار به متن |
📝 پارامترهای درخواست
مقدار URL (روش اول)
در مقدار url باید آدرس اینترنتی فایل صوتی خود را قرار دهید. این فایل باید کمتر از 50MB باشد و از طریق اینترنت در دسترس عموم باشد.
توجه: فایل صوتی باید از طریق اینترنت قابل دسترسی باشد و حجم آن نباید از 50 مگابایت بیشتر شود.
مقدار File (روش دوم)
در فیلد file باید خودِ فایل صوتی را بهصورت باینری ضمیمه کنید. این فایل باید کمتر از 50MB باشد.
توجه: این روش زمانی مناسب است که فایل صوتی در دسترس عمومی نیست و میخواهید آن را مستقیماً ارسال کنید.
مقدار Language
مقدار language باید زبان در حال گفتار فایل صوتی شما باشد. بهعنوان مثال اگر زبان گفتار گوینده در فایل صوتی شما «فارسی» باشد، باید مقدار fa-IR را وارد کنید. کدهای کوتاه رایج مانند fa، en، ar، tr، de، fr، es، it و ru نیز بهصورت خودکار به معادل استاندارد نگاشت میشوند.
🌍 زبانهای پشتیبانیشده
📊 73 زبان پشتیبانی شدهتمام زبانهای اصلی پشتیبانی میشوند. در ادامه فهرست کامل آنها آورده شده است:
| کد زبان | نام زبان | کد زبان | نام زبان |
|---|---|---|---|
af-ZA | Afrikaans | lo-LA | Lao |
ar-SA | Arabic | lv-LV | Latvian |
hy-AM | Armenian | lt-LT | Lithuanian |
az-AZ | Azerbaijani | ms-MY | Malay |
eu-ES | Basque | ml-IN | Malayalam |
bn-BD | Bengali (BD) | mr-IN | Marathi |
bn-IN | Bengali (IN) | mn-MN | Mongolian |
bs-BA | Bosnian | ne-NP | Nepali |
bg-BG | Bulgarian | no-NO | Norwegian |
ca-ES | Catalan | pl-PL | Polish |
yue-Hant-HK | Cantonese | pt-BR | Portuguese (BR) |
cs-CZ | Czech | pt-PT | Portuguese (PT) |
da-DK | Danish | pa-Guru-IN | Punjabi |
nl-NL | Dutch | ro-RO | Romanian |
en-AU | English (AU) | ru-RU | Russian |
en-CA | English (CA) | sr-RS | Serbian |
en-GB | English (UK) | si-LK | Sinhala |
en-IN | English (IN) | sk-SK | Slovak |
en-US | English (US) | sl-SI | Slovenian |
fa-IR | Persian (Iran) ★ | es-AR | Spanish (AR) |
fil-PH | Filipino | es-CL | Spanish (CL) |
fi-FI | Finnish | es-CO | Spanish (CO) |
fr-CA | French (CA) | es-MX | Spanish (MX) |
fr-FR | French (FR) | es-ES | Spanish (ES) |
de-AT | German (AT) | es-US | Spanish (US) |
de-DE | German (DE) | su-ID | Sundanese |
de-CH | German (CH) | sw-KE | Swahili (KE) |
el-GR | Greek | sw-TZ | Swahili (TZ) |
gu-IN | Gujarati | ta-IN | Tamil |
iw-IL | Hebrew | te-IN | Telugu |
hi-IN | Hindi | th-TH | Thai |
hu-HU | Hungarian | tr-TR | Turkish |
is-IS | Icelandic | uk-UA | Ukrainian |
id-ID | Indonesian | ur-IN | Urdu (IN) |
it-IT | Italian | ur-PK | Urdu (PK) |
ja-JP | Japanese | uz-UZ | Uzbek |
jv-ID | Javanese | vi-VN | Vietnamese |
kn-IN | Kannada | zu-ZA | Zulu |
kk-KZ | Kazakh | ||
km-KH | Khmer | ||
ko-KR | Korean |
💰 قیمتگذاری و موجودی
| نام مدل | هزینه (TPsU) |
|---|---|
| Speech To Text API | 100 TPsU به ازای هر دقیقه از فایل صوتی (کسری از دقیقه هم یک دقیقه کامل محاسبه میشود) |
| موجودی توکن شما | ⚠️ نیاز به ورود |
| TPsU = Token Per Successful Use (توکن به ازای هر درخواست موفق) | |
آزمایش رایگان:
برای آزمایش و تست رایگان این وب سرویس (API) ابتدا در سایت ثبتنام کنید، و سپس از طریق کنترل پنل کاربری، کلید اختصاصی خود را ایجاد کنید. پس از ایجاد کلید، آن را در نمونه کدهای بالا جایگزاری کرده و خروجی را مشاهده کنید. امکان استفاده از کلید آزمایشی فقط تا 15000 توکن میسر است.
سایر وب سرویس ها:
با خرید بسته یاقوتی و یا یکی از بسته های فرایاقوتی، شما علاوه بر وب سرویس یا API پیش رو، از وب سرویس های زیر نیز میتوانید استفاده کنید.