فارسی

Kokoro مدام سر و کله‌اش پیدا می‌شود — در Hacker News ترند شد، صدر جدول‌های متن‌بازِ تبدیل متن به گفتار را گرفته و سازندگان مدام می‌پرسند آیا یک مدل 82 میلیون پارامتری که روی یک CPU معمولی اجرا می‌شود واقعاً می‌تواند جای یک Voice API پولی را بگیرد یا نه. پس نصبش کردیم، روی یک لپ‌تاپ اجرا کردیم و نمونه‌هایی ساختیم که پایین می‌توانید پخش کنید. این یک کالبدشکافی کاملاً عملی است: Kokoro دقیقاً چیست، واقعاً چقدر خوب صدا می‌دهد، دو تله راه‌اندازی که از ما زمان گرفت، و اینکه چه زمانی یک ابزار میزبانی‌شده انتخاب بهتری است. منبع: github.com/hexgrad/kokoro (Apache-2.0).

Kokoro چیست و سازنده‌اش کیست؟

Kokoro یک مدل تبدیل متن به گفتار با وزن‌های باز است که توسط hexgrad با نام Kokoro-82M منتشر شده. تیتر اصلی در خود اسمش است: 82 میلیون پارامتر — طبق استانداردهای 2026 کوچک، آن‌قدر کوچک که روی گوشی هم اجرا شود — اما در عین حال روایت‌گری طبیعی و بیان‌گر تولید می‌کند. این مدل بر پایه تبار StyleTTS 2 ساخته شده و با مجوز انعطاف‌پذیر Apache-2.0 منتشر شده، بنابراین واقعاً برای استفاده تجاری رایگان است.

تا تاریخ 2026-07-11 ریپوی اصلی hexgrad/kokoro حدود 7,900 ستاره GitHub دارد. ما آن را از طریق ران‌تایم ONNX جامعه یعنی thewh1teagle/kokoro-onnx (حدود 2,600 ستاره، MIT) اجرا کردیم که ساده‌ترین راه برای اجرا روی CPU بدون نصب PyTorch است.

با سرک کشیدن داخل فایل وزن‌های واقعی، دیدیم 54 صدای داخلی در 9 گروه زبان و لهجه وجود دارد — انگلیسی آمریکایی و بریتانیایی، اسپانیایی، فرانسوی، هندی، ایتالیایی، ژاپنی، پرتغالی برزیلی و چینی ماندارین. صداهای انگلیسی آمریکایی واضحاً پرداخت‌شده‌ترین‌اند.

ما واقعاً اجراش کردیم (Apple M3 Pro، فقط CPU)

بدون GPU، بدون کلاد — فقط یک MacBook Pro با M3 Pro و 18 GB رم. این هم گزارش مرحله‌به‌مرحله و صادقانه.

نصب و وزن‌ها

پکیج Python در چند ثانیه نصب می‌شود: pip install kokoro-onnx soundfile. اما اینجا تله اول است — پکیج pip فقط کد را می‌آورد، نه مدل. باید دو فایل را دستی از صفحه releases گیت‌هاب kokoro-onnx دانلود کنید: kokoro-v1.0.onnx (310 MB) و voices-v1.0.bin (27 MB). راهنمای سریع این را سرسری رد می‌کند، بنابراین اجرای اول تا وقتی وزن‌ها را نگیرید با خطای فایلِ پیدا نشدنی شکست می‌خورد.

باگ مسیر espeak-ng (همان که واقعاً وقت ما را گرفت)

Kokoro متن را با espeak-ng به فونم تبدیل می‌کند. در اولین سنتز با این مواجه شدیم:

Error processing file '/Users/runner/work/espeakng-loader/.../espeak-ng-data/phontab': No such file or directory

آن مسیر /Users/runner/work/ یک نشانه واضح است: wheel مربوط به pip با نام espeakng-loader یک libespeak-ng را بسته‌بندی کرده که در CI با یک مسیر داده hard-code شده کامپایل شده؛ مسیری که روی سیستم شما وجود ندارد. بخش اعصاب‌خردکنش اینجاست: تنظیم متغیر محیطی ESPEAK_DATA_PATH هیچ کاری نمی‌کند، چون kokoro-onnx اصلاً آن را نمی‌خواند — مسیر داده را مستقیم از loader بسته‌بندی‌شده برمی‌دارد.

راه‌حلی که جواب داد: یک espeak-ng واقعیِ سیستمی نصب کنید و از طریق EspeakConfig صراحتاً مسیرش را به Kokoro بدهید:

brew install espeak-ng   # macOS; apt install espeak-ng on Linux

