June adalah chatbot suara lokal yang menggabungkan kekuatan ollama (untuk kemampuan model bahasa), memeluk transformator wajah (untuk pengenalan suara), dan toolkit coqui tts (untuk sintesis teks-ke-speech). Ini memberikan solusi yang fleksibel dan berfokus pada privasi untuk interaksi yang dibantu suara pada mesin lokal Anda, memastikan bahwa tidak ada data yang dikirim ke server eksternal.

apt install python3-dev untuk Debian) -Hanya untuk GNU/Linuxapt install portaudio19-dev untuk Debian) -Hanya untuk GNU/Linuxbrew install portaudio menggunakan homebrew) - hanya untuk macOSUntuk menginstal Juni langsung dari repositori GitHub:
pip install git+https://github.com/mezbaul-h/june.git@masterAtau, Anda dapat mengkloning repositori dan menginstalnya secara lokal:
git clone https://github.com/mezbaul-h/june.git
cd june
pip install . Tarik model bahasa (default adalah llama3.1:8b-instruct-q4_0 ) dengan ollama terlebih dahulu, jika Anda belum:
ollama pull llama3.1:8b-instruct-q4_0Selanjutnya, jalankan program (dengan konfigurasi default):
june-va Ini akan menggunakan llama3.1: 8b-instruct-q4_0 untuk kemampuan llm, openai/wisper-small.en untuk pengenalan ucapan, dan tts_models/en/ljspeech/glow-tts untuk sintesis audio.
Anda juga dapat menyesuaikan perilaku program dengan file konfigurasi JSON:
june-va --config path/to/config.jsonCatatan
File konfigurasi opsional. Untuk mempelajari lebih lanjut tentang struktur file konfigurasi, lihat bagian kustomisasi.
Aplikasi dapat disesuaikan menggunakan file konfigurasi. File konfigurasi harus menjadi file JSON. Konfigurasi default adalah sebagai berikut:
{
"llm" : {
"disable_chat_history" : false ,
"model" : " llama3.1:8b-instruct-q4_0 "
},
"stt" : {
"device" : " torch device identifier (`cuda` if available; otherwise `cpu` " ,
"generation_args" : {
"batch_size" : 8
},
"model" : " openai/whisper-small.en "
},
"tts" : {
"device" : " torch device identifier (`cuda` if available; otherwise `cpu` " ,
"model" : " tts_models/en/ljspeech/glow-tts "
}
}Saat Anda menggunakan file konfigurasi, itu menimpa konfigurasi default tetapi tidak menimpanya. Jadi Anda dapat memodifikasi sebagian konfigurasi jika Anda menginginkannya. Misalnya, jika Anda tidak ingin menggunakan pengenalan ucapan dan hanya ingin memberikan petunjuk melalui teks, Anda dapat menonaktifkannya dengan menggunakan file konfigurasi dengan konfigurasi berikut:
{
"stt" : null
}Demikian pula, Anda dapat menonaktifkan synthesizer audio, atau keduanya, untuk hanya menggunakan asisten virtual dalam mode teks.
Jika Anda hanya ingin memodifikasi perangkat tempat Anda ingin memuat jenis model tertentu, tanpa mengubah atribut default lain dari model, Anda dapat menggunakan:
{
"tts" : {
"device" : " cpu "
}
}llm - Konfigurasi Model Bahasallm.device : Pengidentifikasi perangkat obor (misalnya, cpu , cuda , mps ) di mana pipa akan dialokasikan.llm.disable_chat_history : boolean menunjukkan apakah akan menonaktifkan atau mengaktifkan riwayat obrolan. Mengaktifkan riwayat obrolan akan membuat interaksi lebih dinamis, karena model akan memiliki akses ke konteks sebelumnya, tetapi akan mengkonsumsi lebih banyak daya pemrosesan. Menonaktifkannya akan menghasilkan percakapan yang kurang interaktif tetapi akan menggunakan sumber daya pemrosesan lebih sedikit.llm.model : Nama Tag Model Generasi Teks di Ollama. Pastikan ini adalah tag model yang valid yang ada di mesin Anda.llm.system_prompt : Berikan prompt sistem untuk model. Jika model yang mendasarinya tidak mendukung prompt sistem, kesalahan akan dinaikkan. stt -Konfigurasi Model Pidato-ke-Tekstts.device : Pengidentifikasi perangkat obor (misalnya, cpu , cuda , mps ) di mana pipa akan dialokasikan.stt.generation_args : objek yang mengandung argumen generasi yang diterima dengan memeluk pipa pengenalan suara Face.stt.model : Nama model pengenalan ucapan tentang memeluk wajah. Pastikan ini adalah ID model yang valid yang ada pada wajah memeluk. tts -Konfigurasi Model Teks-ke-Pidatotts.device : Pengidentifikasi perangkat obor (misalnya, cpu , cuda , mps ) di mana pipa akan dialokasikan.tts.generation_args : objek yang mengandung argumen pembuatan yang diterima oleh coqui's tts API.tts.model : Nama model teks-ke-pidato yang didukung oleh toolkit TTS Coqui. Pastikan ini adalah ID model yang valid. Setelah melihat [system]> Listening for sound... pesan, Anda dapat berbicara langsung ke dalam mikrofon. Tidak seperti asisten suara yang khas, tidak ada perintah bangun yang diperlukan. Mulailah berbicara, dan alat ini akan secara otomatis mendeteksi dan memproses input suara Anda. Setelah Anda selesai berbicara, pertahankan keheningan selama 3 detik untuk memungkinkan asisten memproses input suara Anda.
Banyak model (misalnya, tts_models/multilingual/multi-dataset/xtts_v2 ) yang didukung oleh toolkit TTS TTS mendukung kloning suara. Anda dapat menggunakan profil speaker Anda sendiri dengan klip audio kecil (sekitar 1 menit untuk sebagian besar model). Setelah Anda memiliki klip, Anda dapat menginstruksikan asisten untuk menggunakannya dengan konfigurasi khusus seperti berikut:
{
"tts" : {
"model" : " tts_models/multilingual/multi-dataset/xtts_v2 " ,
"generation_args" : {
"language" : " en " ,
"speaker_wav" : " /path/to/your/target/voice.wav "
}
}
}Ya, Anda dapat dengan mudah mengintegrasikan instance Ollama yang diselenggarakan dari jarak jauh dengan Juni alih -alih menggunakan instance lokal. Inilah cara melakukannya:
OLLAMA_HOST ke URL yang sesuai dari instance ollama jarak jauh Anda.Untuk menggunakan instance ollama jarak jauh, Anda akan menggunakan perintah seperti ini:
OLLAMA_HOST=http://localhost:11434 june-va