--- name: meeting-pipeline description: Multi-language meeting pipeline — transcribe + speaker diarization + summary + translation + per-speaker voice re-narration. Merges Gemini + Qwen (+ ElevenLabs) with never-stop fallback. Use for multi-speaker/multi-language audio meetings, live translation, or "أصوات المتحدّثين بلغة أخرى". ---
Multi-Language Meeting Pipeline
دمج قدرات Gemini + Qwen (+ ElevenLabs) في مسار موحّد للاجتماعات متعدّدة اللغات. بُني + مُختبَر E2E حيّاً 2026-09-28 (أمر د. وائل).
---
🎬 pro_dub.py — خط الدبلجة الاحترافي الموحّد (الأحدث، 2026-10-01، مُختبَر E2E)
الأفضل للدبلجة (quality + أداء + واقعية) من أي لغة → عربي، بأفضل جودة×أقل تكلفة. بُني بعد نقد 8 مستويات + بنشمارك حيّ أثبت أن Opus 5.5 للترجمة = فاتورة عالية بلا مقابل (Gemini 3.8 Flash = نفس الجودة بربع السعر).
python3 skills/meeting-pipeline/pro_dub.py dub <video_or_audio> [--out out.mp3] [--clone] [--dialect auto|msa|colloquial]
python3 skills/meeting-pipeline/pro_dub.py transcribe <audio>
python3 skills/meeting-pipeline/pro_dub.py selftest
المراحل الستّ (كلٌّ أذكى خيار مُثبَت حيّاً، never-stop): | المرحلة | الأساس | fallback | |---|---|---| | STT + word-timestamps + diarization | Scribe v2 (#1 عربي) | Deepgram nova-3 → Groq whisper-large-v3 | | ترجمة سياقية (عامية/فصحى حسب المصدر) | Gemini 3.8 Flash | Gemini 3.5 Flash → DeepSeek V4 Flash → identity | | تشكيل | CATT (SOTA، best_ed.pt؛ ينظّف رموز التحكّم \x01) | Mishkal | | كشف المتحدّث | جنس + عمر (pitch) لكل مقطع | male افتراضي | | TTS per-speaker | بصمة صوت (ElevenLabs clone من عيّنة المتحدّث) | Gemini Charon (M-126) → صوت حسب الجنس | | التزامن | adelay لكل مقطع في وقته | atempo سقف 1.15× (لا chipmunk) |
مُثبَت E2E حيّاً 2026-10-01: حوار فرنسي (رجل+امرأة) → عربي: فصل متحدّثَين صحيح + كشف جنس صحيح + استنساخ صوتَين + ترجمة طبيعية + تشكيل نظيف، 21.6s. + حوار إنجليزي 14s.
العيوب التي أُصلحت في البناء: \x01 من CATT (كان يشوّه النطق — سبب رئيسي لـ"التشكيل السيء"). atempo خُفّض من 1.25→1.15 (لا تشويه).
القرار الاستراتيجي (خط أحمر): ❌ لا Opus 5.5 للترجمة (غالٍ بلا مقابل، بنشمارك أثبته). ✅ Gemini 3.8 Flash = أفضل جودة×سعر. التكلفة لفيلم 34د ≈ $0.30-0.50 بدل $3-4.
الصوت المعتمد للعربي (M-126): Charon عبر media_say.sh للفصحى الموحّدة؛ بصمة الصوت (clone) للواقعية القصوى per-speaker.
---
القدرات (5 مراحل، كلٌّ never-stop)
1. تفريغ (transcribe) — تحويل الصوت لنصّ كامل بأي لغة/لغات. 2. فصل المتحدّثين (diarization) —[Speaker 1], [Speaker 2]... تلقائياً.
3. تلخيص — ملخّص تنفيذي + قرارات/مهام + ملخّص لكل متحدّث.
4. ترجمة — لأي لغة هدف مع الحفاظ على تسميات المتحدّثين.
5. إعادة النطق — بصوت موحّد (Charon) أو بأصوات المتحدّثين (ElevenLabs voice-clone).المزوّدون (سلسلة never-stop، الأقوى/الأنظف أولاً — مُثبَتة حيّاً)
| المرحلة | الترتيب | |---|---| | تفريغ + diarization | Qwen 3.8-omni-flash (OpenRouter، الأنظف) → gemini-3.5-transcribe → gemini flash | | تلخيص/ترجمة | gemini-3.8-flash → gemini-3.1-flash → Qwen omni | | ترجمة صوتية حيّة (realtime) | gemini-3.5-live-translate / qwen3.8-livetranslate-flash-realtime (WS منفصل) | | TTS موحّد | media_say.sh (Gemini Charon — المعتمد للعربي M-126) | | TTS بأصوات المتحدّثين | ElevenLabs voice-clone (creator tier: instant + pro clone) |الاستخدام
python3 skills/meeting-pipeline/meeting_pipeline.py process <audio> --target-lang ar [--voices unified|clone]
python3 skills/meeting-pipeline/meeting_pipeline.py transcribe <audio>
python3 skills/meeting-pipeline/meeting_pipeline.py summarize <transcript.txt>
python3 skills/meeting-pipeline/meeting_pipeline.py translate <transcript.txt> --target-lang en
python3 skills/meeting-pipeline/meeting_pipeline.py selftest
إعادة النطق بأصوات المتحدّثين (voice-clone)
1. اقتطع عيّنة صوت (~30s نقية) لكل متحدّث. 2.clone_voice_from_sample(sample, "Speaker1") → voice_id.
3. _eleven_tts(translated_turn, out.mp3, voice_id) لكل دور.🔴 الخصوصية (خط أحمر)
اجتماعات KCPC/حسّاسة → لا ترفع سحابياً بلا إذن صريح. للحسّاس: On-Demand GPU (Whisper/Qwen محلي) لا السحابي.المفاتيح (كلها حاضرة، مُختبَرة)
GEMINI_API_KEY · OPENROUTER_API_KEY · ELEVENLABS_API_KEY (creator، 26 صوت، clone=True) · QWEN_DASHSCOPE_API_KEY (403 حالياً — يحتاج تفعيل خدمة من لوحة Alibaba؛ OpenRouter يغطّي Qwen).القيد الوحيد الصادق
- Qwen omni عبر OpenRouter = audio→text (لا يُخرج صوتاً). إخراج الصوت عبر Charon/ElevenLabs/Qwen-TTS.
- DashScope الأصلي (188 نموذج صوتي منها livetranslate/omni-realtime) يحتاج تفعيل الخدمة من لوحة Alibaba لفتح realtime WS المباشر.