Asisten interaktif berbasis suara yang dilengkapi dengan berbagai suara sintetis (termasuk suara Jarvis dari Ironman)
Gambar oleh Midjourney AI
Pernah bermimpi untuk menanyakan tip sistem yang sangat cerdas untuk meningkatkan baju besi Anda? Sekarang Anda bisa! Yah, mungkin bukan bagian baju besi ... proyek ini mengeksploitasi Openai Whisper, Openai Chatgpt dan IBM Watson.
Motivasi Proyek:
Berkali -kali ide datang pada saat terburuk dan mereka menghilang sebelum Anda memiliki waktu untuk menjelajahinya dengan lebih baik. Tujuan dari proyek ini adalah untuk mengembangkan sistem yang mampu memberikan tips dan pendapat dalam waktu semu tentang apa pun yang Anda minta. Asisten utama akan dapat diakses dari mikrofon resmi di dalam rumah Anda atau ponsel Anda, itu harus berjalan terus -menerus di latar belakang dan ketika dipanggil harus dapat menghasilkan jawaban yang bermakna (dengan suara badass) serta antarmuka dengan PC atau server dan menyimpan/membaca/menulis file yang dapat diakses nanti. Seharusnya dapat menjalankan penelitian, mengumpulkan materi dari internet (mengekstrak konten dari halaman HTML, menyalin video YouTube, menemukan makalah ilmiah ...) dan memberikan ringkasan yang dapat digunakan sebagai konteks untuk membuat keputusan yang tepat. Selain itu, mungkin berinteraksi dengan beberapa gadget eksternal (IoT) tapi itu ekstra.
Demo:
Saya dapat berbagi draf pertama dari mode penelitian. Modalitas ini dipikirkan untuk orang yang sering berurusan dengan makalah penelitian.
PS: Mode ini tidak super stabil dan perlu dikerjakan
PPS: Proyek ini akan dihentikan untuk beberapa waktu karena saya akan mengerjakan tesis saya sampai 2024. Namun sudah ada begitu banyak hal yang dapat ditingkatkan sehingga saya akan kembali!
PENAFIAN:
Proyek ini mungkin mengkonsumsi kredit openai Anda yang menghasilkan penagihan yang tidak diinginkan;
Saya tidak bertanggung jawab atas tuduhan yang tidak diinginkan;
Pertimbangkan untuk menetapkan batasan konsumsi kredit di akun OpenAI Anda;
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
);Anda dapat mengandalkan
setup.bat
baru yang akan melakukan sebagian besar hal untuk Anda.
Skrip utama Anda harus menjalankan: openai_api_chatbot.py
Jika Anda ingin menggunakan versi terbaru dari API OpenAI di dalam folder demo, Anda akan menemukan beberapa panduan untuk paket yang digunakan dalam proyek, jika Anda memiliki kesalahan, Anda dapat memeriksa file -file ini terlebih dahulu untuk menargetkan masalah. Sebagian besar disimpan di folder asisten: get_audio.py
menyimpan semua fungsi untuk menangani interaksi mic, tools.py
mengimplementasikan beberapa aspek dasar dari asisten virtual, voice.py
menggambarkan kelas suara kasar (sangat). Agents.py
menangani bagian langchain dari sistem (di sini Anda dapat menambahkan atau menghapus alat dari toolkit agen)
Skrip yang tersisa adalah tambahan untuk generasi suara dan tidak boleh diedit.
Anda dapat menjalankan setup.bat
jika Anda menjalankan di Windows/Linux. Script akan melakukan setiap langkah instalasi manual secara berurutan. Merujuk pada mereka jika prosedur harus gagal.
Instalasi otomatis juga akan menjalankan instalasi Vicuna (Panduan Instalasi Vicuna)
pip install -r venv_requirements.txt
; Ini mungkin memakan waktu; Jika Anda mengalami konflik pada paket tertentu, instal secara manual tanpa ==<version>
;whisper_edits
ke folder whisper
lingkungan Anda (. Venv lib situs-situs Whisper ) pengeditan ini akan menambahkan hanya atribut ke model Whisper untuk mengakses dimensinya dengan lebih mudah;demos/tts_demo.py
) secara alternatif; cd Vicuna
call vicuna.ps1
env.txt
dan ganti namanya ke .env
(ya, hapus ekstensi txt)torch.cuda.is_available()
dan torch.cuda.get_device_name(0)
di dalam pyhton; .tests.py
. File ini berupaya melakukan operasi dasar yang mungkin menimbulkan kesalahan;VirtualAssistant.__init__()
; __main__()
di whisper_model = whisper.load_model("large")
; Tapi saya harap memori GPU Anda juga besar. openai_api_chatbot.py
):Saat berjalan, Anda akan melihat banyak informasi yang ditampilkan. Saya terus berusaha untuk meningkatkan keterbacaan eksekusi, seluruh proyek adalah beta besar, memaafkan sedikit variasi dari layar di bawah ini. Ngomong -ngomong, inilah yang terjadi secara umum saat Anda menekan 'lari':
Jarvis
untuk memanggil asisten. Pada titik ini, percakapan akan dimulai dan Anda dapat berbicara dalam bahasa apa pun yang Anda inginkan (jika Anda mengikuti langkah 2). Percakapan akan berakhir ketika Anda 1) mengucapkan kata berhenti 2) mengatakan sesuatu dengan satu kata (seperti 'ok') 3) saat Anda berhenti mengajukan pertanyaan selama lebih dari 30 detik chat_history
dengan pertanyaan Anda, itu akan mengirimkan permintaan dengan API dan akan memperbarui riwayat segera setelah menerima jawaban lengkap dari ChatGPT (ini mungkin memakan waktu hingga 5-10 detik, pertimbangkan secara eksplisit meminta jawaban singkat jika Anda terburu-buru);say()
akan melakukan duplikasi suara untuk berbicara dengan Jarvis/suara seseorang; Jika argumennya tidak dalam bahasa Inggris, IBM Watson akan mengirimkan respons dari salah satu model teks-ke-speech mereka yang bagus. Jika semuanya gagal, fungsi akan bergantung pada pyttsx3 yang merupakan alternatif yang cepat namun tidak keren;
Saya membuat beberapa petunjuk dan menutup percakapan
tidak ideal yang saya tahu tetapi bekerja untuk saat ini
VirtualAssistant
tumpukan penuh dengan memori dan akses penyimpanan lokal sedang mengerjakan:
mengikuti:
Periksa updateHistory.md proyek untuk wawasan lebih lanjut.
Selamat bersenang-senang!
Kategori: Instal, Umum, Runtime
Masalahnya adalah Whisper. Anda harus menginstalnya ulang secara manual dengan pip install whisper-openai
pip install --upgrade openai
. Persyaratan tidak diperbarui setiap komit. Meskipun ini mungkin menghasilkan kesalahan, Anda dapat dengan cepat menginstal modul yang hilang, pada saat yang sama membuat lingkungan tetap bersih dari konflik ketika saya mencoba paket baru (dan saya mencoba banyak dari mereka)
Ini berarti model yang Anda pilih terlalu besar untuk memori perangkat CUDA Anda. Sayangnya, tidak banyak yang dapat Anda lakukan kecuali memuat model yang lebih kecil. Jika model yang lebih kecil tidak memuaskan Anda, Anda mungkin ingin berbicara 'lebih jelas' atau membuat permintaan yang lebih lama untuk membiarkan model memprediksi lebih akurat apa yang Anda katakan. Ini kedengarannya tidak nyaman tapi, dalam kasus saya, sangat meningkatkan bahasa Inggris saya :)
Ini adalah bug yang masih ada, jangan berharap untuk pernah melakukan percakapan yang lama dengan asisten Anda karena hanya akan memiliki cukup memori untuk mengingat seluruh percakapan di beberapa titik. Perbaikan sedang dalam pengembangan, itu mungkin terdiri dari mengadopsi pendekatan 'geser jendela' bahkan jika itu dapat menyebabkan pengulangan beberapa konsep.
Saat ini (April 2023) saya bekerja hampir tanpa henti dalam hal ini. Saya mungkin akan beristirahat di musim panas karena saya akan mengerjakan tesis saya.
Jika Anda memiliki pertanyaan, Anda dapat menghubungi saya dengan mengangkat masalah dan saya akan melakukan yang terbaik untuk membantu sesegera mungkin.
Gianmarco Guarnier