api تبدیل فایل صوتی به متن فارسی

با استفاده از API تایپ فایل صوتی ، می‌توانید فایل‌های صوتی خود را به متن تبدیل کنید. در این سرویس، درخواست تبدیل از طریق پروتکل HTTPS ارسال می‌شود و فایل صوتی با فرمت MP3 به عنوان ورودی در اختیار سرورهای iotype قرار می‌گیرد. پس از پردازش، متن استخراج‌شده بسته به مدت زمان فایل، یا به‌صورت آنی و یا پس از مدت کوتاهی در پاسخ درخواست بازگردانده می‌شود. این سرویس برای تبدیل فایل‌های صوتی ضبط‌شده به متن طراحی شده و امکان تبدیل سریع و دقیق محتوای صوتی را از طریق یک API ساده و استاندارد فراهم می‌کند.
راهنمای ماشین‌خوان برای دستیار‌های هوش مصنوعی

Persian audio transcription API. Two endpoints; choosing the wrong one is the most common error.

Instant Standard
Endpoint POST /io/v1/transcribe/instant POST /io/v1/transcribe
Execution synchronous asynchronous
Suited to short clips long recordings
Accuracy good higher
Summarisation not available should_summarize
Language auto-detected source_lang

Authentication: Access Token (Authorization: Bearer <ACCESS_TOKEN>). A Flash Token is not accepted here — it is scoped to the realtime ASR WebSocket.

Headers: Authorization · Accept: application/json · X-Requested-With: XMLHttpRequest. Request body is multipart/form-data with an MP3 in the file part. Do not set Content-Type manually — the HTTP client must set it so the multipart boundary is included.

Instant response: {"result":"..."} Standard response: a file object with file.uuid and no transcript.

Machine-readable documentation:

  • Full guide: https://raw.githubusercontent.com/iotype-ai/iotype-api/main/docs/en/transcription.md
  • File tracking and the polling loop: https://raw.githubusercontent.com/iotype-ai/iotype-api/main/docs/en/files.md
  • OpenAPI 3.1 specification: https://raw.githubusercontent.com/iotype-ai/iotype-api/main/spec/openapi.yaml
  • Repository and runnable examples: https://github.com/iotype-ai/iotype-api

Official SDKs: pip install iotype-ai · composer require iotype-ai/sdk · npm i @iotype-ai/sdk · go get github.com/iotype-ai/iotype-api/sdk/go

Implementation notes that are commonly got wrong:

  1. /transcribe and /transcribe/instant are not interchangeable. Code that posts to /transcribe and reads result from that response always finds nothing — the standard endpoint is asynchronous.
  2. For the standard endpoint, poll POST /io/v1/file/track with the returned uuid until a process carries a non-null result. The completion signal is result, not status.
  3. Identify entries in file.processes[] by their type field (transcribe, summarize). Array order is not guaranteed.
  4. Use exponential backoff between polls — start around 5 s and cap at 60 s. A tight loop consumes no tokens but generates pointless load.
  5. Input quality dominates output quality: single speaker, no background noise, clear audio. Multi-speaker or noisy recordings degrade both endpoints.

Get a token: https://iotype.com/api-service/authentication

وب سرویس تبدیل آنی فایل صوتی به متن فارسی (Instant Transcription)
در این وب سرویس فایل صوتی را در فرمت mp3 برای iotype ارسال کرده و متن آن را در پاسخ دریافت نمایید. این وب سرویس برای فایل‌های کوتاه که نیاز به دریافت سریع پاسخ دارند، مناسبت است. در حال حاضر این وب سرویس از زبان‌های فارسی ، انگلیسی و عربی پشتیبانی می‌کنند. صوت ارسالی باید کاملا واضح و شفاف باشد ، یک گوینده در فایل صوتی باشد ، نویز محیطی در فایل نباشد.
PHP
JAVASCRIPT
PYTHON
GO
نمونه کد api تبدیل آنی فایل صوتی به متن با استفاده از SDK
<?php
// composer require iotype-ai/sdk
require 'vendor/autoload.php';

// Reads IOTYPE_TOKEN from the environment.
// To pass it explicitly: new Iotype\Client('YOUR_TOKEN')
$io = new Iotype\Client();

