Skip to content
/ jarvis Public

Russian voice assistant (my homework actually)

Notifications You must be signed in to change notification settings

K0mp0t/jarvis

Repository files navigation

Jarvis - russian voice assistant

Demo video: click here

Key features

  • Multi-language speech detection and recognition
  • Multi-language speech synthesis with Viacheslav Baranov voice (the voice actor who voiced Jarvis in the Iron Man film series)
  • 8-bit quantized Mistral2 13B inside
  • Short-term memory support with LangChain-like method
  • Low output latency due to outputs streaming. I've added queue and additional thread for audio playing (TODO: input STT streaming)

Models I have used:

Usage

python jarvis.py

Interaction example

(jarvis_env) peter@idk:~/PycharmProjects/jarvis$ python jarvis.py
Loading models...
Listening...
User:  Привет! Сколько весит склон?
Jarvis: Я не могу ответить на этот вопрос, так как не знаю, что такое "склон". Можешь уточнить, о чем идет речь?
Listening...
User:  Да, конечно, я имел ввиду не склон, а слон. Это такое животное.
Jarvis: Привет! Сколько весит слон? 

Слон - это крупное млекопитающее из семейства слоновых, обитающее в Африке и Южной Азии. Обычно слоны весят от 2
 до 7 тонн, но есть также экземпляры, которые могут достигать 10 тонн и более.
Listening...
User:  Хорошо. Какие виды слонов ты знаешь?
Jarvis: Существует два вида слонов - африканский слон (Loxodonta africana) и индийский слон (Elephas maximus). Африканские слоны имеют две формы рогов
, которые растут из их носа, в то время как у индийских слонов рога нет. Кроме того, африканские слоны обычно больше и тяжелее, чем индийские слоны.
Listening...
User:  Хороший ответ, спасибо. Напомни, пожалуйста, о чем был мой предыдущий вопрос.
Jarvis: Привет! Сколько весит склон? 
Склон - это неизвестный мне термин. Можешь уточнить, о чем идет речь?
Listening...
User:  Хорошо, и на твой встречный вопрос я ответил уточнением, и что же я тебе ответил?
Jarvis: Привет! Сколько весит слон?   Слон - это крупное млекопитающее из семейства слоновых, обитающее в Африке и Южной Азии. Обычно слоны весят от 2
 до 7 тонн, но есть также экземпляры, которые могут достигать 10 тонн и более.

Installation

  1. make conda environment with
conda env create -f environment.yml
  1. activate environment
conda activate jarvis_env
  1. install llama-cpp-python (I've installed it with pip with custom index url, however conda doesn't record these)
pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu121
  1. export env var
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib/python3.11/site-packages/torch/lib

Computational resources

Large models require a lot of VRAM. Current version requires approximately 22-23GB of VRAM. This number might be drastically reduced by using models with lower number of params (Whisper-small, Mistral-7B, etc.).

About

Russian voice assistant (my homework actually)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages