api doc html site: API تبدیل گفتار به متن تاک بات | وب سرویس صدا به متن

API تبدیل گفتار به متن تاک‌بات | وب‌سرویس صدا به متن

تبدیل گفتار به متن، یا صوت به متن، یا استخراج متن از فایل صوتی تاک‌بات، مبتنی بر آخرین نسل‌های هوش مصنوعی دنیا، به شما این امکان را می‌دهد تا صحبت‌های گوینده صوتی را به‌راحتی از فایل صوتی استخراج کنید و از این سیستم در برنامه‌ها، اپلیکیشن‌ها، وب‌سایت‌ها و یا افزونه‌های خود استفاده کنید.

جهت استفاده از این سیستم لازم است که بسته یاقوتی را خریداری نمایید و این بسته روی حساب کاربری شما فعال باشد. خرید بسته یاقوتی — شما همزمان می‌توانید به چندین تکنولوژی دیگر هوش مصنوعی متصل شوید؛ یکی از این تکنولوژی‌ها API تبدیل متن به گفتار می‌باشد.

📡 نحوه ارسال درخواست

این وب‌سرویس فایل صوتی شما را دریافت و بدون ذخیره‌سازی روی سرور، به‌صورت زنده (Stream) پردازش می‌کند. برای ارسال درخواست به این API، دو روش در دسترس است که می‌توانید بر اساس نیاز خود یکی را انتخاب کنید:

در این روش، آدرس اینترنتی (URL) فایل صوتی خود را در بدنه‌ی JSON درخواست ارسال می‌کنید. سرور تاک‌بات فایل را به‌صورت استریم از آن آدرس می‌خواند و همزمان، بدون ذخیره‌ی نسخه‌ای از آن روی دیسک، به موتور تبدیل گفتار به متن ارسال می‌کند.

Endpoint

POST https://api.talkbot.ir/v1/media/speech-to-text/REQ Content-Type: application/json

سربرگ‌ها (Headers)

Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json

بدنه درخواست (Body)

پارامترنوعالزامیتوضیح
urlstringبلهآدرس اینترنتی فایل صوتی (کمتر از 50MB)
languagestringبلهکد زبان گفتار به‌صورت 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

POST https://api.talkbot.ir/v1/media/speech-to-text/REQ Content-Type: multipart/form-data

سربرگ‌ها (Headers)

Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: multipart/form-data

فیلدهای فرم (Form Fields)

فیلدنوعالزامیتوضیح
filefileبلهفایل صوتی (کمتر از 50MB)
languagestringبلهکد زبان گفتار، مثل 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-ZAAfrikaanslo-LALao
ar-SAArabiclv-LVLatvian
hy-AMArmenianlt-LTLithuanian
az-AZAzerbaijanims-MYMalay
eu-ESBasqueml-INMalayalam
bn-BDBengali (BD)mr-INMarathi
bn-INBengali (IN)mn-MNMongolian
bs-BABosnianne-NPNepali
bg-BGBulgarianno-NONorwegian
ca-ESCatalanpl-PLPolish
yue-Hant-HKCantonesept-BRPortuguese (BR)
cs-CZCzechpt-PTPortuguese (PT)
da-DKDanishpa-Guru-INPunjabi
nl-NLDutchro-RORomanian
en-AUEnglish (AU)ru-RURussian
en-CAEnglish (CA)sr-RSSerbian
en-GBEnglish (UK)si-LKSinhala
en-INEnglish (IN)sk-SKSlovak
en-USEnglish (US)sl-SISlovenian
fa-IRPersian (Iran) ★es-ARSpanish (AR)
fil-PHFilipinoes-CLSpanish (CL)
fi-FIFinnishes-COSpanish (CO)
fr-CAFrench (CA)es-MXSpanish (MX)
fr-FRFrench (FR)es-ESSpanish (ES)
de-ATGerman (AT)es-USSpanish (US)
de-DEGerman (DE)su-IDSundanese
de-CHGerman (CH)sw-KESwahili (KE)
el-GRGreeksw-TZSwahili (TZ)
gu-INGujaratita-INTamil
iw-ILHebrewte-INTelugu
hi-INHindith-THThai
hu-HUHungariantr-TRTurkish
is-ISIcelandicuk-UAUkrainian
id-IDIndonesianur-INUrdu (IN)
it-ITItalianur-PKUrdu (PK)
ja-JPJapaneseuz-UZUzbek
jv-IDJavanesevi-VNVietnamese
kn-INKannadazu-ZAZulu
kk-KZKazakh
km-KHKhmer
ko-KRKorean

💰 قیمت‌گذاری و موجودی

نام مدلهزینه (TPsU)
Speech To Text API 100 TPsU به ازای هر دقیقه از فایل صوتی (کسری از دقیقه هم یک دقیقه کامل محاسبه می‌شود)
موجودی توکن شما ⚠️ نیاز به ورود
TPsU = Token Per Successful Use (توکن به ازای هر درخواست موفق)

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

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


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

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