النقاط الرئيسية
- whisper.cpp هو أفضل خيار لتحويل الكلام إلى نص محليًا على Apple Silicon. يستغل منفذ C/C++ إمكانات Core ML وApple Metal للتسريع عبر الأجهزة — large-v3 بسرعة ~10 أضعاف الزمن الفعلي على M5 Pro، دون أي اعتماد على Python.
- faster-whisper هو أفضل خيار لتحويل الكلام إلى نص محليًا لبطاقات NVIDIA GPU وخطوط أنابيب Python. يقلل تكميم int8 من CTranslate2 من VRAM بنسبة ~40% ويزيد الإنتاجية بنسبة ~4 أضعاف مقارنةً بالتطبيق الأصلي لـOpenAI — large-v3 بسرعة ~12 ضعف الزمن الفعلي على RTX 4070 باستخدام ~2.5 جيجابايت فقط من VRAM.
- تستخدم كلتا الأداتين أوزان نموذج Whisper ذاتها من OpenAI. معدل خطأ الكلمات (WER) متطابق — الفرق يكمن كليًا في أداء وقت التشغيل ومسار التكامل، لا في دقة النسخ.
- يوفر Whisper large-v3 أفضل دقة بمعدل 2.5% WER بالإنجليزية. بالنسبة لمعظم حالات الاستخدام الإنتاجية، يوفر Whisper small (3.4% WER، 2 جيجابايت RAM) أو medium (2.9% WER، 5 جيجابايت RAM) توازنًا أفضل بين السرعة والدقة.
- النسخ في الوقت الفعلي ممكن مع كلتا الأداتين — whisper.cpp عبر علامة
--stream، وfaster-whisper عبر خط أنابيب VAD (الكشف عن نشاط الصوت) المدمج. التأخير العملي 0.5–2 ثانية خلف الكلام الحي حسب حجم النموذج. - يعمل whisper.cpp على CPU وMetal وCUDA وVulkan — مما يجعله الخيار الوحيد للاستخدام المدمج متعدد المنصات (Raspberry Pi، إعدادات GPU على Windows، خوادم ARM). يدعم faster-whisper CPU وCUDA فقط (بدون Metal على Mac).
- لـRaspberry Pi وLinux المدمج، whisper.cpp tiny/base على CPU هو السقف العملي — tiny بسرعة ~15 ضعف الزمن الفعلي على Pi 5، وbase بسرعة ~6 أضعاف. كلاهما يتناسب مع 1 جيجابايت RAM.
حقائق سريعة
- كلتا الأداتين: تستندان إلى نموذج Whisper مفتوح المصدر من OpenAI (رخصة MIT). دقة متطابقة — أوقات تشغيل مختلفة.
- whisper.cpp: مكتوب بلغة C/C++ من قِبَل Georgi Gerganov. يدعم CPU (AVX2/NEON) وCUDA وMetal (Apple) وVulkan. لا يتطلب Python.
- faster-whisper: مكتبة Python تستخدم CTranslate2. تدعم CPU (int8) وCUDA. لا دعم لـApple Metal.
- أحجام نموذج Whisper: tiny (39M)، وbase (74M)، وsmall (244M)، وmedium (769M)، وlarge-v3 (1.55B). جميعها بتنسيق ggml / CTranslate2.
- أفضل نموذج لمعظم حالات الاستخدام: Whisper small — 3.4% WER، يعمل في 2 جيجابايت RAM، 6 أضعاف الزمن الفعلي على معالج حديث.
- معيار RTX 4070 (large-v3): faster-whisper ~12 ضعف الزمن الفعلي؛ whisper.cpp CUDA ~8 أضعاف. يفوز faster-whisper على NVIDIA.
- معيار M5 Pro (large-v3): whisper.cpp Metal ~10 أضعاف الزمن الفعلي؛ faster-whisper CPU فقط ~3 أضعاف. يفوز whisper.cpp على Apple.
لماذا تحويل الكلام إلى نص محليًا؟
تُحصّل خدمات STT السحابية (Google Speech-to-Text وAWS Transcribe وAzure Speech) رسومًا مقابل كل دقيقة صوتية — عادةً 0.006–0.024 دولار/دقيقة — وترسل الصوت إلى خوادم بعيدة. بالنسبة للتطبيقات الحساسة للخصوصية (الإملاء الطبي والتسجيلات القانونية ومقابلات الصحفيين والاجتماعات المؤسسية)، يُزيل النسخ المحلي التعرض للبيانات كليًا.
- الخصوصية: لا يغادر الصوت جهازك قط. لا حاجة لاتفاقية معالجة بيانات للامتثال لـGDPR — المعالجة تتم محليًا.
- التكلفة: صفر رسوم لكل دقيقة. مطوّر ينسخ 8 ساعات اجتماعات أسبوعيًا يوفر 120–480 دولارًا شهريًا مقارنةً بأسعار STT السحابية.
- بدون اتصال: يعمل على الطائرات وفي المنشآت الآمنة والمناطق دون إنترنت موثوق. لا إدارة لمفاتيح API.
- زمن الاستجابة: لا ذهاب وإياب لرفع/تنزيل البيانات. لواجهات الصوت في الوقت الفعلي، يقلل المعالجة المحلية زمن استجابة STT من 300–800 مللي ثانية (سحابة) إلى 50–300 مللي ثانية.
- التخصيص: ضبط دقيق على المفردات الخاصة بالمجال. شغّل أي حجم نموذج يناسب جهازك.
- التكامل مع Home Assistant: تشغيل Whisper محليًا يعني أن كلمات التنبيه والأوامر الصوتية لا تغادر شبكتك المنزلية قط. راجع Whisper المحلي في Home Assistant ← لإعداد الإضافة التي تحل محل STT السحابية كليًا.
أحجام نموذج Whisper — الأساس لكلتا الأداتين
تستخدم كلٌّ من whisper.cpp وfaster-whisper أوزان نموذج Whisper ذاتها، المحوَّلة إلى تنسيقاتها المعنية (GGML لـwhisper.cpp، وCTranslate2 لـfaster-whisper). اختر حجم النموذج بناءً على ميزانية VRAM/RAM ومتطلبات الدقة لديك.
| النموذج | المعاملات | VRAM / RAM | WER إنجليزي | معامل السرعة (مقابل الزمن الفعلي على RTX 4070) |
|---|---|---|---|---|
| tiny | 39M | ~1 GB | 7.6% | ~32× |
| base | 74M | ~1 GB | 5.0% | ~16× |
| small | 244M | ~2 GB | 3.4% | ~6× |
| medium | 769M | ~5 GB | 2.9% | ~2× |
| large-v3 | 1.55B | ~10 GB | 2.5% | 1× (مرجع) |
| distil-large-v3 | ~756M | ~4 GB | ~2.6% | ~6× |
قيم WER (معدل خطأ الكلمات) من ورقة Whisper البحثية على مجموعة اختبار LibriSpeech النظيفة. أقل أفضل. معاملات السرعة لـfaster-whisper int8 على RTX 4070. قيم distil-large-v3 من ورقة Distil-Whisper البحثية.
Distil-Whisper: البديل الأسرع
distil-whisper/distil-large-v3 هو نسخة مُقطَّرة من large-v3 بمعاملات أقل بنسبة ~50%، تعمل بسرعة أعلى ~6 أضعاف مع الحفاظ على WER ضمن ~1% من الأصل.** إنه الخيار الصحيح حين تكون سرعة النسخ أهم من استخلاص آخر جزء من الدقة. يعمل distil-large-v3 مع faster-whisper (دعم أصيل لـCTranslate2) وwhisper.cpp (عبر تحويل تنسيق GGML)، مما يجعله متكاملًا مع أي وقت تشغيل تستخدمه بالفعل.
- المعاملات: ~756M — تقريبًا نصف 1.55B لـlarge-v3، يتناسب مع ~4 جيجابايت VRAM بدلًا من ~10 جيجابايت.
- السرعة: ~6 أضعاف الزمن الفعلي على RTX 4070 (مقابل 1× مرجعي لـlarge-v3) — مقارب لنموذج medium في السرعة مع دقة قريبة من large-v3.
- WER: ~2.6% بالإنجليزية — أعلى بـ~0.1% فقط من 2.5% لـlarge-v3. في الممارسة العملية الفرق غير محسوس في الكلام الطبيعي.
- التوافق: يعمل مع faster-whisper بشكل أصيل (
WhisperModel("distil-large-v3", device="cuda", compute_type="int8")). لـwhisper.cpp، حوّل إلى تنسيق GGML باستخدام سكريبت تحويل GGML لـdistil-whisper. - الأفضل لـ: مهام النسخ الدفعي، ونشر الخوادم ذات VRAM المحدودة، وأي حالة استخدام تريد فيها جودة large-v3 بسرعة نموذج medium.
- غير موصى به لـ: النسخ متعدد اللغات — distil-large-v3 للإنجليزية فقط. للغات أخرى، استخدم large-v3 أو medium.
whisper.cpp — منفذ C/C++
whisper.cpp (من Georgi Gerganov) هو إعادة تنفيذ نقية بلغة C/C++ لنموذج Whisper من OpenAI، مُحسَّنة للاستدلال منخفض الموارد ومتعدد المنصات. لا يتطلب Python ولا مجموعة أدوات CUDA، ويعمل على أي جهاز تقريبًا — من Raspberry Pi إلى Apple M5 Pro وإعدادات Windows CUDA.
- دعم المنصات: CPU (AVX2، AVX512، ARM NEON)، Apple Metal (Core ML)، CUDA (NVIDIA)، Vulkan (GPU AMD/Intel)، OpenCL.
- ميزة Apple Silicon: يُصدّر whisper.cpp النماذج بتنسيق Core ML، مما يتيح الاستدلال على Apple Neural Engine. يعمل Large-v3 بسرعة ~10 أضعاف الزمن الفعلي على M5 Pro عبر Metal — أسرع من أي ذهاب وإياب سحابي.
- التثبيت: استنسخ المستودع، شغّل
make(أوcmake). تتوفر ثنائيات مُجمَّعة مسبقًا للمنصات الشائعة. لا اعتماد على Python. - تنزيل النموذج:
bash ./models/download-ggml-model.sh base.en— ينزّل ملف النموذج بتنسيق GGML (~142 ميغابايت لـbase). - مثال CLI:
./main -m models/ggml-base.bin -f audio.wav— ينسخ ملف WAV إلى الإخراج القياسي. أضف-l arللعربية. - وضع stream في الوقت الفعلي:
./stream -m models/ggml-base.bin --step 3000 --length 10000— ينسخ من الميكروفون بأجزاء من 3 ثوانٍ. - غلاف Python: يوفر pywhispercpp ارتباط Python لـwhisper.cpp، مما يتيح الاستخدام في خطوط أنابيب Python دون التضحية بتسريع Metal.
- القيد: لا VAD (الكشف عن نشاط الصوت) أصيل. يتطلب وضع stream ضبط معاملات
--stepو--lengthلحالة الاستخدام.
# Build from source (macOS / Linux)
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
make -j4
# Download a model
bash ./models/download-ggml-model.sh large-v3
# Transcribe a file
./main -m models/ggml-large-v3.bin -f recording.wav
# Enable Metal on Apple Silicon (Core ML)
make -j4 WHISPER_COREML=1
./main -m models/ggml-large-v3-encoder.mlmodelc -f recording.wavwhisper.cpp — أحدث إصدار وتحديثات (يونيو 2026)
أحدث إصدار من whisper.cpp هو v1.8.6، الصادر في 2 يونيو 2026. يواصل خط الصيانة v1.8.x (الإصداران v1.8.4 وv1.8.5) مركّزًا على VAD المتدفق واستقرار الخادم والأداء — لا دعم لنماذج جديدة. الإصدار الحالي من faster-whisper هو v1.2.1 (31 أكتوبر 2025). لا تزال كلتا أداتَي التشغيل تحمّلان أوزان OpenAI Whisper ذاتها؛ ولم يتغير أي شيء يخص دقة النسخ في 2026.
- whisper.cpp v1.8.6 (2 يونيو 2026): إعادة تنفيذ
ffmpeg-transcodeلفك تشفير FFmpeg الاختياري بوضوح أكبر للصوت المضغوط (MP3، M4A) إضافةً إلى إصلاح لمسار أمثلة CI. - whisper.cpp v1.8.5 (مايو 2026): تحسينات على VAD المتدفق (الكشف عن نشاط الصوت)، وإصلاحات لتسريب معاملات الخادم وطوابع توقيت الرموز، وإصلاحات لتسرب الذاكرة في ارتباطات Ruby وVAD.
- whisper.cpp v1.8.4 (19 مارس 2026): أحدث مزامنة لـ
ggmlمع مكاسب أداء واسعة، وراية جديدة-g/--gpu-device(واختيار جهازGGML_CUDA) لاختيار GPU، وإصلاحات لالتفاف مقاطع UTF-8. - VAD الأصيل مدمج الآن في whisper.cpp. أضافت الإصدارات الأخيرة مسارًا أصيلًا للكشف عن نشاط الصوت، مما يقلّص ميزةً طالما تمتّع بها faster-whisper — وإن ظل تكامل Silero VAD في faster-whisper أجهز للاستخدام.
- faster-whisper v1.2.1 (31 أكتوبر 2025): الإصدار المستقر الحالي؛ يجلبه
pip install faster-whisper. لا إصدار في 2026 حتى هذا التحديث — المشروع مستقر وليس متوقفًا. - لا نموذج Whisper أساسي جديد في 2026. يظل large-v3 وdistil-large-v3 أحدث الأوزان، لذا فإن «تحديثات» أي من الأداتين هي تغييرات في وقت التشغيل والأدوات، وليست تغييرات في الدقة.
faster-whisper — منفذ CTranslate2
faster-whisper (من SYSTRAN) هي مكتبة Python تُعيد تنفيذ استدلال Whisper باستخدام CTranslate2 — محرك استدلال C++ عالي الكفاءة يدعم تكميم int8، مما يقلل استخدام VRAM ويزيد الإنتاجية. على بطاقات NVIDIA GPU، يُعدّ faster-whisper أسرع تطبيق محلي لـWhisper متاح.
- دعم المنصات: CPU (تكميم int8) وNVIDIA CUDA GPU. لا دعم لـApple Metal — يعمل على CPU فقط على Mac.
- ميزة int8: يقلل تكميم int8 من CTranslate2 من VRAM بنسبة ~40% ويزيد سرعة الاستدلال بنسبة ~2 ضعف مقارنةً بـfloat16، مع تأثير WER ضئيل (< 0.1% مطلق).
- التثبيت:
pip install faster-whisper— لا تجميع مطلوب. يتطلب دعم CUDA نسخة CUDA 11.8+ وcuDNN 8.x. - VAD مدمج: يتضمن faster-whisper تكاملًا مع Silero VAD، الذي يتخطى تلقائيًا أجزاء الصوت الصامتة — أمر بالغ الأهمية لخطوط أنابيب النسخ في الوقت الفعلي.
- Python أصيل: تجعل واجهة برمجة Python المباشرة من السهل التكامل مع النماذج اللغوية الكبيرة ومكتبات معالجة الصوت وأطر الويب.
- السرعة: large-v3 int8 على RTX 4070 يعمل بسرعة ~12 ضعف الزمن الفعلي ويستخدم ~2.5 جيجابايت VRAM. CPU int8 يصل إلى ~20 ضعف الزمن الفعلي للنموذج tiny.
- المعالجة الدفعية: يدعم faster-whisper الاستدلال الدفعي لمعالجة أرشيفات صوتية كبيرة بكفاءة.
- القيد: لا دعم Metal على Mac — يعمل على CPU فقط على Apple Silicon، محققًا ~3 أضعاف الزمن الفعلي مع large-v3 مقابل ~10 أضعاف لـwhisper.cpp مع Metal.
from faster_whisper import WhisperModel
# Load model (downloads automatically on first run)
model = WhisperModel("large-v3", device="cuda", compute_type="int8")
# Transcribe
segments, info = model.transcribe("audio.wav", beam_size=5)
print(f"Detected language: {info.language} (probability: {info.language_probability:.2f})")
for segment in segments:
print(f"[{segment.start:.2f}s → {segment.end:.2f}s] {segment.text}")الحصول على ggml-base.bin عبر pip (إعداد Python)
**لاستخدام ggml-base.bin من Python عبر pip، ثبّت ارتباط pywhispercpp — pip install pywhispercpp — ثم حمّل Model("base")، الذي ينزّل ggml-base.bin تلقائيًا في أول تشغيل.** لا يوجد pip install whisper.cpp؛ فـpywhispercpp هو غلاف pip حول محرك whisper.cpp بلغة C/C++، وهو يحافظ على تسريع Metal وCUDA. يُنزَّل ملف نموذج GGML (ggml-base.bin، ~142 ميغابايت) بشكل منفصل من Hugging Face ويُخزَّن محليًا — يوفّر حزمة pip محرك الاستدلال، لا الأوزان.
📍 في جملة واحدة
شغّل pip install pywhispercpp، ثم يجلب Model("base") في Python ملف ggml-base.bin ويخزّنه تلقائيًا في أول استخدام.
💬 بعبارات بسيطة
يثبّت pip البرنامج (pywhispercpp)؛ أما ملف النموذج ggml-base.bin فهو تنزيل منفصل بحجم ~142 ميغابايت يحدث أول مرة تحمّل فيها نموذج «base» — أو تجلبه يدويًا عبر السكربت download-ggml-model.sh.
- ثبّت الارتباط:
pip install pywhispercpp. لتسريع NVIDIA CUDA، ابنِ عبرGGML_CUDA=1 pip install git+https://github.com/absadiki/pywhispercpp. - تنزيل ggml-base.bin تلقائيًا:
from pywhispercpp.model import Modelثمmodel = Model("base")ينزّلggml-base.binمن Hugging Face (ggerganov/whisper.cpp) في أول تشغيل ويخزّنه. استخدم"base.en"للنسخة الإنجليزية فقط. - تنزيل يدوي (مسار CLI، دون pip): من مستودع whisper.cpp مستنسخ، يحفظ
bash ./models/download-ggml-model.sh baseالملف فيmodels/ggml-base.bin— وهو الملف ذاته الذي يجلبه pywhispercpp. - تنزيل مباشر:
curl -L -o ggml-base.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.binيجلب النموذج دون سكربت. استبدلbaseبـtinyأوsmallأوmediumأوlarge-v3. - لا تخلط بين الحزم:
pip install openai-whisperيثبّت Whisper الأصلي من OpenAI بـPyTorch (يستخدم نقاط تحقق.pt، لاggml-base.bin). وpip install faster-whisperيستخدم تنسيق CTranslate2. وحدهpywhispercppيستهلك ملفات GGML من نوعggml-*.bin. - أين يوجد الملف: يخزّن pywhispercpp نماذج GGML المنزّلة في ذاكرة التخزين المؤقت للوحدة (أو مسار تمرّره عبر
Model("base", models_dir="..."))، بحيث يُعاد استخدامggml-base.binذاته عبر عمليات التشغيل — دون إعادة تنزيل.
# 1. Install the pip binding for whisper.cpp
pip install pywhispercpp
# 2. ggml-base.bin downloads automatically on first use
# from pywhispercpp.model import Model
# model = Model("base") # fetches & caches ggml-base.bin (~142 MB)
# for seg in model.transcribe("audio.wav"):
# print(seg.text)
# --- Or get ggml-base.bin manually (no pip) ---
# From a cloned whisper.cpp checkout:
bash ./models/download-ggml-model.sh base # -> models/ggml-base.bin
# Or download the file directly from Hugging Face:
curl -L -o ggml-base.bin \
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.binمقارنة مباشرة: جدول معايير الأداء
جميع المعايير تستخدم نموذج large-v3 ما لم يُذكر خلاف ذلك. السرعة تُقاس بمضاعفات الزمن الفعلي (مثلًا، 10× تعني نسخ 60 دقيقة صوت في 6 دقائق). أرقام VRAM لتشغيل GPU؛ أرقام RAM لتشغيل CPU.
📍 في جملة واحدة
على Apple Silicon، يشغّل whisper.cpp مع Metal نموذج large-v3 بسرعة ~10 أضعاف الزمن الفعلي؛ وعلى بطاقات NVIDIA GPU، يصل faster-whisper مع int8 إلى ~12 ضعف الزمن الفعلي — كل أداة تفوز بشكل حاسم على منصتها المستهدفة.
💬 بعبارات بسيطة
على Mac اختر whisper.cpp (يستخدم Apple Neural Engine)، وعلى Windows/Linux مع NVIDIA GPU اختر faster-whisper (يعالج الصوت بسرعة 12 ضعف الزمن الفعلي مع 40% أقل من ذاكرة GPU).
| المقياس | whisper.cpp (large-v3) | faster-whisper (large-v3) |
|---|---|---|
| المنصة / اللغة | C/C++ (متعدد المنصات) | Python (CTranslate2) |
| دعم GPU | CUDA، Metal، Vulkan | CUDA فقط |
| تحسين CPU | AVX2، ARM NEON | تكميم int8 |
| السرعة — RTX 4070، large-v3 | ~8 أضعاف الزمن الفعلي | ~12 ضعف الزمن الفعلي ✓ |
| السرعة — M5 Pro، large-v3 | ~10 أضعاف الزمن الفعلي (Metal) ✓ | ~3 أضعاف الزمن الفعلي (CPU فقط) |
| السرعة — CPU فقط (x86)، base | ~15 ضعف الزمن الفعلي | ~20 ضعف الزمن الفعلي ✓ |
| VRAM — large-v3، GPU | ~3 GB | ~2.5 GB (int8) ✓ |
| تكامل Python | يتطلب غلافًا (pywhispercpp) | أصيل ✓ |
| VAD (الكشف عن الصمت) | يدوي (ضبط --step) | مدمج (Silero VAD) ✓ |
| بث في الوقت الفعلي | نعم (علامة --stream) ✓ | نعم (خط أنابيب VAD) |
| دقة WER (large-v3) | 2.5% (متطابق) | 2.5% (متطابق) |
| الاعتماد على Python | لا شيء ✓ | Python 3.8+ |
| Raspberry Pi / مدمج | نعم — ثنائي C ✓ | محدود — حمل زائد Python |
| تنسيقات الإخراج | SRT، VTT، JSON، CSV، txt | كائنات Python (start، end، text) |
يكتب whisper.cpp الإخراج مباشرةً بتنسيقات الترجمة والنسخ القياسية (SRT، VTT، JSON، CSV، txt) — مثالي لسير عمل الترجمات حيث تحتاج إلى ملف على القرص دون كود إضافي. يُعيد faster-whisper مولّد Python من كائنات الأجزاء بسمات start وend وtext — مثالي لسلسلة خطوط أنابيب النماذج اللغوية الكبيرة، حيث تمرر نص الجزء مباشرةً إلى نموذج لاحق دون كتابة ملفات وسيطة. لتوليد الترجمات، whisper.cpp أبسط. لخطوط الأنابيب التي تعالج الأجزاء برمجيًا، faster-whisper أبسط.
إعداد النسخ في الوقت الفعلي
ينسخ النسخ في الوقت الفعلي الصوتَ بأجزاء فور وصوله من الميكروفون، منتجًا نصًا مع تأخير قصير خلف الكلام. كلتا الأداتين تدعم هذا، لكن مع موازنات مختلفة.
- وضع stream في whisper.cpp: شغّل
./stream -m models/ggml-small.bin --step 3000 --length 10000 -t 4. يعالج أجزاء من 3 ثوانٍ؛ تأخير ~0.5–1.5 ثانية مع النموذج small. لا Python مطلوب. - خط أنابيب VAD في faster-whisper: استخدم
vad_filter=Trueفيmodel.transcribe(). يقسّم Silero VAD الصوت تلقائيًا عند حدود الصمت — أجزاء أكثر طبيعية من النوافذ ذات الطول الثابت. - التأخير العملي: 0.5–2 ثانية خلف الكلام الحي مع النماذج small أو medium. استخدم tiny لأقل تأخير (< 0.5 ثانية، لكن WER أعلى).
- اختيار النموذج للوقت الفعلي: small أو base هو النقطة المثلى العملية — سريع بما يكفي لمواكبة الكلام، ودقيق بما يكفي للصوت النظيف. تجنب large-v3 للوقت الفعلي ما لم يكن لديك GPU مخصص.
- إدخال الميكروفون: يقرأ whisper.cpp الصوت الخام عبر SDL2 أو portaudio. يقرأ faster-whisper مصفوفات الصوت من أي مكتبة صوت Python (sounddevice، وpyaudio، وsoundfile).
- الاستقرار: قد ينتج وضع stream في whisper.cpp رموزًا متكررة ("هلوسة" لحشوات قصيرة) عند الصمت. اقمعها بـ
--suppress-blankو--no-speech-threshold.
Apple Silicon: يفوز whisper.cpp
على أجهزة Mac بـM1 وM2 وM3 وM4 وM5، whisper.cpp مع تسريع Core ML / Metal هو الأداة الصحيحة — بلا شك. لا يوجد دعم Metal في faster-whisper ويعمل على CPU فقط على Mac، محققًا ~3 أضعاف الزمن الفعلي مع large-v3. يحقق whisper.cpp مع Metal ~10 أضعاف الزمن الفعلي على M5 Pro — ميزة سرعة 3 أضعاف.
- تصدير Core ML: شغّل
./models/generate-coreml-model.sh large-v3لتصدير المشفّر بتنسيق Core ML. هذا يُفرّغ استدلال المشفّر على Apple Neural Engine. - معيار M5 Pro (large-v3، Metal): ~10 أضعاف الزمن الفعلي. تُنسخ 60 دقيقة من الصوت في ~6 دقائق. ملاحظة: صدر M5 Pro في مارس 2026 — هذه معايير مبكرة من المجتمع. قد يتحسن الأداء مع تحديثات whisper.cpp التي تُحسّن M5 Neural Engine.
- معيار M3 MacBook Air (large-v3، Metal): ~7 أضعاف الزمن الفعلي. 60 دقيقة في ~8.5 دقائق.
- الذاكرة: الذاكرة الموحدة تعني عدم وجود VRAM منفصلة — يمكن لـM5 Pro بسعة 16 جيجابايت تشغيل large-v3 (~3 جيجابايت) بسهولة بجانب عمليات أخرى.
- faster-whisper على Mac: CPU فقط، int8. Large-v3 بسرعة ~3 أضعاف الزمن الفعلي. مناسب للنسخ الدفعي الليلي لكن ليس للوقت الفعلي أو سير العمل الحساس للوقت.
- التوصية: استخدم whisper.cpp لجميع أعمال STT على Mac. أضف pywhispercpp إذا احتجت للتكامل مع Python مع الاحتفاظ بتسريع Metal.
NVIDIA GPU: يفوز faster-whisper
على Windows وLinux مع بطاقات NVIDIA GPU، faster-whisper هو الخيار المتفوق. خلفيته CUDA من CTranslate2 أكثر تحسينًا من مسار CUDA في whisper.cpp — ~12 ضعفًا مقابل ~8 أضعاف الزمن الفعلي مع large-v3 على RTX 4070، مع استخدام أقل لـVRAM.
- معيار RTX 4070 (12 جيجابايت) (large-v3 int8): ~12 ضعف الزمن الفعلي، ~2.5 جيجابايت VRAM.
- معيار RTX 3060 (12 جيجابايت) (large-v3 int8): ~8 أضعاف الزمن الفعلي، ~2.5 جيجابايت VRAM.
- معيار RTX 4060 (8 جيجابايت) (large-v3 int8): ~7 أضعاف الزمن الفعلي، ~2.5 جيجابايت VRAM — يتناسب بسهولة.
- int8 مقابل float16: int8 أسرع بنسبة ~2 ضعف ويستخدم ~40% أقل من VRAM مع خسارة دقة ضئيلة. استخدم دائمًا
compute_type="int8"على NVIDIA. - المعالجة الدفعية: يتيح معامل
batched=Trueفي faster-whisper المعالجة المتوازية لملفات صوتية متعددة، مما يعظّم استخدام GPU لمهام النسخ الكبيرة. - التكامل في خط أنابيب Python: يتكامل faster-whisper مباشرةً مع LangChain وHaystack وخطوط أنابيب Python المخصصة. لا حمل زائد للعمليات الفرعية مقارنةً بتغليف whisper.cpp.
Whisper على Raspberry Pi 5: tiny وbase وsmall
على Raspberry Pi 5، يشغّل whisper.cpp النموذجين tiny وbase في الزمن الفعلي للنسخ الحي، بينما يعمل نموذج small دون الزمن الفعلي ويُفضّل قصره على مهام الدُّفعات. لا يملك معالج Pi 5 رباعي النوى Cortex-A76 مسار GPU قابلًا للاستخدام مع Whisper، لذا تجري كل عمليات الاستدلال على المعالج (ARM NEON). استخدم نماذج GGML المكمَّمة (ggml-*-q5_0.bin) لتقليل استخدام الذاكرة وتسريع الاستدلال.
📍 في جملة واحدة
على Raspberry Pi 5، يعمل نموذج small في whisper.cpp أبطأ من الزمن الفعلي (~0.5×، للدُّفعات فقط)؛ أما tiny وbase فهما النموذجان اللذان يجاريان الكلام الحي.
💬 بعبارات بسيطة
يستطيع Pi 5 نسخ الصوت الحي بنموذجَي Whisper من نوع tiny وbase، لكن نموذج small أثقل من أن يجاري الزمن الفعلي — استخدم small للملفات المسجّلة التي تعالجها في الخلفية، لا للميكروفون الحي.
- Whisper small على Pi 5: نحو 0.4–0.6× من الزمن الفعلي على المعالج (مقطع 10 دقائق يستغرق ~17–25 دقيقة). دقيق عند 3.4% WER لكنه بطيء جدًا للترجمة الحية — استخدمه للنسخ الليلي/الدُّفعي.
- Whisper base على Pi 5: من الزمن الفعلي إلى ~2× مع تعدد الخيوط (
-t 4). نقطة التوازن العملية للنسخ الحي على Pi، مع WER مقبول قدره 5.0%. - Whisper tiny على Pi 5: الخيار الأسرع، أسرع بكثير من الزمن الفعلي للاستخدام الحي، على حساب WER أعلى قدره 7.6%. الأفضل للتعرّف على كلمة التنبيه والأوامر القصيرة.
- استخدم النماذج المكمَّمة:
bash ./models/download-ggml-model.sh small-q5_0يقلّص الذاكرة ويسرّع الاستدلال بخسارة دقة ضئيلة — أمر مهم على الذاكرة المشتركة في Pi 5. - faster-whisper على Pi 5: قابل للتثبيت (
pip install faster-whisper، CPU int8) ومنافس لمهام الدُّفعات، لكن ثنائي C الأخف في whisper.cpp هو الخيار المضمَّن الأكثر شيوعًا. - الحرارة: يجهد النسخ المستمر معالج Pi 5 بشدة — استخدم تبريدًا نشطًا لتجنّب خفض التردد الحراري الذي يقوّض هذه الأرقام.
متى تستخدم أيًّا منهما
تعيين مباشر من سيناريو إلى الأداة المناسبة:
📍 في جملة واحدة
استخدم whisper.cpp على Apple Silicon والأهداف المدمجة/متعددة المنصات؛ واستخدم faster-whisper على بطاقات NVIDIA GPU وخطوط أنابيب Python.
💬 بعبارات بسيطة
إذا كان لديك Mac، اختر whisper.cpp — فهو أسرع 3 أضعاف من faster-whisper على أجهزة Apple. إذا كان لديك NVIDIA GPU وتكتب Python، اختر faster-whisper — فهو أسرع ويحتاج 40% أقل من ذاكرة GPU.
| السيناريو | أفضل خيار | السبب |
|---|---|---|
| Mac بـApple Silicon (أي طراز) | whisper.cpp | تسريع Metal / Core ML — أسرع 3 أضعاف من faster-whisper (CPU فقط على Mac) |
| خادم NVIDIA GPU (Linux/Windows) | faster-whisper | CTranslate2 int8 — أسرع وأقل VRAM من مسار CUDA في whisper.cpp |
| خط أنابيب بيانات Python | faster-whisper | واجهة برمجة Python أصيلة؛ لا غلاف للعمليات الفرعية؛ VAD مدمج |
| Raspberry Pi / Linux مدمج | whisper.cpp | ثنائي C نقي؛ لا حمل زائد لوقت تشغيل Python؛ مُحسَّن بـARM NEON |
| مساعد صوتي في الوقت الفعلي | whisper.cpp | وضع stream بحمل زائد منخفض؛ يعمل بدون Python على Pi / مدمج |
| نسخ دفعي (أرشيف صوتي كبير) | faster-whisper | استدلال دفعي، استخدام GPU، تكامل Python غير متزامن |
| AMD GPU (Vulkan) | whisper.cpp | دعم خلفية Vulkan؛ faster-whisper للـCUDA فقط |
| خادم Linux بـCPU فقط | faster-whisper | تكميم int8 يمنح ~30% ميزة سرعة على CPU x86 |
ما وراء whisper.cpp وfaster-whisper
توسّع أداتان إضافيتان نطاق Whisper بقدرات لا توفرها أيٌّ من الأداتين جاهزتَين: تمييز المتحدثين والاستدلال الدفعي فائق السرعة على GPU.
- WhisperX:** مبني على faster-whisper، يضيف WhisperX طوابع زمنية على مستوى الكلمة وتمييز المتحدثين — للتعرف على أيٍّ من المتحدثين قال ماذا. الأفضل لـ: نسخ الاجتماعات بعلامات المتحدثين، وتحرير البودكاست، ونسخ المقابلات. ثبّت بـ
pip install whisperxوأدرج رمز Hugging Face للنموذج المساعد لتمييز المتحدثين. - insanely-fast-whisper:** غلاف خط أنابيب Hugging Face Transformers يضيف دعم Flash Attention 2 لاستدلال GPU أسرع بكثير من faster-whisper القياسي على أجهزة NVIDIA. الأفضل لـ: المعالجة الدفعية لأرشيفات صوتية كبيرة على بطاقات NVIDIA GPU. يتطلب GPU متوافق مع Flash Attention 2 (Ampere أو أحدث: RTX 3000+، A100، H100).
المشكلات الشائعة والحلول
أكثر مشكلات الإعداد والتشغيل شيوعًا مع حلول مباشرة:
- عدم توافق إصدار CUDA: يتطلب faster-whisper CUDA 11.8 أو أحدث. تحقق بـ
nvcc --version. إذا كانت CUDA أقدم، إما حدّث المشغّل أو ثبّت faster-whisper في بيئة conda بـcudatoolkit=11.8. - فشل تصدير نموذج Metal: تأكد من تثبيت Xcode Command Line Tools — شغّل
xcode-select --install. يتطلب سكريبت تصدير Core ML حزمة Pythoncoremltools:pip install coremltools. - هلوسة عند الصمت: قد تنتج كلتا الأداتين رموزًا متكررة لحشوات قصيرة على أجزاء الصوت الصامتة. استخدم
--no-speech-threshold 0.6في وضع stream في whisper.cpp، أوvad_filter=Trueفيmodel.transcribe()من faster-whisper لتخطي الأجزاء الصامتة تلقائيًا. - نفاد الذاكرة مع large-v3: تحوّل إلى تكميم int8 في faster-whisper (
compute_type="int8") — يقلل VRAM من ~5 جيجابايت (float16) إلى ~2.5 جيجابايت. في whisper.cpp استخدم نسخة GGML المكمَّمة (مثلًاggml-large-v3-q5_0.bin) التي تقلص الذاكرة إلى ~3–4 جيجابايت. - إخراج مشوَّه لصوت غير إنجليزي: لا تستخدم نسخ
.enمن النموذج (tiny.en، base.en) للكلام غير الإنجليزي — فهي إنجليزية فقط. استخدم النماذج متعددة اللغات (base، وsmall، وmedium، وlarge-v3) وحدد اللغة صراحةً:-l arفي whisper.cpp أوlanguage="ar"في faster-whisper. - استدلال CPU بطيء: تأكد من أن معالجك يدعم تعليمات AVX2 (المطلوبة للاستدلال المُحسَّن على CPU). تحقق بـ
grep avx2 /proc/cpuinfoعلى Linux أوsysctl machdep.cpu.featuresعلى Mac. المعالجات دون AVX2 تعود إلى SIMD العام وستكون أبطأ بنسبة 2–3 أضعاف.
الأسئلة الشائعة
هل دقة النسخ متطابقة بين whisper.cpp وfaster-whisper؟
نعم. تستخدم كلتا الأداتين أوزان نموذج OpenAI Whisper ذاتها — النموذج نفسه متطابق. الفرق فقط في وقت تشغيل الاستدلال (C/C++ مقابل CTranslate2 Python). سيكون WER على ملف الصوت ذاته ضمن 0.1% مطلق بينهما، وهو ضمن التباين الطبيعي من عشوائية beam search.
هل يمكنني استخدام faster-whisper على Mac بـApple Silicon؟
نعم، لكنه يعمل على CPU فقط — لا يوجد دعم Metal في faster-whisper. على M5 Pro، يعمل faster-whisper large-v3 بسرعة ~3 أضعاف الزمن الفعلي (CPU int8)، مقارنةً بـ~10 أضعاف لـwhisper.cpp مع Metal. لمعظم مستخدمي Mac، يكون whisper.cpp أسرع 3 أضعاف للنموذج ذاته. السبب الوحيد لاستخدام faster-whisper على Mac هو إذا كان خط أنابيب Python يعتمد عليه بالفعل والسرعة ليست حاسمة.
أي حجم نموذج Whisper يجب استخدامه لمساعد صوتي؟
لواجهات الصوت في الوقت الفعلي، Whisper small هو التوصية القياسية — 3.4% WER على الإنجليزية النظيفة، ~200 مللي ثانية زمن استجابة STT على معالج أو GPU حديث، ويتناسب مع 2 جيجابايت RAM. استخدم tiny إذا كنت على جهاز محدود الموارد جدًا (Raspberry Pi Zero 2W، الهواتف القديمة) ويمكنك تحمّل ~7.6% WER. استخدم medium أو large-v3 فقط للنسخ الدفعي حيث التأخير ليس قيدًا.
هل يدعم whisper.cpp لغات غير الإنجليزية؟
نعم. جميع نماذج Whisper متعددة اللغات (base، وsmall، وmedium، وlarge-v3) تدعم 99 لغة. أضف `-l [رمز اللغة] إلى CLI: -l ar للعربية، و-l de للألمانية، و-l ja` لليابانية، إلخ. نموذجا tiny.en وbase.en للإنجليزية فقط وأكثر دقة قليلًا للإنجليزية من نظيريهما متعددَي اللغات.
كيف أثبّت faster-whisper مع دعم CUDA؟
ثبّت بـpip install faster-whisper. يتطلب دعم CUDA نسخة CUDA 11.8 أو أحدث وcuDNN 8.x مثبّتَين على نظامك. تحقق من إصدار CUDA بـnvcc --version. ثم حدد device="cuda" عند تحميل النموذج: WhisperModel("large-v3", device="cuda", compute_type="int8"). إذا لم يُكتشف CUDA، يعود faster-whisper تلقائيًا إلى CPU.
أيٌّ منهما أكثر دقة — whisper.cpp أم faster-whisper؟
متطابقان. تستخدم كلتا الأداتين أوزان نموذج OpenAI Whisper ذاتها وتنتجان WER متطابق على أي ملف صوتي. الفرق بين whisper.cpp وfaster-whisper هو السرعة ودعم المنصة، لا دقة النسخ. أي فرق WER تقيسه بين التشغيلات ضمن التباين الطبيعي من beam search، وليس من وقت التشغيل نفسه.
هل يمكنني تشغيل Whisper large-v3 بذاكرة 8 جيجابايت RAM؟
نعم على GPU — large-v3 int8 في faster-whisper يستخدم ~2.5 جيجابايت VRAM ويعمل على أي GPU بسعة 8 جيجابايت. على الأجهزة المعتمدة على CPU فقط، 8 جيجابايت RAM ضيّقة لـlarge-v3 (float32 يستخدم ~10 جيجابايت). استخدم medium (5 جيجابايت RAM) أو small (2 جيجابايت RAM) على أنظمة CPU فقط. whisper.cpp أكثر كفاءة في استخدام الذاكرة على CPU من faster-whisper بسبب الحمل الزائد الأقل لوقت التشغيل.
كم تكلف نسخة Whisper المحلية مقارنةً بـSTT السحابية؟
صفر تكلفة مستمرة. تُحصّل خدمات STT السحابية 0.006–0.024 دولارًا لكل دقيقة صوت — لمطوّر ينسخ 8 ساعات اجتماعات أسبوعيًا، هذا 120–480 دولارًا شهريًا. يعمل Whisper المحلي على جهازك الذي تمتلكه بالفعل، بدون رسوم دقائق، وبدون إدارة مفاتيح API، وبدون أن تغادر بيانات الصوت جهازك.
المصادر
- whisper.cpp على GitHub — الكود المصدري وتعليمات البناء وسكريبتات تنزيل النماذج ودليل إعداد Metal/Core ML.
- faster-whisper على GitHub — الكود المصدري وتوثيق Python API ونتائج المعايير.
- distil-whisper/distil-large-v3 على Hugging Face — بطاقة النموذج ونتائج المعايير وتعليمات استخدام نسخة Whisper المقطّرة.
- WhisperX على GitHub — طوابع زمنية على مستوى الكلمة وتمييز المتحدثين مبني على faster-whisper.
- insanely-fast-whisper على GitHub — خط أنابيب Whisper Flash Attention 2 لأقصى إنتاجية على NVIDIA GPU.
- OpenAI Whisper على GitHub — نموذج Whisper الأصلي والورقة البحثية وبطاقات النماذج لجميع الأحجام.
- ورقة OpenAI Whisper البحثية (Radford et al.، 2022) — "Robust Speech Recognition via Large-Scale Weak Supervision". مصدر قيم WER.
- توثيق CTranslate2 — تفاصيل التكميم ودعم الأجهزة وأسس تحسين int8.