from kokoro_onnx import Kokoro, EspeakConfig
cfg = EspeakConfig(
    lib_path="/opt/homebrew/lib/libespeak-ng.dylib",
    data_path="/opt/homebrew/share/espeak-ng-data",
)
k = Kokoro("kokoro-v1.0.onnx", "voices-v1.0.bin", espeak_config=cfg)

بعد از این، تولید خروجی بدون دردسر انجام می‌شود. اگر تابه‌حال دقیقاً با همین خطای phontab: No such file جنگیده‌اید، این همان راه‌حل است.

سرعت (اندازه‌گیری‌شده، پس از گرم شدن)

فقط با CPU، مدل در حدود 1.7 ثانیه لود می‌شود و سنتز به‌راحتی سریع‌تر از زمان واقعی است. یک پاراگراف روایت‌گری 22 ثانیه‌ای در 3.5 ثانیه رندر شد — ضریب زمان واقعی حدود 0.16×، یعنی تقریباً 6 برابر سریع‌تر از پخش. جمله‌های کوتاه تک‌خطی در 1 تا 2 ثانیه برمی‌گردند. برای مدلی به این کوچکی روی لپ‌تاپ، این واقعاً نرخ خروجیِ قابل‌استفاده در تولید است. این هم شکل موج واقعی همان رندر پاراگراف:

شکل موجِ یک پاراگراف روایت 22 ثانیه‌ای که با Kokoro روی پردازنده M3 Pro تولید کردیم

نمونه‌هایی که ساختیم (بدون ویرایش)

همه کلیپ‌های زیر را خودمان با Kokoro روی CPU همان M3 Pro بالا تولید کردیم — خروجی خام مدل، بدون تمیزکاری و بدون پس‌پردازش. پخششان کنید و خودتان کیفیت را قضاوت کنید.

af_sarah — انگلیسی آمریکایی
am_michael — انگلیسی آمریکایی
bf_emma — انگلیسی بریتانیایی
روایت طولانی‌تر (af_sarah، 22 ثانیه) — همان پاراگرافی که بالا بنچمارک کردیم

تولیدشده توسط VisionStory با Kokoro-82M از طریق kokoro-onnx، 2026-07-11. نکته لو دهنده را ببینید: این یک ترک صدای تمیز است — اما فقط یک صداست. نه چهره‌ای هست، نه حرکت لب، نه مجری روی صفحه. همین فاصله، تمام هدف بخش بعدی است.

جمع‌بندی صادقانه: نقاط قوت و محدودیت‌های واقعی

چیزهایی که واقعاً تحت‌تأثیرمان گذاشت:

  • کیفیت نسبت به حجم، چشمگیر است. برای 82 میلیون پارامتر، صداهای انگلیسی آمریکایی طبیعی و بیان‌گرند — آن‌قدر نزدیک به TTS پولی که بیشتر شنونده‌ها در یک کلیپ کوتاه متوجه نمی‌شوند.
  • واقعاً روی CPU، سریع اجرا می‌شود. 6 برابر سریع‌تر از زمان واقعی روی لپ‌تاپ بدون GPU، ویژگی اصلی است و واقعاً هم جواب می‌دهد.
  • واقعاً رایگان و مناسب استفاده تجاری. Apache-2.0 بدون قیمت‌گذاری به‌ازای کاراکتر. برای صداگذاری با حجم بالا، از نظر اقتصادی سخت می‌شود با آن رقابت کرد.

جاهایی که کم می‌آورد — و این‌ها واقعاً مهم‌اند:

  • بدون شبیه‌سازی صدا. شما 54 صدای از پیش‌تنظیم‌شده دارید. نمی‌توانید صدای خودتان یا صدای مشتری را شبیه‌سازی کنید — اگر کاربردتان این است، Kokoro به دردتان نمی‌خورد.
  • کیفیت انگلیسی به espeak-ng وابسته است؛ یعنی هم باگ بسته‌بندی بالا را دارید، هم گاهی تلفظ اشتباه نام‌ها، برندها یا مخفف‌ها.
  • متن‌های طولانی نیاز به تکه‌تکه‌کردن دستی دارند. برای طول فونم در هر فراخوانی محدودیت وجود دارد، پس باید متن‌های بلند را خودتان تقسیم کنید و بعد صداها را به هم بچسبانید.
  • صداهای غیرانگلیسی بزن‌دررو هستند — به‌طور محسوس متغیرتر از مجموعه شاخص انگلیسی آمریکایی.
  • خروجی فقط یک WAV ساده است. نه تایم‌استمپ کلمه‌ها، نه ویزم‌ها — هیچ چیزی برای لب‌خوانی (lip-sync) به‌صورت آماده نمی‌دهد.
  • فقط صداست. نه چهره، نه ویدیو. برای داشتن یک مجری سخنگو باید Kokoro را با یک سیستم جداگانه لب‌خوانی یا آواتار ترکیب کنید و زمان‌بندی را خودتان مدیریت کنید.

