مساعد تفاعلي قائم على الصوت مجهز بمجموعة متنوعة من الأصوات الاصطناعية (بما في ذلك صوت Jarvis من Ironman)
صورة بواسطة Midjourney AI
هل حلمت يومًا أن تطلب من نصائح النظام المفرط في تحسين دروعك؟ الآن يمكنك! حسنًا ، ربما ليس جزء Armor ... يستغل هذا المشروع Openai Whisper و Openai Chatgpt و IBM Watson.
دافع المشروع:
في كثير من الأحيان تأتي الأفكار في أسوأ لحظة وتتلاشى قبل أن يكون لديك الوقت لاستكشافها بشكل أفضل. الهدف من هذا المشروع هو تطوير نظام قادر على تقديم نصائح وآراء في وقت شبه حقيقي حول أي شيء تسأل. سيتمكن المساعد النهائي من الوصول إلى أي ميكروفون معتمد داخل منزلك أو هاتفك ، ويجب أن يعمل باستمرار في الخلفية وعندما يتم استدعاءه يجب أن يكون قادرًا على إنشاء إجابات ذات معنى (بصوت بدس) بالإضافة إلى واجهة مع الكمبيوتر الشخصي أو الخادم وتوفير/قراءة الملفات التي يمكن الوصول إليها لاحقًا. يجب أن تكون قادرة على إجراء الأبحاث ، وجمع المواد من الإنترنت (استخراج المحتوى من صفحات HTML ، ونسخ مقاطع فيديو YouTube ، والعثور على الأوراق العلمية ...) وتوفير ملخصات يمكن استخدامها كسياق لاتخاذ قرارات مستنيرة. بالإضافة إلى ذلك ، قد يتفاعل مع بعض الأدوات الخارجية (IoT) ولكن هذا إضافي.
العرض التوضيحي:
يمكنني مشاركة Finnaly في المسودة الأولى لوضع البحث. تم التفكير في هذه الطريقة للأشخاص الذين يتعاملون في كثير من الأحيان مع أوراق البحث.
ملاحظة: هذا الوضع غير مستقر للغاية ويجب العمل عليه
PPS: سيتم إيقاف هذا المشروع لبعض الوقت لأنني سأعمل على أطروحتي حتى عام 2024. ومع ذلك ، هناك بالفعل الكثير من الأشياء التي يمكن تحسينها لذلك سأعود!
تنصل:
قد يستهلك المشروع ائتمان Openai الخاص بك مما يؤدي إلى فواتير غير مرغوب فيها ؛
لا أتحمل مسؤولية أي رسوم غير مرغوب فيها ؛
النظر في تحديد القيود على استهلاك الائتمان في حساب Openai الخاص بك ؛
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
) ؛يمكنك الاعتماد على
setup.bat
الجديد. بات سيفعل معظم الأشياء بالنسبة لك.
البرنامج النصي الرئيسي يجب تشغيله: openai_api_chatbot.py
إذا كنت ترغب في استخدام أحدث إصدار من API Openai داخل مجلد DEMOS ، فستجد بعض التوجيهات للحزم المستخدمة في المشروع ، إذا كان لديك أخطاء ، فيمكنك التحقق من هذه الملفات أولاً لاستهداف المشكلة. في الغالب يتم تخزينها في المجلد المساعد: get_audio.py
يخزن جميع الوظائف للتعامل مع تفاعلات MIC ، tools.py
تنفذ بعض الجوانب الأساسية للمساعد الظاهري ، voice.py
يصف فئة صوتية (جدا). Agents.py
البرامج النصية المتبقية هي تكميلية لتوليد الصوت ولا ينبغي تحريرها.
يمكنك تشغيل setup.bat
إذا كنت تعمل على Windows/Linux. سيؤدي البرنامج النصي في كل خطوة من خطوة التثبيت اليدوي بالتسلسل. الرجوع إلى تلك في حالة فشل الإجراء.
سيقوم التثبيت التلقائي أيضًا بتشغيل تثبيت Vicuna (دليل تثبيت Vicuna)
pip install -r venv_requirements.txt
؛ هذا قد يستغرق بعض الوقت. إذا واجهت تعارضات على حزم محددة ، فقم بتثبيتها يدويًا بدون ==<version>
؛whisper_edits
إلى المجلد whisper
لبيئتك (. venv lib site-packages whisper ) ستضيف هذه التعديلات مجرد سمة إلى طراز الهمس للوصول إلى بُعده بسهولة أكبر ؛demos/tts_demo.py
بدلاً من ذلك. cd Vicuna
call vicuna.ps1
env.txt
وقم بإعادة تسميته إلى .env
(نعم ، قم بإزالة امتداد TXT)torch.cuda.is_available()
و torch.cuda.get_device_name(0)
داخل Pyhton ؛ .tests.py
. يحاول هذا الملف إجراء العمليات الأساسية التي قد ترفع الأخطاء ؛VirtualAssistant.__init__()
؛ __main__()
في whisper_model = whisper.load_model("large")
؛ لكن آمل أن تكون ذاكرة وحدة معالجة الرسومات الخاصة بك كبيرة بالمثل. openai_api_chatbot.py
):عند التشغيل ، سترى الكثير من المعلومات التي يتم عرضها. أنا أسعى باستمرار لتحسين قابلية التنفيذ ، والمشروع بأكمله هو بيتا ضخمة ، اغفر اختلافات طفيفة من الشاشات أدناه. على أي حال ، هذا ما يحدث في المصطلحات العامة عندما تضغط على "Run":
Jarvis
لاستدعاء المساعد. في هذه المرحلة ، ستبدأ المحادثة ويمكنك التحدث بأي لغة تريدها (إذا اتبعت الخطوة 2). ستنتهي المحادثة عندما تكون 1) قول كلمة توقف 2) قل شيئًا بكلمة واحدة (مثل "موافق") 3) عندما تتوقف عن طرح الأسئلة لأكثر من 30 ثانية chat_history
مع سؤالك ، وسوف يرسل طلبًا باستخدام واجهة برمجة التطبيقات وسيقوم بتحديث السجل بمجرد أن يتلقى إجابة كاملة من ChatGPT (قد يستغرق هذا ما يصل إلى 5 إلى 10 ثوانٍ ، ويفكر في طلب إجابة قصيرة إذا كنت في عجلة من أمرك) ؛say()
تكرار الصوت للتحدث مع جارفيس/صوت شخص ما ؛ إذا لم تكن الحجة باللغة الإنجليزية ، فسترسل IBM Watson الرد من أحد طرز النص إلى الكلام اللطيف. إذا فشل كل شيء ، فستعتمد الوظائف على PYTTSX3 وهو بديل سريع ولكنه ليس بديلاً رائعًا ؛
لقد قمت ببعض المطالبات وأغلقت المحادثة
ليست مثالية أعرفها ولكن تعمل الآن
VirtualAssistant
كاملة المكدس مع الذاكرة والوصول إلى التخزين المحلي يعمل حاليًا على:
التالي:
تحقق من updateHistory.md من المشروع لمزيد من الأفكار.
استمتع!
الفئات: التثبيت ، عام ، وقت التشغيل
المشكلة تتعلق بالهمس. يجب عليك إعادة تثبيتها يدويًا مع pip install whisper-openai
pip install --upgrade openai
. لا يتم تحديث المتطلبات كل التزام. على الرغم من أن هذا قد يولد أخطاء ، يمكنك تثبيت الوحدات المفقودة بسرعة ، في الوقت نفسه ، فإنه يحافظ على نظافة البيئة من النزاعات عندما أجرب حزم جديدة (وأحاول الكثير منها)
هذا يعني أن النموذج الذي حددته كبير جدًا بالنسبة لذاكرة جهاز CUDA. لسوء الحظ ، لا يوجد الكثير مما يمكنك فعله حيال ذلك باستثناء تحميل نموذج أصغر. إذا لم يرضيك النموذج الأصغر ، فقد ترغب في التحدث "أكثر وضوحًا" أو إجراء مطالبات أطول للسماح للنموذج بالتنبؤ بشكل أكثر دقة بما تقوله. هذا يبدو غير مريح ، ولكن في حالتي ، تحسن إلى حد كبير من الناطق باللغة الإنجليزية :)
هذا خطأ لا يزال موجودًا ، لا تتوقع إجراء محادثات طويلة مع مساعدك لأنه سيكون لديه ذاكرة كافية لتذكر المحادثة بأكملها في مرحلة ما. الإصلاح قيد التطوير ، قد يتكون من تبني نهج "Windows" المنزلق حتى لو كان قد يتسبب في تكرار بعض المفاهيم.
في الوقت الحالي (أبريل 2023) أنا أعمل دون توقف تقريبًا على هذا. من المحتمل أن آخذ استراحة في الصيف لأنني سأعمل على أطروحتي.
إذا كانت لديك أسئلة ، فيمكنك الاتصال بي من خلال إثارة مشكلة وسأبذل قصارى جهدي للمساعدة في أقرب وقت ممكن.
Gianmarco Guarnier