Irina is a Russian voice assistant for offline work. Requires Python 3.5+ (the dependence can be less, but in any case Python 3)
Supports plugins (skills).
Article on Habri | The second article on Habri | The third article on Habri | Group in telegram
Through the service vsegpt.ru, another project of the author of Irina:
Go to https://github.com/janvarev/irene-va-win-installer, download the code (Code/Download Zip) and follow the instructions.
After the installation, the following commands will be available: “Irina Hello”, “Irina Throw the Coin”, “Irina Tear the Cube”, “Irina The game is smaller”, “Irina Timer three minutes”
To prepare or solve problems, start start-settings-manager.bat to start the settings manager-you can finish the plugins and find out additional commands.
More docks for bonding this option: doCs/install_win_compact.md
After installation, offline teams will be available (because this is a default configuration). Example: "Irina Hello", "Irina Tear the Coin", "Irina Tear the Cube", "Irina The game is smaller", "Irina Timer three minutes"
How to prepare this option: doCs/install_win_compact.md
You will need the installed Python (approximately 3.7-3.11).
To quickly install all the required dependencies, you can use the command: pip install -r requirements.txt (for Linux and MacOS - first install packages for Audioplayer)
To start starting, run the Runva_vosk.py file from the root folder. By default, he will launch VOSK offline supporter to recognize speech with a microphone, and PytSX engine for voicing an assistant more about Pyttsx here.
After starting, you can check with a simple team - say "Irina, hello!" In the microphone
The folder with the Options settings will appear after the first launch of Irina, in it you can correct the settings.
More step -by -step infa about installation on Win (especially Win 7): DOCS/Install_WIN.MD
Solving some problems when installing under Linux: DOCS/Install_Linux.md
Solving some problems when installing under Macs: Docs/Install_mac.md
The principles of debugging during installation problems: doCs/install_debug.md
Bugs can be written in Issues, discussed - in telegram
C version 9.0 Available web settings manager via Gradio.
To launch, start the Runva_Settings_manager.py file from the root folder.
If you want to run everything through a dock: doCs/install_docker.md (there are also docks of the Doker for ARM (raspberries, etc.) from Ivan-Firefly)
If you want only complex key components, run through the dock: doCs/install_docker_comp.md
The launch of all teams begins with the assistant name (tuned in Options/Core.json, by default - Irina). This is done to exclude incorrect works when constant listening to the microphone. Next will be described by teams without the prefix "Irina".
Support for local control through the web interface by the MPC-HC player is built into the engine, so it is recommended to use it. It can be configured in Options/Core.json
Support of plugins is made on the JAA.PY engine - the minimalistic single -file engine support engine and their settings.
The plugins are located in the Plugins folder and should begin with the Plugins_ prefix.
Plugins settings, if any, are located in the Options folder (created after the first launch).
For each plugin it is written whether online is required. Remove to turn off the Plugins folder
Complete information: docs/plugins.md
If you want to know:
Visit: #1
(From version 10.0.0) For launch, run runva_plugin_installer.py
Attention: the proposed plugins are supported by third -party developers and they can supplement and change! The author of Irina is not responsible for their maintenance!
For developers : If you want to add your plugin to this list for a simplified installation, you will need to do the following:
Example of the design of the plugin: https://github.com/janvarev/irene_plugin_boltalka2_openai
There is a good third-party plugin that allows you to launch Home Assistant scripts through Irina: https://github.com/timhok/ireneva-script-trigger-plugugin
Settings of specific plugins are best watched in plugins
{
"contextDefaultDuration" : 10 , # Время в секундах, пока Ирина находится в контексте (контекст используется в непрерывном чате, играх и пр.; в контексте не надо использовать слово Ирина)
"contextRemoteWaitForCall" : false , # должна ли Ирина ждать от клиентов сингнала "Проигрывание ответа закончена, запускаем время для контекста?"
# официальные клиенты поддерживают contextRemoteWaitForCall, рекомендуется true
"fuzzyThreshold" : 0.5 , # (ПРО) Порог уверенности при использовании плагинов нечеткого распознавания команд
"isOnline" : true , # при установке в false будет выдавать заглушку на команды плагинов, требующих онлайн. Рекомендуется, если нужен только оффлайн.
"linguaFrancaLang" : "ru" , # язык для конвертации чисел в lingua-franca. Смените, если будете работать с другим языком
"logPolicy" : "cmd" , # all|cmd|none . Когда распознается речь с микрофона - выводить в консоль всегда | только, если является командой | никогда
"mpcHcPath" : "C: \ Program Files (x86) \ K-Lite Codec Pack \ MPC-HC64 \ mpc-hc64_nvo.exe" , # путь до MPC HC, если используете
"mpcIsUse" : true , # используется ли MPC HC?
"mpcIsUseHttpRemote" : true , # MPC HC - включено ли управление через веб-интерфейс?
"playWavEngineId" : "audioplayer" , # плагин проигрыша WAV-файлов. Некоторые WAV требуют sounddevice.
"replyNoCommandFound" : "Извини, я не поняла" , # ответ при непонимании
"replyNoCommandFoundInContext" : "Не поняла..." , # ответ при непонимании в состоянии контекста
"replyOnlineRequired" : "Нужен онлайн" , # ответ при вызове в оффлайн функции плагина, требующего онлайн
"tempDir" : "temp" , # папка для временных файлов
"ttsEngineId" : "pyttsx" , # используемый TTS-движок
"ttsEngineId2" : "" , # 2 используемый TTS-движок. Работает только на локальную озвучку - например, буфера обмена. Вызывается командой say2
"useTTSCache" : false , # при установке true в папке tts_cache будет кэшировать .wav файлы со сгенерированными TTS-движком ответами
"v" : "1.7" , # версия плагина core. Обновляется автоматически, не трогайте
"voiceAssNames" : "ирина|ирины|ирину" , # Если это появится в звуковом потоке, то дальше будет команда. (Различные имена помощника, рекомендуется несколько)
"voiceAssNameRunCmd" : { # если вы обратитесь к помощнику по этому имени, то в начало вашей команды будет подставлено соответствующее слово
"альбина" : "чатгпт"
}
}For debugging, you can use the system launch through the runva_cmdline.py file.
She makes the nucleus ( Vacore in vacore.py ) through the command line interface, this is more convenient than dictating in a voice.
Development documentation
The multi-installation in the "client-server" mode is somewhat more complicated, but allows you to manage Irina:
Read more about customer-server settings
WEB API documentation
If you have problems with the VOSK installation (for example, on Mac), then you can use the work through the VOSK Auto Speech Recognition Server, which is launched through the dock.
docker run -d -p 2700:2700 alphacep/kaldi-ru:latest (details: https://alphacephei.com/vosk/server)vosk_asr_server.py , reducing the parameters inside args . interface = os . environ . get ( 'VOSK_SERVER_INTERFACE' , "0.0.0.0" )
args . port = int ( os . environ . get ( 'VOSK_SERVER_PORT' , 2700 )runva_voskrem.py . He will read data from the microphone and send to the server for recognition. If you need to launch recognition on another machine -use the parameter -u (--uri): runva_voskrem.py -u=ws://100.100.100.100:2700 to clarify the address of the server.
Speechrecognition - a classic engine for launching by Google and a number of other services. To launch this recognition, start the system through the Runva_Speecrecognition.py file.
For work, you will need:
pip install PyAudio
pip install SpeechRecognition
If there are problems with the installation of Pyaudio, read the details from Enjirouz
Features: recognition of numerals. The same phrase is recognized as follows:
The project as a whole does not imply support for multilingual terms, because Uses custom parsing words in plugins. But, nevertheless, the nucleus ( Vacore.py ) is completely not tied to the tongue, and you can collect your own installation in another language, simply rewriting the plugins for them.
Several language phrases that determine the CORE-behavior of the language assistant (his name, as well as phrases like "I did not understand") are set up in the Core plugin configuration file.
C version 7.5 supports fuzzy user input processing.
To set the recognition threshold, there is a global parameter Fuzzythreshold in Core.json, it accepts values from 0 to 1 (1 - complete confidence in the phrase)
Famous plugins working with this:
From version 8.1 in test mode, support for Core-plane from Vasya's voice assistant was made: https://github.com/oknolaz/vasisualy
To add:
It works in the simplest cases - tested on the coin and Crystall_ball plugins.
If it doesn't work, read the code. Support is made through the plugin Plugin_vasi.py.
If you want to add something to the project, it is good to familiarize yourself with the Contributing.md policy
Short:
@Enjirouz for the project of the voice assistant: https://github.com/enjirouz/voice-SSistant-App, which became the basis (though it was very redesigned)
Alphacephei for the beautiful recognition library VOSK (https://alphacephei.com/vosk/index.ru)
The main difficulty in opensors is not to write a code. Writing the code is interesting.
The difficulty in opensors is to maintain the code and users for a long time.
Answer questions. Fix bugs. Write articles and documentation.
If you want to support my interest and make Irina, as a vocal assistant independent of large companies, you can support, you can: