النقاط الرئيسية
- طوّره Georgi Gerganov عام 2022؛ ويُصان اليوم ضمن منظمة ggml-org على GitHub.
- رخصة MIT — استخدام وتعديل وإعادة توزيع مجانية، بما في ذلك الاستخدام التجاري.
- يعمل على المعالج المركزي، وApple Metal/Core ML، وNVIDIA CUDA، وVulkan، وOpenVINO، وAMD ROCm، وخلفيات Ascend NPU.
- لا يتطلب بيئة Python — يُوزَّع كملف تنفيذي C/C++ مُجمَّع، مع ارتباطات Python اختيارية.
- يدعم تفريغ الميكروفون في الوقت الفعلي عبر مثال البث الخاص به، إضافةً إلى تفريغ الملفات دفعةً واحدة.
- أحدث إصدار مستقر: v1.9.3، صدر في 20 أغسطس 2026.
📍 في جملة واحدة
whisper.cpp هو نسخة C/C++ مجانية برخصة MIT من نموذج تحويل الكلام إلى نص Whisper من OpenAI، طوّرها Georgi Gerganov، وتقوم بتفريغ الصوت بالكامل على الجهاز عبر المعالج المركزي وApple Metal وNVIDIA CUDA وخلفيات أخرى، دون Python.
💬 بعبارات بسيطة
يحوّل الكلام المنطوق إلى نص على جهازك الخاص بدلًا من إرساله إلى واجهة سحابية — تُنزّل ملفًا تنفيذيًا جاهزًا أو تبنيه بنفسك، وتزوّده بملف صوتي أو بث مباشر من الميكروفون، فيعيد لك تفريغًا نصيًا، مجانًا، باستخدام نفس النماذج التي درّبتها OpenAI.
📌ملاحظة: تركّز هذه المراجعة على whisper.cpp كأداة مستقلة: تاريخها، وتثبيتها، وأوامرها الحقيقية، ورخصتها، وحدودها الصريحة. للاطلاع على مقارنة أداء مباشرة مع faster-whisper على Apple Silicon وNVIDIA GPU، راجع مقارنة whisper.cpp مقابل faster-whisper.
التاريخ: من طوّر whisper.cpp ولماذا
أطلقت OpenAI نموذج تحويل الكلام إلى نص Whisper في سبتمبر 2022 كنموذج مفتوح الأوزان دُرِّب على كمية كبيرة من البيانات الصوتية متعددة اللغات، ووُزِّع كحزمة Python (openai-whisper) تعتمد على PyTorch، وتحتاج للأداء الجيد إلى معالج رسومي متوافق مع CUDA.
قام Georgi Gerganov بنقل النموذج إلى لغة C/C++ خالصة بعد ذلك بوقت قصير، في العام نفسه 2022، ضمن مستودع ggml-org/whisper.cpp. كما أن Gerganov هو مبتكر مكتبة الموترات ggml التي تعتمد عليها عمليات whisper.cpp الحسابية وعمليات الضغط الكمّي، وأصبح لاحقًا معروفًا بمشروع llama.cpp، وهو النسخة المكافئة بلغة C/C++ لتشغيل نماذج اللغة الكبيرة محليًا — ويتشارك المشروعان نفس أساس ggml ونفس هدف التصميم: تشغيل نموذج يحتاج عادةً إلى Python ومعالج رسومي على أجهزة عادية.
كان الدافع هو قابلية النقل وكفاءة الموارد، وليس السرعة فقط. يسهل تشغيل تطبيق Whisper الأصلي بلغة Python/PyTorch على محطة عمل بمعالج رسومي جيد، لكنه ثقيل عند النشر على جهاز Raspberry Pi، أو تطبيق iOS، أو صفحة WebAssembly، أو لوحة Linux مدمجة بلا مفسّر Python. يزيل whisper.cpp الاعتماد على PyTorch وPython بالكامل، ويُجمَّع في ملف تنفيذي صغير، ويضيف دعم الضغط الكمّي حتى تتناسب إصدارات النموذج الأصغر مع بضع مئات من ميغابايتات ذاكرة الوصول العشوائي.
تجاوز المشروع كثيرًا كونه مشروعًا جانبيًا من مطور واحد. يضم الآن مئات المساهمين، ويُعبَّأ لتوزيعة Debian، ويقدّم دعمًا رسميًا لـ Core ML (محرك Apple العصبي)، وCUDA، وVulkan، وOpenVINO وخلفيات أخرى لم تكن موجودة في الإصدار الأصلي لعام 2022. ويظل مع ذلك *بيئة تشغيل* لنموذج Whisper — فهو لا يدرّب أو يضبط نماذجه الخاصة، وكل عملية تفريغ صوتي لا تزال تستخدم نفس الأوزان التي نشرتها OpenAI لحجم نموذج معين (من tiny إلى large-v3)، محوَّلة إلى صيغة GGML الخاصة بالمشروع.
من طوّر whisper.cpp؟
طوّر Georgi Gerganov برنامج whisper.cpp، ونشره لأول مرة عام 2022 كنسخة C/C++ من نموذج Whisper من OpenAI. كما ابتكر Gerganov مكتبة الموترات ggml التي يعمل عليها، ثم طوّر لاحقًا llama.cpp، وهو النسخة المكافئة لتشغيل نماذج اللغة الكبيرة محليًا.
ما الذي يفعله whisper.cpp فعليًا
يستقبل whisper.cpp إدخالًا صوتيًا — ملفًا (WAV، وصيغًا أخرى عبر فك ترميز FFmpeg الاختياري) أو بثًا مباشرًا من الميكروفون — وينتج تفريغًا نصيًا، مع إمكانية إضافة طوابع زمنية لكل مقطع وترجمة إلى الإنجليزية. ويقوم بذلك عبر تحميل نموذج Whisper (محوَّل إلى صيغة أوزان GGML الخاصة بالمشروع) وتشغيل الاستدلال عبر مكتبة الموترات ggml، بالكامل على الجهاز المحلي.
- التفريغ الصوتي دفعةً واحدة. توجيه الملف التنفيذي
whisper-cliإلى ملف صوتي والحصول على تفريغ نصي، مع خيارات إخراج كنص عادي أو ترجمات SRT/VTT أو JSON أو CSV. - البث المباشر في الوقت الفعلي. يلتقط مثال
whisper-streamصوت الميكروفون المباشر ويفرّغه باستمرار، وهو مفيد للمساعدات الصوتية أو الترجمة الحية. - التفريغ والترجمة متعددة اللغات. دُرِّبت نماذج Whisper الأساسية على العديد من اللغات؛ ويمكن لـ whisper.cpp التفريغ باللغة الأصلية أو الترجمة مباشرةً إلى الإنجليزية، حسب الخيارات الممرَّرة.
- استدلال مُسرَّع بالعتاد. على أجهزة Apple Silicon، يمكن لـ whisper.cpp تصدير النماذج بصيغة Core ML لاستخدام محرك Apple العصبي؛ وعلى عتاد NVIDIA يستخدم CUDA؛ وعلى معالجات رسومية أخرى يمكنه استخدام Vulkan أو OpenVINO. وعلى الأجهزة المعتمدة على المعالج المركزي فقط، يستخدم تعليمات المتجهات AVX2 (x86) أو NEON (ARM).
- الضغط الكمّي. يمكن ضغط النماذج كميًا (مثلًا إلى صيغ GGML بـ 4 أو 5 بت) لمقايضة قدر بسيط من الدقة مقابل استهلاك ذاكرة أقل بكثير واستدلال أسرع — وهي نفس التقنية التي يستخدمها llama.cpp لنماذج اللغة الكبيرة.
تثبيت وتشغيل whisper.cpp: خطوة بخطوة
يبني هذا الدليل whisper.cpp من الشيفرة المصدرية ويشغّل أول عملية تفريغ صوتي، باستخدام الأوامر الموثّقة في ملف README الخاص بالمشروع.
- 1استنساخ المستودع.
Why it matters: نفّذ `git clone https://github.com/ggml-org/whisper.cpp.git` ثم `cd whisper.cpp`. يؤدي هذا إلى تنزيل شجرة الشيفرة المصدرية الكاملة بلغة C/C++، بما في ذلك ملفات بناء CMake وسكربت تنزيل النماذج. - 2تنزيل نموذج.
Why it matters: نفّذ `sh ./models/download-ggml-model.sh base.en` لجلب نموذج base الإنجليزي بصيغة GGML. استبدل `base.en` بـ `tiny` أو `small` أو `medium` أو `large-v3` حسب التوازن المطلوب بين الدقة والسرعة، أو احذف اللاحقة `.en` للحصول على نموذج متعدد اللغات. - 3بناء المشروع.
Why it matters: نفّذ `cmake -B build` ثم `cmake --build build -j --config Release`. يؤدي هذا إلى تجميع ملفات CLI التنفيذية (`whisper-cli` و`whisper-stream` وغيرها) في مجلد `build/bin/`. لا يتطلب هذا الخطوة تثبيت Python. - 4تفريغ ملف عيّنة.
Why it matters: نفّذ `./build/bin/whisper-cli -f samples/jfk.wav` باستخدام ملف الصوت العيّني المرفق مع المستودع. يؤكد هذا أن البناء يعمل من البداية إلى النهاية، ويطبع تفريغًا نصيًا في الطرفية. - 5تفريغ الصوت الخاص بك.
Why it matters: استبدل مسار العيّنة بملف WAV الخاص بك: `./build/bin/whisper-cli -m models/ggml-base.en.bin -f your-audio.wav`. أضف `-osrt` لكتابة ملف ترجمة `.srt` أيضًا، أو `-oj` للإخراج بصيغة JSON. - 6(اختياري) تفعيل تسريع المعالج الرسومي.
Why it matters: على أجهزة Apple Silicon، يُستخدم تسريع Metal تلقائيًا عند البناء بخيارات CMake الافتراضية على macOS. على جهاز NVIDIA، أضف `-DGGML_CUDA=ON` إلى خطوة `cmake -B build` (يتطلب تثبيت أدوات CUDA) للبناء بدعم CUDA. - 7(اختياري) تجربة التفريغ الصوتي في الوقت الفعلي.
Why it matters: ابنِ مثال البث ونفّذ `./build/bin/whisper-stream -m models/ggml-base.en.bin` لتفريغ صوت الميكروفون المباشر باستمرار بدلًا من ملف ثابت.
أمثلة استخدام حقيقية
بالإضافة إلى دليل التثبيت الأساسي أعلاه، هذه استدعاءات شائعة وواقعية للملف التنفيذي whisper-cli.
- pywhispercpp توفّر ارتباطات Python لـ whisper.cpp، للفرق التي تريد تسريع Metal/CUDA لكنها تفضّل الاستدعاء من شيفرة Python بدلًا من استدعاء الملف التنفيذي لكل ملف.
- كما يقدّم whisper.cpp مثالًا صغيرًا لخادم HTTP محلي (
whisper-server) للفرق التي تريد إرسال الصوت عبر HTTP بدلًا من استدعاء سطر الأوامر لكل ملف — وهو مفيد لدمج whisper.cpp في خدمة قائمة دون الاعتماد على Python.
# تفريغ ملف صوتي إلى نص عادي (الإخراج الافتراضي)
./build/bin/whisper-cli -m models/ggml-base.en.bin -f interview.wav
# التفريغ وإخراج ترجمات SRT، باستخدام النموذج الأكبر والأدق
./build/bin/whisper-cli -m models/ggml-large-v3.bin -f lecture.wav -osrt
# ترجمة كلام غير إنجليزي مباشرةً إلى نص إنجليزي
./build/bin/whisper-cli -m models/ggml-medium.bin -f french-audio.wav -tr
# اختيار معالج رسومي محدد (أجهزة متعددة المعالجات الرسومية)
./build/bin/whisper-cli -m models/ggml-large-v3.bin -f audio.wav -g 0
# تفريغ صوتي في الوقت الفعلي من الميكروفون الافتراضي
./build/bin/whisper-stream -m models/ggml-base.en.bin -t 8الرخصة والتكلفة
whisper.cpp مرخّص بموجب رخصة MIT — يسمح ملف الرخصة في المستودع الرسمي بالاستخدام والتعديل وإعادة التوزيع مجانًا، بما في ذلك في منتجات مغلقة المصدر وتجارية، دون رسوم امتياز ودون أي التزام بذكر المصدر يتجاوز الاحتفاظ بإشعار الرخصة.
لا توجد فئة مدفوعة أو اشتراك أو رسوم ترخيص لـ whisper.cpp نفسه. التكاليف الحقيقية الوحيدة هي العتاد الذي تشغّله عليه (أو جهاز افتراضي سحابي إذا اخترت استضافته)، ووقت التطوير الخاص بك إذا بنيت منتجًا فوقه. لا يوجد قياس للاستخدام، ولا مفتاح API، ولا ارتباط بمورّد معيّن.
كما أن أوزان نموذج Whisper الأساسي مرخّصة بشكل منفصل من قِبل OpenAI بموجب MIT أيضًا، لذا فإن كلًّا من بيئة التشغيل (whisper.cpp) وأوزان النموذج التي تحمّلها مرخّصان بشكل متساهل للاستخدام التجاري.
هل whisper.cpp مجاني للاستخدام التجاري؟
نعم. whisper.cpp مرخّص بموجب MIT، وأوزان نموذج Whisper التي يستخدمها مرخّصة أيضًا من OpenAI بموجب MIT. وكلاهما يسمح بالاستخدام والتعديل وإعادة التوزيع التجاري دون رسوم.
ما لا يصلح له whisper.cpp
whisper.cpp هو بيئة تشغيل للتفريغ الصوتي، وليس منتجًا كاملًا للذكاء الاصطناعي الحواري أو فصل المتحدثين. وهو الأداة الخاطئة في الحالات التالية:
- فصل المتحدثين ("من قال ماذا"). يقوم whisper.cpp بتفريغ ما قيل، لكنه لا يفصل أو يصنّف بشكل أصلي المتحدثين المختلفين في تسجيل متعدد الأشخاص. يتطلب فصل المتحدثين نموذجًا أو خط معالجة منفصلًا (مثل دمج تفريغ whisper.cpp مع أداة فصل متحدثين) يُضاف فوقه.
- زمن استجابة بث أقل من 100 ميلي ثانية على نطاق واسع. يعمل مثال
whisper-streamالمدمج بشكل جيد لميكروفون مباشر واحد على جهاز واحد، لكن whisper.cpp ليس خدمة تحويل كلام في الوقت الفعلي مصمَّمة خصيصًا وموسَّعة أفقيًا كما تُصمَّم واجهة برمجة تطبيقات صوتية مخصصة في الوقت الفعلي لعدد كبير من المستخدمين المتزامنين. - إعداد بلا أي تعقيد للمستخدمين غير التقنيين. whisper.cpp أداة سطر أوامر يقوم معظم المستخدمين ببنائها من الشيفرة المصدرية أو الحصول عليها كملف تنفيذي مُجمَّع — وليس لديه مثبّت رسومي متقن أو صفحة في متجر تطبيقات موجهة لغير المطورين. من يريد تطبيق تفريغ بنقرة واحدة ينبغي أن يبحث عن تطبيق رسومي مبني فوق whisper.cpp، أو خدمة تفريغ مستضافة بدلًا من ذلك.
- استخراج آخر نقطة من أداء معالج رسومي NVIDIA في خط معالجة يعتمد على Python أولًا. في أكبر النماذج وعلى عتاد NVIDIA، وجد قياس أداء PromptQuorum أن خلفية CTranslate2 في faster-whisper أسرع وأكثر اقتصادًا في استهلاك ذاكرة VRAM من مسار CUDA في whisper.cpp — فإذا كانت عملية النشر لديك بالفعل خدمة Python على معالج رسومي NVIDIA، فعادةً ما يكون faster-whisper الخيار الأفضل.
بدائل whisper.cpp
faster-whisper
- الأنسب لـ:
- خطوط معالجة Python على معالجات NVIDIA GPU — خلفية CTranslate2، أداء أعلى بنحو 4 أضعاف مقارنة بـ Whisper الأصلي
- الرخصة:
- MIT
WhisperX
- الأنسب لـ:
- عند الحاجة إلى طوابع زمنية على مستوى الكلمة وفصل متحدثين فوق تفريغات Whisper
- الرخصة:
- BSD-2-Clause
واجهة OpenAI Whisper API
- الأنسب لـ:
- الفرق التي تفضّل واجهة سحابية مُدارة على الاستضافة الذاتية، مقابل رسوم حسب الاستخدام
- الرخصة:
- ملكية خاصة (واجهة مدفوعة)
Vosk
- الأنسب لـ:
- الأجهزة بلا اتصال ذات الموارد المحدودة جدًا حيث يكون البصمة الصغيرة أهم من دقة Whisper
- الرخصة:
- Apache-2.0
الأسئلة الشائعة
ما هو whisper.cpp؟
whisper.cpp هو إعادة تنفيذ مجانية برخصة MIT بلغة C/C++ لنموذج تحويل الكلام إلى نص Whisper من OpenAI، طوّره Georgi Gerganov، وينفّذ التفريغ الصوتي محليًا دون بيئة Python.
هل whisper.cpp مجاني؟
نعم. whisper.cpp مرخّص بموجب MIT، دون فئة مدفوعة أو اشتراك أو رسوم استخدام. أوزان نموذج Whisper التي يستخدمها مرخّصة أيضًا من OpenAI بموجب MIT.
هل أحتاج إلى معالج رسومي لتشغيل whisper.cpp؟
لا. يعمل whisper.cpp على المعالج المركزي باستخدام تحسينات AVX2 (x86) أو NEON (ARM)، وتعمل النماذج الأصغر (tiny، base) بشكل جيد في الوقت الفعلي على عتاد يعتمد على المعالج المركزي فقط، بما في ذلك Raspberry Pi. يسرّع المعالج الرسومي (Apple Metal أو NVIDIA CUDA أو Vulkan) النماذج الأكبر مثل large-v3، لكنه ليس مطلوبًا.
هل يدعم whisper.cpp التفريغ الصوتي في الوقت الفعلي؟
نعم، عبر مثال whisper-stream، الذي يلتقط صوت الميكروفون المباشر ويفرّغه باستمرار. يعتمد زمن الاستجابة على حجم النموذج والعتاد — وتقترب النماذج الأصغر على معالج مركزي أو رسومي سريع أكثر من الوقت الفعلي.
ما الفرق بين whisper.cpp وfaster-whisper؟
whisper.cpp هو تطبيق خالص بلغة C/C++ دون اعتماد على Python، مصمَّم لقابلية النقل بين المعالج المركزي وApple Metal وCUDA والأجهزة المدمجة. أما faster-whisper فهي مكتبة Python مبنية على CTranslate2، مُحسَّنة بشكل أساسي لأداء معالجات NVIDIA GPU ضمن خطوط معالجة Python. راجع المقارنة التفصيلية من PromptQuorum للحصول على أرقام خاصة بكل منصة.
هل يمكن تشغيل whisper.cpp على جهاز Raspberry Pi؟
نعم. تعمل نماذج tiny وbase في الوقت الفعلي على المعالج المركزي لجهاز Raspberry Pi 5 بفضل تحسينات ARM NEON في whisper.cpp، إذ لا يعتمد المشروع على تثبيت Python أو CUDA.
هل يترجم whisper.cpp الصوت إلى الإنجليزية؟
نعم. تمرير الخيار -tr (ترجمة) إلى whisper-cli يقوم بتفريغ الكلام غير الإنجليزي وترجمته مباشرةً إلى نص إنجليزي، باستخدام قدرة الترجمة المدمجة في نماذج Whisper متعددة اللغات.
من يصون whisper.cpp اليوم؟
يُصان المشروع ضمن منظمة ggml-org على GitHub، التي أسسها المطور الأصلي Georgi Gerganov، بمساهمات من مئات المطورين من المجتمع. ولا يزال يُصدر بنشاط، حيث صدر الإصدار v1.9.3 في 20 أغسطس 2026.
هل يفصل whisper.cpp المتحدثين المختلفين في تسجيل ما؟
ليس بشكل أصلي. يقوم whisper.cpp بتفريغ الكلام إلى نص، لكنه لا يقوم بفصل المتحدثين بنفسه. لمعرفة "من قال ماذا"، ادمجه مع أداة فصل متحدثين مخصصة أو استخدم WhisperX، الذي يضيف فصل المتحدثين فوق تفريغات Whisper.
الخلاصة
ينجح whisper.cpp في تحقيق ما سعى إليه بالضبط: جلب نموذج تحويل الكلام إلى نص Whisper من OpenAI إلى أي جهاز قادر على تجميع لغة C/C++، دون الحاجة إلى Python أو CUDA أو بيئة تشغيل ثقيلة. وقابلية النقل هذه — التي تعمل دون تعديل من Raspberry Pi إلى جهاز Mac بمعالج Apple Silicon وحتى معالج رسومي متوافق مع Vulkan — ليس لها بديل مجاني قريب منها للتفريغ الصوتي المحلي بلا اتصال، وتجعل رخصة MIT من الآمن البناء عليها لمنتجات تجارية. وهو مجاني، ويُصان جيدًا، ويستخدم نفس أوزان النموذج التي يستخدمها Whisper الأصلي، لذا فإن الدقة لحجم نموذج معين تطابق ما نشرته OpenAI. أما الحالة التي لا يكون فيها الخيار الأقوى فهي خط معالجة يعتمد على Python أولًا ومعالج NVIDIA GPU فقط بحثًا عن أقصى أداء — إذ تفوز خلفية CTranslate2 في faster-whisper هناك، كما توثّق المقارنة المباشرة من PromptQuorum. أما بالنسبة لجميع الحالات الأخرى — المطورون الذين يستهدفون العتاد المدمج، أو Apple Silicon، أو التطبيقات متعددة المنصات، أو أي شخص يريد ملفًا تنفيذيًا واحدًا مستقلًا بدلًا من بيئة Python — فإن whisper.cpp نقطة انطلاق موثوقة جيدًا وبلا تكلفة.
المصادر
- whisper.cpp على GitHub — المستودع الرسمي: README، وتعليمات التثبيت، والرخصة، وسجل الإصدارات.
- إصدارات whisper.cpp — سجل الإصدارات، بما في ذلك v1.9.3 (20 أغسطس 2026).
- رخصة whisper.cpp — نص رخصة MIT.
- إعلان OpenAI عن Whisper — الإصدار الأصلي لنموذج Whisper عام 2022.
