تبدیل صوت فارسی به متن با Whisper — دقت، هزینه، آموزش
همه چیز دربارهٔ Whisper و gpt-4o-transcribe برای فارسی: دقت واقعی، هزینهٔ تومانی، کد آماده، رفع محدودیت ۲۵MB و ترفندهای افزایش دقت.
CONTENTS · در این مقاله (۱۵)
- Whisper چیست و چرا مهم است؟
- دقت Whisper در فارسی — اعداد واقعی
- اولین درخواست — کد ساده
- Trick حرفهای: استفاده از prompt برای بالا بردن دقت
- محدودیتها — جایی که Whisper کم میآورد
- ۱. حداکثر اندازهٔ فایل: ۲۵ مگابایت
- ۲. تشخیص گوینده (Speaker Diarization)
- ۳. اعداد فارسی
- ۴. کلمات تابو و اصطلاحات حساس
- ۵. سکوت طولانی → توهم
- محاسبهٔ هزینه — یک نمونهٔ واقعی
- ساخت یک workflow کامل: پادکست → SEO
- مقایسه با گزینههای جایگزین
- چند نکتهٔ پایانی برای کیفیت بهتر
- جمعبندی
تبدیل صوت فارسی به متن یکی از سختترین وظایف پردازش زبان طبیعی است. زبان فارسی پر از همخوانهای مشابه (س/ص/ث، ز/ذ/ض/ظ)، حذف اصوات کوتاه در نوشتار، تنوع شدید گویشها، و قرضگیریهای انگلیسی و عربی است. تا چند سال پیش، بهترین ابزارهای فارسی بهسختی به دقت ٪۷۰ میرسیدند. حالا با Whisper شرکت OpenAI و خانوادهٔ جدید gpt-4o-transcribe، کار به جایی رسیده که میتوانی یک پادکست یکساعتهٔ فارسی را با دقت بالای ٪۹۲ به متن تبدیل کنی، آن هم در کمتر از یک دقیقه. این مقاله بررسی میکند Whisper در فارسی واقعاً چقدر خوب است، چقدر هزینه دارد، چطور از آن استفاده کنی، و کجا کم میآورد.
Whisper چیست و چرا مهم است؟
Whisper یک مدل ASR (Automatic Speech Recognition) است که OpenAI در سپتامبر ۲۰۲۲ بهصورت متنباز منتشر کرد. روی ۶۸۰٬۰۰۰ ساعت داده صوتی به ۹۹ زبان آموزش دیده، که حدود ۱۰٬۰۰۰ ساعت آن فارسی بوده است. این مدل علاوه بر تبدیل به متن، میتواند:
- زبان صوت را خودکار تشخیص دهد.
- صوت چندزبانه را به انگلیسی ترجمه کند.
- timestamp برای هر کلمه یا بخش بدهد.
- نویز پسزمینه را تا حد قابل قبولی فیلتر کند.
OpenAI سه نسل از Whisper را معرفی کرده است:
| نسل | مدل API | دقت فارسی (تخمینی) | قیمت (به ازای دقیقه) |
|---|---|---|---|
| کلاسیک | whisper-1 | ~٪۸۸ | $0.006 (~۳۶۰ تومان) |
| نسل جدید | gpt-4o-transcribe | ~٪۹۳ | $0.006 (~۳۶۰ تومان) |
| نسل سبک | gpt-4o-mini-transcribe | ~٪۹۱ | $0.003 (~۱۸۰ تومان) |
قیمتگذاری بر اساس طول صوت است نه طول متن خروجی، که برای کاربر ایرانی بسیار مهم است: میتوانی هزینه را دقیق پیشبینی کنی.
دقت Whisper در فارسی — اعداد واقعی
برای ارزیابی منصفانه، یک مجموعهٔ آزمایشی شامل ۲۰ فایل صوتی فارسی متنوع را با هر سه مدل تست کردیم:
| نوع صوت | whisper-1 | gpt-4o-mini-transcribe | gpt-4o-transcribe |
|---|---|---|---|
| گویش تهرانی، استودیویی | ٪۹۴ | ٪۹۶ | ٪۹۸ |
| پادکست با موسیقی پسزمینه | ٪۸۷ | ٪۹۰ | ٪۹۲ |
| صدای موبایل، فضای باز | ٪۸۲ | ٪۸۶ | ٪۹۰ |
| گفتوگوی دو نفره | ٪۸۸ | ٪۸۹ | ٪۹۲ |
| اصطلاحات تخصصی پزشکی | ٪۷۲ | ٪۷۸ | ٪۸۵ |
| اصطلاحات فنی نرمافزاری (انگلیسی) | ٪۸۰ | ٪۸۸ | ٪۹۲ |
| گویشهای محلی (شیرازی، اصفهانی) | ٪۶۸ | ٪۷۲ | ٪۸۰ |
| صدای بچه (۵ تا ۱۰ سال) | ٪۷۵ | ٪۸۰ | ٪۸۵ |
دو نکتهٔ کلیدی:
- gpt-4o-transcribe در همه چیز بهتر است، اما تفاوت قیمت با whisper-1 صفر است — پس عملاً همیشه gpt-4o-transcribe انتخاب اول است.
- کیفیت صوت ورودی مهمتر از انتخاب مدل است. اگر بتوانی صوت را قبل از ارسال نویزگیری کنی (مثلاً با ابزارهایی مثل rnnoise یا پلاگینهای Audacity)، دقت میتواند چند درصد بالاتر برود.
اولین درخواست — کد ساده
نمونهٔ Python با OpenAI SDK، که از داخل ایران از طریق 1xAi کار میکند:
from openai import OpenAI
client = OpenAI(
api_key="1xai-xxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://1xai.ir/v1"
)
with open("interview.mp3", "rb") as audio_file:
transcript = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=audio_file,
language="fa",
response_format="text"
)
print(transcript)
پارامترهای مهم:
language="fa": حتی اگر مدل خودش زبان را تشخیص میدهد، صریح گفتن دقت را ۲ تا ۳ درصد بالا میبرد و سرعت را افزایش میدهد.response_format: مقادیر ممکن text، json، srt، verbose_json، vtt. برای زیرنویس srt و برای پردازش بعدی verbose_json را انتخاب کن.temperature: پیشفرض ۰. اگر صوت پر نویز است یا گویش غیرمعمول دارد، ۰.۲ را امتحان کن.prompt: یک trick قدرتمند! میتوانی اسامی خاص، اصطلاحات تخصصی یا نمونهای از سبک نوشتار را به مدل بدهی.
Trick حرفهای: استفاده از prompt برای بالا بردن دقت
فرض کن داری یک پادکست دربارهٔ هوش مصنوعی را transcribe میکنی. اگر prompt را خالی بگذاری، احتمال دارد Whisper «GPT» را «جیپیتی» یا «ChatGPT» را «چت جی پی تی» بنویسد. اما با prompt هوشمندانه:
transcript = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=audio_file,
language="fa",
prompt="در این پادکست دربارهٔ ChatGPT، GPT-4o، LangChain، Whisper و OpenAI صحبت میشود."
)
این prompt به مدل میگوید این کلمات احتمالاً ظاهر میشوند، و حالا آنها را با املای صحیح خود مینویسد. این تکنیک میتواند دقت را در محتوای تخصصی تا ٪۱۰ بالا ببرد.
محدودیتها — جایی که Whisper کم میآورد
۱. حداکثر اندازهٔ فایل: ۲۵ مگابایت
این محدودیت سخت OpenAI است. برای فایلهای بزرگتر باید تکهتکه کنی. ابزار محبوب: stable-ts یا یک script ساده با ffmpeg:
# تقسیم فایل به قطعات ۱۰ دقیقهای
ffmpeg -i podcast.mp3 -f segment -segment_time 600 -c copy chunk_%03d.mp3
سپس در پایتون:
import os
from openai import OpenAI
client = OpenAI(api_key="1xai-xxx", base_url="https://1xai.ir/v1")
full_text = []
for chunk in sorted(os.listdir("chunks")):
with open(f"chunks/{chunk}", "rb") as f:
t = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=f,
language="fa"
)
full_text.append(t.text)
with open("full_transcript.txt", "w") as f:
f.write("\n".join(full_text))
۲. تشخیص گوینده (Speaker Diarization)
Whisper بهصورت پیشفرض نمیتواند بگوید «این جمله را علی گفت، آن یکی را زهرا». برای این کار باید از ابزارهای جداگانه مثل pyannote.audio استفاده کنی و خروجی Whisper را با خروجی pyannote ترکیب کنی.
۳. اعداد فارسی
Whisper اغلب اعداد را با ارقام انگلیسی مینویسد («۱۲۰۰» میشود «1200»). اگر برای محصول فارسی نیاز داری، یک پسپردازش ساده اضافه کن:
def to_persian_digits(text: str) -> str:
en = "0123456789"
fa = "۰۱۲۳۴۵۶۷۸۹"
return text.translate(str.maketrans(en, fa))
۴. کلمات تابو و اصطلاحات حساس
Whisper گاهی کلمات نامناسب را بهصورت ستاره (***) سانسور میکند. اگر کارت تحقیق روی محتوای واقعی است، میتوانی پارامتر temperature=0.2 را امتحان کنی و prompt را با لحنی خنثی بنویسی.
۵. سکوت طولانی → توهم
اگر در صوت تو سکوت طولانی (بیش از ۳۰ ثانیه) وجود دارد، Whisper گاهی متن «خیالی» تولید میکند (hallucination). حل: قبل از ارسال، با ffmpeg سکوتها را حذف یا کوتاه کن:
ffmpeg -i input.mp3 -af silenceremove=stop_periods=-1:stop_duration=2:stop_threshold=-30dB output.mp3
محاسبهٔ هزینه — یک نمونهٔ واقعی
فرض کن یک شرکت رسانهای داری که روزانه ۱۰ ساعت ویدیو/پادکست تولید میکند. میخواهی همه را transcribe کنی برای SEO و ساخت زیرنویس:
| حالت | محاسبه | هزینهٔ روزانه (تومان) | ماهانه (تومان) |
|---|---|---|---|
| gpt-4o-transcribe | 10 × 60 × ۳۶۰ | ۲۱۶٬۰۰۰ | ~۶٬۵۰۰٬۰۰۰ |
| gpt-4o-mini-transcribe | 10 × 60 × ۱۸۰ | ۱۰۸٬۰۰۰ | ~۳٬۲۵۰٬۰۰۰ |
ماهانه ۶ میلیون تومان برای رسانهای که ۳۰۰ ساعت محتوا تولید میکند، یعنی هر ساعت تنها ۲۰ هزار تومان. مقایسهاش کن با هزینهٔ یک نیروی انسانی برای transcription که حداقل ساعتی ۲۵۰ هزار تومان است. صرفهٔ اقتصادی روشن است.
ساخت یک workflow کامل: پادکست → SEO
یک سناریوی واقعی: میخواهی هر پادکستی که منتشر میکنی، خودکار transcript شود، خلاصهٔ سهخطی برای تلگرام بگیرد، و یک پست بلاگ SEO شده تولید کند. این workflow با ابزارهایی مثل n8n بهسادگی قابل ساخت است (راهنمای کامل n8n):
- پادکست در S3 یا Drive آپلود میشود.
- n8n trigger میخورد، فایل را به Whisper میفرستد.
- متن خام به GPT-5 میرود برای پاکسازی و pas-pardazesh.
- یک GPT call دیگر خلاصهٔ تلگرامی میسازد.
- یک GPT call دیگر یک پست بلاگ ۸۰۰ کلمهای با تگهای SEO مینویسد.
- همه روی WordPress publish میشوند.
کل این workflow برای یک پادکست ۴۵ دقیقهای حدود ۲۵ هزار تومان هزینه دارد. کاری که قبلاً ۶ ساعت کار انسان میبرد، حالا در ۵ دقیقه انجام میشود.
مقایسه با گزینههای جایگزین
| سرویس | دقت فارسی | قیمت/دقیقه | دسترسی از ایران |
|---|---|---|---|
| Whisper API (OpenAI) | ~٪۹۳ | ۳۶۰ تومان | با پروکسی (1xAi) |
| Google Speech-to-Text | ~٪۸۵ | ~۲۴۰ تومان | پیچیده |
| Azure Speech | ~٪۸۸ | ~۲۴۰ تومان | پیچیده |
| Whisper متنباز (لوکال) | ~٪۹۰ | هزینهٔ GPU | بدون اینترنت |
| سرویسهای ایرانی (Vira، Stt.ir) | ~٪۸۰ تا ٪۹۰ | متغیر | مستقیم |
اگر حجم کار محدود است (زیر ۱۰ ساعت در روز)، Whisper API بهترین انتخاب است. اگر حجم بسیار بالاست (شرکت بزرگ، صدها هزار ساعت در ماه)، Whisper متنباز روی GPU خودت ممکن است صرفهجویی داشته باشد، اما نگهداری و سرمایهگذاری اولیهٔ سختی دارد.
چند نکتهٔ پایانی برای کیفیت بهتر
- format صوت: WAV با sample rate ۱۶kHz دقت را نسبت به MP3 با bitrate پایین چند درصد بالا میبرد.
- یک کانال (mono): اگر mic stereo داری، قبل از ارسال به mono تبدیل کن. Whisper روی mono بهتر کار میکند.
- نرمالسازی صدا: با ffmpeg loudnorm یا یک گذر سادهٔ
-af volume=1.5صدا را به سطح استاندارد برسان. - chunk overlap: اگر فایل را تکه میکنی، ۲ تا ۳ ثانیه overlap بین قطعات بگذار تا کلمات مرزی از دست نروند.
- پسپردازش با LLM: خروجی Whisper را به
gpt-5-miniبفرست با prompt «این متن خام صوت فارسی است. اشتباهات املایی، نقطهگذاری و اعداد را اصلاح کن، اما کلمات را تغییر نده.» نتیجه بهمراتب تمیزتر میشود.
جمعبندی
Whisper در سال ۱۴۰۵ به جایی رسیده است که میتوانی به آن بهعنوان یک سرویس production-ready برای زبان فارسی نگاه کنی. دقت بالای ٪۹۰ در شرایط معمول، قیمت ارزان (دقیقهای ۳۶۰ تومان)، و دسترسی راحت از ایران از طریق پروکسی API بومی مثل 1xAi همه عوامل لازم برای استفادهٔ تجاری را فراهم کرده است. اگر هنوز روی سرویسهای قدیمی یا transcription دستی هستی، یک ساعت وقت بگذار و یک نمونه را با gpt-4o-transcribe امتحان کن — احتمالاً تصمیمت برای همیشه عوض میشود. برای ساخت workflow کامل خودکار، آموزش n8n را ببین و برای محاسبهٔ دقیق هزینههای پروژهٔ خودت، راهنمای محاسبهٔ هزینه را بخوان.
ABOUT THE AUTHOR · نویسنده
تیم 1xAi
تیمِ 1xAi پروکسیِ تخصصیِ مدلهای OpenAI، Claude و Gemini برای کاربرانِ ایرانی را اداره میکند — از زیرساختِ شبکه تا صورتحسابِ تومانی. هرچه اینجا مینویسیم بر اساسِ تجربهٔ روزانه با APIهای OpenAI، Anthropic و Google و نیازهای واقعیِ توسعهدهندگانِ داخلِ ایران است.
۱۲ دقیقه
اتصال LangChain و LangGraph به OpenAI از ایران
آموزش گامبهگام اتصال LangChain و LangGraph به OpenAI از داخل ایران: ساخت RAG، tool agent، LangGraph حالتمند با کد Python آماده.
۸ دقیقه
اتصال n8n به OpenAI از داخل ایران — راهنمای گامبهگام
آموزش کامل اتصال n8n به OpenAI از ایران بدون VPN: تنظیم Credential، ساخت AI Agent، خلاصهساز ایمیل، چتبات تلگرام و کنترل هزینه.
۸ دقیقه
هزینهٔ واقعی ChatGPT API چقدر است؟ محاسبه با تومان
محاسبهٔ دقیق هزینهٔ ChatGPT API به تومان: قیمت مدلهای GPT-5، GPT-4o، Whisper و DALL-E با چهار سناریوی واقعی و چهار راه کاهش هزینه.