میزبانی شخصی Kokoro در برابر ابزار میزبانی‌شده: کدام را انتخاب کنید؟

Kokoro و یک ابزار آواتارِ میزبانی‌شده، دو نیمه متفاوت از مسئله را حل می‌کنند. Kokoro به شما یک صدا می‌دهد؛ ابزاری مثل VisionStory به شما یک مجری سخنگو می‌دهد — صدا، چهره و لب‌خوانی در یک خروجی. این هم مقایسه صادقانه.

 Kokoro (میزبانی شخصی)VisionStory (میزبانی‌شده)
هزینهرایگان (سخت‌افزار خودتان)اشتراک / اعتبار
راه‌اندازیpip + وزن‌های 330 MB + رفع مشکل espeak-ngهیچ — در مرورگر اجرا می‌شود
چه چیزی می‌گیریدفقط ترک صدا (WAV)ویدیوی آواتار سخنگو (صدا + چهره + لب‌خوانی)
شبیه‌سازی صداخیر — 54 پیش‌تنظیمبله — صدای خودتان را شبیه‌سازی کنید
سرعت هر کلیپ~0.16× زمان واقعی روی CPU (در حد چند ثانیه)چند ثانیه، میزبانی‌شده — بدون محاسبات محلی
استفاده تجاریبله (Apache-2.0)بله (طبق پلن)
نگهداریبه‌روزرسانی espeak، وابستگی‌ها، تکه‌تکه‌کردن متن با شماستهیچ
بهترین حالتفقط یک ترک صدای رایگان می‌خواهید و کدنویسی بلدیدیک ویدیوی سخنگوی آماده می‌خواهید، سریع

Kokoro را انتخاب کنید اگر فقط یک صداگذاری رایگان می‌خواهید، با Python راحت هستید و چهره و لب‌خوانی را جداگانه مدیریت می‌کنید (یا اصلاً به چهره نیاز ندارید). یک ابزار میزبانی‌شده را انتخاب کنید اگر صدایی می‌خواهید که به یک مجری با لب‌خوانی متصل باشد، یا لازم دارید صدای یک فرد مشخص را شبیه‌سازی کنید — Kokoro هیچ‌کدام را انجام نمی‌دهد.

Kokoro چه چیزی به ما یاد داد

درس اصلی اجرای Kokoro این است که صدا دارد کالایی می‌شود. یک مدل 82 MB روی لپ‌تاپ حالا صداگذاری‌هایی تولید می‌کند که برای کار واقعی کافی‌اند، آن هم رایگان. اگر تنها ادعای محصولتان این بود که «تبدیل متن به گفتار انجام می‌دهیم»، آن مزیت دفاعی از بین رفته است.

بخش سخت و هنوز حل‌نشده، همه چیز بعد از صداست: تبدیل یک ترک صوتی به یک چهره سخنگوی باورپذیر — لب‌خوانی دقیق، حالت چهره، حرکت سر و زمان‌بندی‌ای که همه با هم جور دربیاید. این دقیقاً همان لایه‌ای است که ما روی آن کار می‌کنیم. پس برداشت ما این نیست که «از Kokoro استفاده نکنید» — این واقعاً یک موتور صدای خوب است. نکته این است که صدا به‌تنهایی نصف یک ویدیوست. اگر نصف دیگر را می‌خواهید، VisionStory در یک قدم یک عکس و یک متن را به یک مجری سخنگوی لب‌خوانی‌شده تبدیل می‌کند، و اگر لازم دارید با صدای مشخصی همسان شود، می‌تواند آن را شبیه‌سازی کند.

سوالات متداول

  • آیا Kokoro TTS برای استفاده تجاری رایگان است؟

    بله. Kokoro تحت مجوز Apache-2.0 منتشر شده که استفاده تجاری را مجاز می‌کند و صورتحساب به‌ازای هر کاراکتر ندارد. فقط هزینه پردازش خودتان را می‌پردازید که می‌تواند حتی یک CPU معمولی باشد.

  • آیا Kokoro روی مک یا بدون GPU اجرا می‌شود؟

  • آیا Kokoro می‌تواند صدای خودم را شبیه‌سازی کند؟

  • آیا Kokoro می‌تواند ویدیوی آواتار سخنگو بسازد؟

  • چطور خطای No such file مربوط به phontab در espeak-ng برای Kokoro را رفع کنم؟