// Synchronous: returns the transcript directly, with no polling.
// For long recordings use $io->transcribe() instead.
$text = $io->transcribeInstant('sample.mp3');

echo $text;
?>
PHP
JAVASCRIPT
PYTHON
GO
نمونه کد api تبدیل آنی فایل صوتی به متن بدون SDK
<?php
$url = "https://iotype.com/io/v1/transcribe/instant";

// Passing an array as POSTFIELDS makes cURL build the multipart body and set
// Content-Type with the correct boundary. Never set that header by hand.
$postFields = [
    "file" => new CURLFile("sample.mp3")
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS     => $postFields,
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer YOUR_TOKEN",
        "Accept: application/json",
        "X-Requested-With: XMLHttpRequest"
    ]
]);
$response = curl_exec($ch);
$status   = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($status !== 200) {
    exit("Request failed ($status): $response");
}

// Synchronous: the transcript is in this response, with no polling.
// For long recordings use /io/v1/transcribe instead — it is asynchronous
// but more accurate, and it also supports summarisation.
echo json_decode($response, true)["result"];
?>
پارامترهای ارسالی در Header درخواست Instant Transcription (تبدیل آنی فایل صوتی به متن)
Authorization
مقدار TOKEN دریافتی از بخش احراز هویت به صورت Bearer [TOKEN]
Accept
application/json
X-Requested-With
XMLHttpRequest
پارامترهای ارسالی در Body درخواست Instant Transcription (تبدیل آنی فایل صوتی به متن)
file
فایل در فرمت mp3
مقادیر پاسخ وب سرویس Instant Transcription (تبدیل آنی فایل صوتی به متن)
result
متن فایل صوتی
وب سرویس تبدیل فایل صوتی به متن فارسی (Transcription)
در این وب سرویس فایل صوتی را در فرمت mp3 برای iotype ارسال کرده و متن آن را با توجه به مدت فایل ، پس از چند دقیقه دریافت نمایید. این وب سرویس برای فایل‌های صوتی طولانی مناسبت است. پردازش در این وب سرویس طولانی تر است اما دقت این سرویس بالاتر می باشد. در حال حاضر این وب سرویس از زبان‌های فارسی ، انگلیسی و عربی پشتیبانی می‌کنند. صوت ارسالی باید کاملا واضح و شفاف باشد ، یک گوینده در فایل صوتی باشد ، نویز محیطی در فایل نباشد.
PHP
JAVASCRIPT
PYTHON
GO
نمونه کد api تبدیل فایل صوتی به متن با استفاده از SDK
<?php
// composer require iotype-ai/sdk
require 'vendor/autoload.php';

// Reads IOTYPE_TOKEN from the environment.
// To pass it explicitly: new Iotype\Client('YOUR_TOKEN')
$io = new Iotype\Client();

// This endpoint is asynchronous. The fourth argument is $wait: it polls
// /io/v1/file/track for you and returns the transcript.
// With $wait = false you get a File object and poll it yourself.
$text = $io->transcribe(
    'sample.mp3',
    true,    // $summarize
    'fa',    // $sourceLang: fa | en | ar
    true     // $wait
);

echo $text;
?>
PHP
JAVASCRIPT
PYTHON
GO
نمونه کد api تبدیل فایل صوتی به متن بدون SDK
<?php
$url = "https://iotype.com/io/v1/transcribe";

// Passing an array as POSTFIELDS makes cURL build the multipart body and set
// Content-Type with the correct boundary. Never set that header by hand.
$postFields = [
    "file"             => new CURLFile("sample.mp3"),
    "should_summarize" => "true",
    "source_lang"      => "fa"   // fa | en | ar
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS     => $postFields,
    CURLOPT_HTTPHEADER     => [
        "Authorization: Bearer YOUR_TOKEN",
        "Accept: application/json",
        "X-Requested-With: XMLHttpRequest"
    ]
]);
$response = curl_exec($ch);
$status   = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($status !== 200) {
    exit("Request failed ($status): $response");
}

