

هذا المشروع هو نتيجة لمجموعة وتطوير مستمر لاثنين من مشاريعي السابقة:
في عام 2023 ، في خضم ضجيج Chatgpt ، استلهمت الجمع بين مشروعي السابقين في مشغل بودكاست واحد وتحسينه من خلال استخدام واجهات برمجة تطبيقات AI المفتوحة.
FYI: أصدر Spotify لاحقًا حلاً مشابهًا لكل من ترجمات وفصول البودكاست ، اقرأ المزيد هنا.
يمكن العثور على التقنيات المستخدمة في هذا المشروع في الجدول أدناه.
| تكنولوجيا | استخدام الحالة |
|---|---|
| رد فعل | إطار الواجهة الأمامية |
| Wind | مكتبة التصميم CSS |
| بيثون | الواجهة الخلفية للتعامل مع منطق النسخ |
| قارورة | يربط الواجهة الخلفية للبيثون مع الواجهة الأمامية |
| Spotify API | للحصول على معلومات حول حلقات البودكاست |
| واجهة برمجة تطبيقات التعرف على خطاب Google | يحول الكلام إلى رسالة نصية ، أي ينسخ البودكاست |
| افتح API GPT 3.5 من الذكاء الاصطناعي | نص القطاع إلى فصول على أساس النص |
أردت أن أتعلم كيفية توصيل واجهة React إلى الواجهة الخلفية لـ Python ، لذا استخدمت هذا المشروع كفرصة تعليمية للقيام بذلك. نتيجةً لذلك ، قمت ببعض الهندسة الزائدة عن طريق بناء واجهة برمجة التطبيقات الخاصة بي للتعامل مع النسخ على الواجهة الخلفية للثعبان بدلاً من استدعاء واجهة برمجة تطبيقات المكونات في الواجهة الأمامية.
وبشكل أكثر تحديدًا ، تقوم الواجهة الأمامية بإجراء مكالمة إلى API Spotify وتحصل على عنوان URL للبودكاست المطلوب. يتم إرسال عنوان URL كطلب إلى الواجهة الخلفية التي تقوم بتنزيل البودكاست على أنه MP3 لمعالجته.
السبب في حاجة MP3 إلى معالجتها هو أنني بحاجة إلى الحصول على طابع زمني لكل جملة لعرضها في الوقت الصحيح في الترجمة. حدد الجمل في النص من خلال الاستماع إلى صمت (<14 ديسيبل) أطول من 500 مللي ثانية. عند تحديد صمت ، قمت بتقسيم ملف الصوت الأصلي لإنشاء مجموعة من ملفات الصوت الأصغر ، واحدة لكل جملة. من خلال القيام بذلك ، تمكنت من حساب وقت البدء والنهاية لكل جملة من خلال النظر في طول كل ملف صوتي أصغر ، انظر الشكل أدناه.

يتم الآن إرسال جميع ملفات الصوت إلى واجهة برمجة تطبيقات التعرف على الكلام من Google وإرجاع سلسلة من الصوت المكتوبة. يتم الآن إرسال النسخ مرة أخرى إلى الواجهة الأمامية التي تقدم طلبًا لفتح واجهة برمجة تطبيقات الذكاء الاصطناعى لتقسيم النص وتحديد الموضوعات المحتملة لتقسيم الحلقة إلى فصول مختلفة.
لا تسمح لك API's Spotify بتنزيل حلقات البودكاست الكاملة ، فقط 30 ثانية. هذا يجعل التطبيق يقتصر جدًا على الاستخدام ، وبالتالي فهو مجرد دليل على المفهوم.
قم بإنشاء ملف .env في دليل الجذر وأضف مفاتيح API:
REACT_APP_SPOTFY_CLIENT_ID=YOUR_SPOTIFY_CLIENT_ID_GOES_HERE
REACT_APP_OPEN_AI_KEY=YOUR_OPEN_AI_KEY_GOES_HERE
استخدم الأوامر التالية لتشغيل المشروع. ابدأ الواجهة الأمامية في محطة واحدة والخلفية في محطة أخرى.
export FLASK_APP=backend
export FLASK_DEBUG=1
flask run
cd frontend
npm start
شاهد عرضًا لمدة 1 دقيقة للمشروع هنا.

الصفحة الرئيسية مع مصادقة سبوتيفي

صفحة الاكتشاف

شاشة التحميل

شاشة الحلقة

شاشة الحلقة

ترجمات في ملء الشاشة

نظرة عامة على الفصول داخل حلقة

مشغل الصوت مقسومًا على الفصول

نسخة البحث