النقاط الرئيسية
- طوّره Guillaume Klein في مارس 2023؛ ويُصان اليوم ضمن SYSTRAN على GitHub.
- رخصة MIT — استخدام وتعديل وإعادة توزيع مجانية، بما في ذلك الاستخدام التجاري.
- تفريغ صوتي أسرع بنحو 4 أضعاف تقريبًا من حزمة openai-whisper الأصلية، على نفس الجهاز.
- يدعم معالجات NVIDIA CUDA GPU (float16/int8) والمعالج المركزي (int8) كأنواع حساب.
- مرشح Silero VAD (كشف النشاط الصوتي) مدمج يتخطى المقاطع الصامتة تلقائيًا.
- أحدث إصدار مستقر: v1.2.1، صدر في 31 أكتوبر 2025.
📍 في جملة واحدة
faster-whisper هو إعادة تنفيذ مجانية برخصة MIT بلغة Python لنموذج تحويل الكلام إلى نص Whisper من OpenAI، طوّره Guillaume Klein ويُصان ضمن SYSTRAN، ويستخدم محرك الاستدلال CTranslate2 للتفريغ الصوتي بسرعة أكبر بنحو 4 أضعاف من التنفيذ الأصلي وباستهلاك ذاكرة أقل.
💬 بعبارات بسيطة
هي مكتبة Python تثبّتها عبر pip install لتحويل الصوت إلى نص على جهازك الخاص، باستخدام نفس نماذج Whisper التي درّبتها OpenAI لكن عبر محرك أسرع وأكفأ في استخدام الذاكرة — دون الحاجة لاستدعاء واجهة سحابية، ومع كشف تلقائي للصمت مدمج فيها.
📌ملاحظة: تركّز هذه المراجعة على faster-whisper كأداة مستقلة: تاريخها، وتثبيتها، وكود Python الحقيقي، ورخصتها، وحدودها الصريحة. للاطلاع على مقارنة أداء مباشرة مع whisper.cpp على Apple Silicon وNVIDIA GPU، راجع مقارنة whisper.cpp مقابل faster-whisper.
التاريخ: من طوّر faster-whisper ولماذا
أطلقت OpenAI نموذج تحويل الكلام إلى نص Whisper في سبتمبر 2022 كنموذج مفتوح الأوزان وُزِّع كحزمة Python (openai-whisper) مبنية على PyTorch، سهلة التشغيل لكنها غير مُحسَّنة افتراضيًا من حيث سرعة الاستدلال أو كفاءة الذاكرة.
طوّر Guillaume Klein برنامج faster-whisper في مارس 2023، ونشره في مستودع SYSTRAN/faster-whisper. بنى Klein برنامج faster-whisper فوق CTranslate2، وهو محرك استدلال بلغتي C++ وPython لنماذج Transformer، طُوِّر أصلًا ضمن مشروع الترجمة الآلية OpenNMT، والذي تستثمر فيه SYSTRAN — وهي شركة ذات تاريخ طويل في الترجمة الآلية — منذ فترة طويلة. يوفر CTranslate2 نوى CUDA مخصصة، وضغطًا كميًا INT8/FP16، وعمليات مدمجة لا يطبّقها استدلال PyTorch العام افتراضيًا.
كان الدافع هو كفاءة الاستدلال، وليس نموذجًا جديدًا. لا يدرّب faster-whisper أو يعدّل بنية نموذج Whisper — بل يحمّل نفس الأوزان التي درّبتها OpenAI، محوَّلة إلى صيغة نموذج CTranslate2، ويشغّلها عبر مسار تنفيذ محسَّن بشكل أكبر بكثير. النتيجة التي يبلّغ عنها المشروع هي تفريغ صوتي أسرع بنحو 4 أضعاف تقريبًا من تنفيذ openai-whisper الأصلي على نفس الجهاز، مع استهلاك أقل للذاكرة بفضل الضغط الكمّي int8، ودون فقدان دقة يمكن قياسه عند إعدادات متكافئة.
نما المشروع ليصبح غلاف Whisper الأكثر استخدامًا المبني على CTranslate2. أُضيف إليه مرشح Silero VAD مدمج للكشف عن مقاطع الصوت الصامتة وتخطيها تلقائيًا، وطوابع زمنية على مستوى الكلمة، ودعم للاستدلال الدفعي، مع الحفاظ على التركيز على كونه مكتبة سريعة وسهلة الدمج بدلًا من تطبيق كامل. ولا يزال يُصان ضمن منظمة SYSTRAN على GitHub، مع إصدارات تواكب إصدارات CTranslate2 الجديدة وتحديثات نماذج Whisper.
من طوّر faster-whisper؟
طوّر Guillaume Klein برنامج faster-whisper في مارس 2023، مبنيًا على محرك الاستدلال CTranslate2. ويُصان المشروع اليوم ضمن SYSTRAN على GitHub.
ما الذي يفعله faster-whisper فعليًا
يستقبل faster-whisper ملفًا صوتيًا كمُدخل وينتج تفريغًا نصيًا عبر فئة Python باسم WhisperModel، مستخدمًا نسخة من نموذج Whisper محوَّلة عبر CTranslate2 لتشغيل الاستدلال بسرعة أكبر بكثير من التنفيذ الأصلي المعتمد على PyTorch.
- تفريغ صوتي دفعي سريع. تحميل
WhisperModelمرة واحدة واستدعاء.transcribe()على ملف صوتي للحصول على مولّد لمقاطع بطوابع زمنية ومعلومات كشف اللغة. - كشف نشاط صوتي (VAD) مدمج. يؤدي ضبط
vad_filter=Trueإلى تشغيل نموذج Silero VAD قبل التفريغ الصوتي لإزالة المقاطع الصامتة تلقائيًا، مما يقلل الحوسبة المهدرة والنص المتوهَّم على الصمت. - أنواع حساب متعددة. اختيار
float16أوint8_float16على المعالج الرسومي، أوint8على المعالج المركزي، لمقايضة قدر بسيط من الدقة مقابل استهلاك ذاكرة أقل وسرعة أعلى. - طوابع زمنية على مستوى الكلمة. يؤدي تمرير
word_timestamps=Trueإلى إرجاع معلومات توقيت لكل كلمة إضافة إلى الطوابع الزمنية لكل مقطع. - الاستدلال الدفعي. تعالج فئة
BatchedInferencePipelineعدة مقاطع صوتية بالتوازي في دفعات لتحقيق إنتاجية أعلى على الملفات الأطول. - التفريغ والترجمة متعددة اللغات. مثل نماذج Whisper الأساسية، يمكن لـ faster-whisper التفريغ باللغة الأصلية أو الترجمة مباشرةً إلى الإنجليزية عبر معامل
task="translate".
تثبيت وتشغيل faster-whisper: خطوة بخطوة
يثبّت هذا الدليل faster-whisper عبر pip ويشغّل أول عملية تفريغ صوتي، باستخدام الصيغة الموثّقة في ملف README الخاص بالمشروع.
- 1تثبيت faster-whisper.
Why it matters: نفّذ `pip install faster-whisper` في بيئة Python (يُنصح بإصدار Python 3.9 فأعلى). يؤدي هذا إلى تثبيت المكتبة مع اعتمادية CTranslate2 الخاصة بها؛ ولا حاجة لتثبيت منفصل لأدوات CUDA عند الاستخدام على المعالج المركزي فقط. - 2(للمعالج الرسومي فقط) تأكيد توفر CUDA وcuDNN.
Why it matters: يتطلب تسريع المعالج الرسومي برنامج تشغيل NVIDIA يعمل وإعداد CUDA. يعتمد faster-whisper على دعم المعالج الرسومي في CTranslate2 — فإذا فشل `device="cuda"`، تحقق أولًا من أن `nvidia-smi` يتعرف على معالجك الرسومي بشكل صحيح قبل البحث عن الخلل في جانب Python. - 3تحميل نموذج.
Why it matters: في Python، نفّذ `from faster_whisper import WhisperModel` ثم `model = WhisperModel("large-v3", device="cuda", compute_type="float16")`. استبدل `"large-v3"` بـ `"tiny"` أو `"base"` أو `"small"` أو `"medium"` للحصول على نموذج أصغر وأسرع، أو استخدم `device="cpu"` مع `compute_type="int8"` إذا لم يكن لديك معالج رسومي. - 4تفريغ ملف صوتي.
Why it matters: نفّذ `segments, info = model.transcribe("audio.mp3", beam_size=5)`. يعيد هذا مولّدًا للمقاطع (وليس قائمة) — يجب التكرار عليه حتى يُنفَّذ التفريغ الصوتي فعليًا. - 5طباعة نص التفريغ.
Why it matters: كرّر على المقاطع: `for segment in segments: print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))`. يحمل كل مقطع وقت بداية ووقت نهاية والنص المفرَّغ لتلك المدة. - 6(اختياري) تفعيل ترشيح VAD.
Why it matters: مرّر `vad_filter=True` إلى `.transcribe()` لتخطي المقاطع الصامتة من الصوت تلقائيًا باستخدام نموذج Silero VAD المدمج، مما يقلل الحوسبة المهدرة في التسجيلات الطويلة ذات الاستراحات. - 7(اختياري) الحصول على طوابع زمنية على مستوى الكلمة.
Why it matters: مرّر `word_timestamps=True` إلى `.transcribe()` للحصول على توقيت لكل كلمة إضافة إلى التوقيت لكل مقطع، وهو مفيد لإنشاء الترجمات أو تمييز الكلمات أثناء نطقها.
أمثلة استخدام حقيقية
بالإضافة إلى دليل التثبيت الأساسي أعلاه، هذه أنماط استخدام شائعة مأخوذة من وثائق المشروع نفسها.
- pywhispercpp — ملاحظة: بالنسبة لـ faster-whisper نفسه، تتوفر
BatchedInferencePipelineالتي تُغلِّفWhisperModelلمعالجة عدة أجزاء صوتية بالتوازي، مما يحسّن الإنتاجية على الملفات الطويلة:from faster_whisper import BatchedInferencePipeline; batched_model = BatchedInferencePipeline(model=model). - التوافق مع distil-large-v3. يدعم faster-whisper بشكل أصلي إصدارات Whisper المُقطَّرة مثل distil-large-v3 — حمّله بنفس طريقة اسم نموذج قياسي لمقايضة قدر بسيط من الدقة مقابل استدلال أسرع بنحو 6 أضعاف.
from faster_whisper import WhisperModel
# معالج رسومي مع float16 (الأسرع، يتطلب CUDA + cuDNN)
model = WhisperModel("large-v3", device="cuda", compute_type="float16")
# معالج مركزي مع int8 (لا يتطلب معالجًا رسوميًا، أبطأ)
# model = WhisperModel("base", device="cpu", compute_type="int8")
segments, info = model.transcribe("audio.mp3", beam_size=5, vad_filter=True)
print(f"Detected language '{info.language}' with probability {info.language_probability:.2f}")
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
# ترجمة كلام غير إنجليزي مباشرةً إلى نص إنجليزي
segments, info = model.transcribe("french-audio.mp3", task="translate")
# طوابع زمنية على مستوى الكلمة للترجمات
segments, info = model.transcribe("audio.mp3", word_timestamps=True)
for segment in segments:
for word in segment.words:
print("[%.2fs -> %.2fs] %s" % (word.start, word.end, word.word))الرخصة والتكلفة
faster-whisper مرخّص بموجب رخصة MIT — يسمح ملف الرخصة في المستودع الرسمي بالاستخدام والتعديل وإعادة التوزيع مجانًا، بما في ذلك في منتجات مغلقة المصدر وتجارية، دون رسوم امتياز ودون أي التزام بذكر المصدر يتجاوز الاحتفاظ بإشعار الرخصة.
لا توجد فئة مدفوعة أو اشتراك أو رسوم ترخيص لـ faster-whisper نفسه. التكاليف الحقيقية الوحيدة هي العتاد الذي تشغّله عليه (أو مثيل معالج رسومي سحابي مؤجَّر)، ووقت التطوير الخاص بك إذا بنيت منتجًا فوقه. لا يوجد قياس للاستخدام، ولا مفتاح API، ولا ارتباط بمورّد معيّن.
كما أن CTranslate2، محرك الاستدلال الذي يعتمد عليه faster-whisper، مرخّص أيضًا بموجب MIT، وأوزان نموذج Whisper الأساسي مرخّصة أيضًا بشكل منفصل من قِبل OpenAI بموجب MIT — لذا فإن المكدس بأكمله (بيئة التشغيل، ومحرك الاستدلال، وأوزان النموذج) مرخّص بشكل متساهل للاستخدام التجاري.
هل faster-whisper مجاني للاستخدام التجاري؟
نعم. faster-whisper مرخّص بموجب MIT، واعتمادية CTranslate2 الخاصة به مرخّصة بموجب MIT، وأوزان نموذج Whisper التي يستخدمها مرخّصة أيضًا من OpenAI بموجب MIT. وتسمح الثلاثة جميعًا بالاستخدام والتعديل وإعادة التوزيع التجاري دون رسوم.
ما لا يصلح له faster-whisper
faster-whisper هو مكتبة Python سريعة للتفريغ الصوتي، وليس منتجًا كاملًا للذكاء الاصطناعي الحواري ولا أداة نشر خالية من Python. وهو الأداة الخاطئة في الحالات التالية:
- النشر الخالي من Python أو كملف تنفيذي متعدد المنصات. faster-whisper مكتبة Python لها اعتمادية أصلية على CTranslate2 — وهي غير مصممة لتكون ملفًا تنفيذيًا واحدًا خاليًا من الاعتماديات كما هو الحال مع whisper.cpp. إذا كنت بحاجة لاستهداف Raspberry Pi أو تطبيق iOS أو صفحة WebAssembly دون بيئة Python، فإن whisper.cpp هو الخيار الأنسب.
- تسريع المعالج الرسومي على Apple Silicon. تدعم خلفية CTranslate2 في faster-whisper المعالج المركزي وNVIDIA CUDA، لكن ليس لديها أي مسار تسريع لمعالج Apple Metal الرسومي — على جهاز Mac، يعود faster-whisper إلى الاستدلال على المعالج المركزي فقط. وجد قياس أداء PromptQuorum أن whisper.cpp بتسريع Metal أسرع بشكل ملحوظ من faster-whisper على المعالج المركزي فقط في Apple Silicon.
- فصل المتحدثين ("من قال ماذا"). يقوم faster-whisper بتفريغ ما قيل، لكنه لا يفصل أو يصنّف بشكل أصلي المتحدثين المختلفين في تسجيل متعدد الأشخاص. لفصل المتحدثين، ادمج نتائج التفريغ مع أداة مخصصة، أو استخدم WhisperX، الذي يضيف فصل المتحدثين فوق تفريغات Whisper.
- إعداد بلا أي تعقيد للمستخدمين غير التقنيين. faster-whisper مكتبة Python موجهة للمطورين الذين يبنون خطوط معالجة، وليست تطبيقًا للمستخدم النهائي بواجهة رسومية. من يريد تطبيق تفريغ بنقرة واحدة ينبغي أن يبحث عن تطبيق مبني فوق faster-whisper أو whisper.cpp، أو خدمة تفريغ مستضافة بدلًا من ذلك.
بدائل faster-whisper
whisper.cpp
- الأنسب لـ:
- النشر الخالي من Python والمتعدد المنصات — Apple Silicon، الأجهزة المدمجة، الهاتف المحمول
- الرخصة:
- MIT
WhisperX
- الأنسب لـ:
- عند الحاجة إلى طوابع زمنية على مستوى الكلمة وفصل متحدثين مبنيَّين فوق Whisper/faster-whisper
- الرخصة:
- BSD-2-Clause
insanely-fast-whisper
- الأنسب لـ:
- أقصى إنتاجية لمعالج رسومي عبر Hugging Face Transformers وFlash Attention، على معالجات رسومية حديثة جدًا
- الرخصة:
- Apache-2.0
واجهة OpenAI Whisper API
- الأنسب لـ:
- الفرق التي تفضّل واجهة سحابية مُدارة على الاستضافة الذاتية، مقابل رسوم حسب الاستخدام
- الرخصة:
- ملكية خاصة (واجهة مدفوعة)
الأسئلة الشائعة
ما هو faster-whisper؟
faster-whisper هو إعادة تنفيذ مجانية برخصة MIT بلغة Python لنموذج تحويل الكلام إلى نص Whisper من OpenAI، طوّره Guillaume Klein ويُصان ضمن SYSTRAN، ويستخدم محرك الاستدلال CTranslate2 لتحقيق تفريغ صوتي أسرع بشكل ملحوظ من التنفيذ الأصلي.
هل faster-whisper مجاني؟
نعم. faster-whisper مرخّص بموجب MIT، دون فئة مدفوعة أو اشتراك أو رسوم استخدام. اعتمادية CTranslate2 وأوزان نموذج Whisper الأساسي مرخّصة أيضًا بموجب MIT.
هل أحتاج إلى معالج رسومي لتشغيل faster-whisper؟
لا. يدعم faster-whisper الاستدلال على المعالج المركزي عبر الضغط الكمّي int8، لكنه يعمل بأقصى سرعة على معالج NVIDIA GPU مع CUDA باستخدام أنواع الحساب float16 أو int8_float16. وليس لديه أي مسار تسريع لمعالج Apple Metal الرسومي، لذا يعمل على جهاز Mac على المعالج المركزي فقط.
ما مقدار سرعة faster-whisper مقارنة بـ OpenAI Whisper الأصلي؟
يبلّغ المشروع عن تفريغ صوتي أسرع بنحو 4 أضعاف تقريبًا من حزمة openai-whisper الأصلية على نفس الجهاز، مع استهلاك أقل للذاكرة بفضل الضغط الكمّي int8، ودون فقدان ملحوظ للدقة عند إعدادات متكافئة.
ما الفرق بين faster-whisper وwhisper.cpp؟
faster-whisper هي مكتبة Python مبنية على CTranslate2، مُحسَّنة بشكل أساسي لأداء معالجات NVIDIA GPU ضمن خطوط معالجة Python. أما whisper.cpp فهو تطبيق خالص بلغة C/C++ دون اعتماد على Python، مصمَّم لقابلية النقل بين المعالج المركزي وApple Metal وCUDA والأجهزة المدمجة. راجع المقارنة التفصيلية من PromptQuorum للحصول على أرقام خاصة بكل منصة.
هل يدعم faster-whisper كشف النشاط الصوتي؟
نعم. تمرير vad_filter=True إلى .transcribe() يشغّل نموذج Silero VAD مدمجًا يكشف مقاطع الصوت الصامتة ويتخطاها تلقائيًا قبل التفريغ الصوتي.
هل يمكن لـ faster-whisper إنتاج طوابع زمنية على مستوى الكلمة؟
نعم. تمرير word_timestamps=True إلى .transcribe() يعيد أوقات بداية ونهاية لكل كلمة إضافة إلى الطوابع الزمنية الافتراضية لكل مقطع، وهو مفيد لإنشاء الترجمات.
هل يترجم faster-whisper الصوت إلى الإنجليزية؟
نعم. تمرير task="translate" إلى .transcribe() يقوم بتفريغ الكلام غير الإنجليزي وترجمته مباشرةً إلى نص إنجليزي، باستخدام قدرة الترجمة المدمجة في نماذج Whisper متعددة اللغات.
من يصون faster-whisper اليوم؟
طُوِّر المشروع بواسطة Guillaume Klein في مارس 2023 ويُصان اليوم ضمن منظمة SYSTRAN على GitHub. أحدث إصدار مستقر له هو v1.2.1، الصادر في 31 أكتوبر 2025.
الخلاصة
ينجح faster-whisper في تحقيق هدفه الأساسي: جعل نموذج Whisper من OpenAI أسرع بشكل ملحوظ وأخف على الذاكرة لمطوري Python، دون تغيير ما ينتجه النموذج. توفر خلفية CTranslate2 أداءً أعلى بنحو 4 أضعاف تقريبًا من التنفيذ الأصلي، ومرشح Silero VAD المدمج راحة عملية حقيقية للصوت الواقعي الذي يحتوي على صمت، وتجعل رخصة MIT من الآمن البناء عليها لمنتجات تجارية. وهو مجاني، ويُصان جيدًا، وينتج نفس جودة التفريغ الصوتي مثل Whisper الأصلي لحجم نموذج معين. أما الحالة التي لا يكون فيها الخيار الأقوى فهي النشر الخالي من Python أو المُسرَّع بمعالج رسومي على Apple Silicon — إذ يفوز هناك دعم Metal والملف التنفيذي الخالي من الاعتماديات في whisper.cpp، كما توثّق المقارنة المباشرة من PromptQuorum. أما لكل من يبني خط معالجة Python لتحويل الكلام إلى نص على معالج NVIDIA GPU أو المعالج المركزي ويريد السرعة دون مغادرة نظام Python البيئي، فإن faster-whisper نقطة انطلاق موثوقة جيدًا وبلا تكلفة.
المصادر
- faster-whisper على GitHub — المستودع الرسمي: README، وتعليمات التثبيت، والرخصة، وسجل الإصدارات.
- إصدارات faster-whisper — سجل الإصدارات، بما في ذلك v1.2.1 (31 أكتوبر 2025).
- رخصة faster-whisper — نص رخصة MIT.
- CTranslate2 على GitHub — محرك الاستدلال الذي يُبنى عليه faster-whisper.
- إعلان OpenAI عن Whisper — الإصدار الأصلي لنموذج Whisper عام 2022.