// This endpoint is asynchronous. The response carries a uuid, not the
// transcript. Poll /io/v1/file/track with the uuid until a process has a
// non-null "result". For short clips use /io/v1/transcribe/instant instead,
// which returns the text directly.
$file = json_decode($response, true)["file"];
echo $file["uuid"];
?>
پارامترهای ارسالی در Header درخواست Transcription (تبدیل فایل صوتی به متن)
Authorization
مقدار TOKEN دریافتی از بخش احراز هویت به صورت Bearer [TOKEN]
Accept
application/json
X-Requested-With
XMLHttpRequest
پارامترهای ارسالی در Body درخواست Transcription (تبدیل فایل صوتی به متن)
file
فایل در فرمت mp3
should_summarize
آیا فایل همراه با خلاصه نویسی ارسال شود ؟ مقدار این پارامتر true یا false است.
source_lang
زبان فایل صوتی : fa - en - ar
مقادیر پاسخ وب سرویس Transcription (تبدیل فایل صوتی به متن)
file
این پارامتر در برگیرنده داده‌های فایل ارسالی است که در ادامه تشریح می شود.
file.uuid
شناسه فایل برای پیگیری وضعیت فایل
file.name
نام فایل در سرور‌های iotype
file.filename
نام فایل ارسالی توسط شما
file.processes
لیست پروسه‌های در حال انجام بر روی فایل. مقدار result در هر process ، نتیجه پردازش است.
دریافت لیست فایل‌های ارسالی برای api
پاسخ این وب سرویس شامل تمام فایل‌های است که برای وب سرویس‌های آی او تایپ برای پردازش ارسال کرده اید. این درخواست با متد POST است و Body ندارد.
PHP
JAVASCRIPT
PYTHON
GO
نمونه کد وب سرویس دریافت لیست فایل‌های ارسالی برای آی او تایپ
<?php
$url = "https://iotype.com/io/v1/files";

$options = [
    "http" => [
        "header" => "Authorization: Bearer YOUR_TOKEN\r\n" .
                    "Content-Type: application/json\r\n",
        "method" => "POST",
        "content" => "{}"
    ]
];

$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
echo $response;
?>
پارامترهای ارسالی در Header درخواست دریافت لیست فایل‌ها
Authorization
مقدار TOKEN دریافتی از بخش احراز هویت به صورت Bearer [TOKEN]
Content-Type
application/json
مقادیر پاسخ وب سرویس لیست فایل‌های ارسالی
files
این پارامتر در برگیرنده لیست فایل ارسالی است که در ادامه تشریح می شود.
files.uuid
شناسه فایل برای پیگیری وضعیت فایل
files.name
نام فایل در سرور‌های iotype
files.filename
نام فایل ارسالی توسط شما
files.processes
لیست پروسه‌های در حال انجام بر روی فایل. مقدار result در هر process ، نتیجه پردازش است.
وب سرویس دریافت جزئیات یک فایل
با استفاده از این وب سرویس و پارامتر uuid یک فایل ، می‌توانید وضعیت یک فایل را در iotype پیگیری کنید. این درخواست در متد POST است.
PHP
JAVASCRIPT
PYTHON
GO
نمونه کد وب سرویس دریافت جزئیات یک فایل
<?php
$url = "https://iotype.com/io/v1/file/track";
$data = ["uuid" => "YOUR_FILE_UUID"];
$options = [
    "http" => [
        "header" => "Authorization: Bearer YOUR_TOKEN\r\n" .
                    "Content-Type: application/json\r\n",
        "method" => "POST",
        "content" => json_encode($data)
    ]
];

$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
echo $response;
?>
پارامترهای ارسالی در Header درخواست دریافت جزئیات فایل
Authorization
مقدار TOKEN دریافتی از بخش احراز هویت به صورت Bearer [TOKEN]
Content-Type
application/json
پارامترهای ارسالی در Body درخواست جزئیات فایل
uuid
شناسه فایل
مقادیر پاسخ وب سرویس جزئیات فایل
file
این پارامتر در برگیرنده داده‌های فایل ارسالی است که در ادامه تشریح می شود.
file.uuid
شناسه فایل برای پیگیری وضعیت فایل
file.name
نام فایل در سرور‌های iotype
file.filename
نام فایل ارسالی توسط شما
file.processes
لیست پروسه‌های در حال انجام بر روی فایل. مقدار result در هر process ، نتیجه پردازش است.