Irina est une assistante vocale russe pour le travail hors ligne. Nécessite Python 3.5+ (la dépendance peut être moins, mais en tout cas Python 3)
Soutient les plugins (compétences).
Article sur Habri | Le deuxième article sur Habri | Le troisième article sur Habri | Groupe en télégramme
Via le service vsegpt.ru, un autre projet de l'auteur d'Irina:
Allez sur https://github.com/janvarev/irene-va-win-installer, téléchargez le code (code / téléchargement zip) et suivez les instructions.
Après l'installation, les commandes suivantes seront disponibles: «Irina Hello», «Irina Tear the Coin», «Irina Tear the Cube», «Irina le jeu est plus grand», «Irina Timer trois minutes»
Pour préparer ou résoudre des problèmes, commencez à start-settings-manager.bat pour démarrer le gestionnaire de paramètres, vous pouvez terminer les plugins et trouver des commandes supplémentaires.
Plus de quais pour lier cette option: docs / install_win_compact.md
Après l'installation, des équipes hors ligne seront disponibles (car il s'agit d'une configuration par défaut). Exemple: "Irina Hello", "Irina Tear the Coin", "Irina Tear the Cube", "Irina Le jeu est plus petit", "Irina Timer trois minutes"
Comment préparer cette option: docs / install_win_compact.md
Vous aurez besoin du python installé (environ 3,7-3.11).
Pour installer rapidement toutes les dépendances requises, vous pouvez utiliser la commande: pip install -r requirements.txt (pour linux et macOS - premier installation packages pour AudioPlayer)
Pour commencer à commencer, exécutez le fichier runva_vosk.py dans le dossier racine. Par défaut, il lancera Vosk Offline Supporter pour reconnaître la parole avec un microphone et le moteur PYTSX pour exprimer un assistant davantage sur PYTTSX ici.
Après avoir commencé, vous pouvez vérifier avec une équipe simple - dire "Irina, bonjour!" Dans le microphone
Le dossier avec les paramètres d'options apparaîtra après le premier lancement d'Irina, vous pouvez corriger les paramètres.
Plus d'étape -By -Trep Infa sur l'installation sur Win (en particulier Win 7): Docs / Install_win.md
Résoudre certains problèmes lors de l'installation sous Linux: Docs / Install_linux.md
Résoudre certains problèmes lors de l'installation sous Mac: Docs / Install_mac.md
Les principes de débogage lors des problèmes d'installation: docs / install_debug.md
Les bogues peuvent être écrits en questions, discutées - en télégramme
C version 9.0 Gestionnaire de paramètres Web disponibles via Gradio.
Pour lancer, démarrez le fichier runva_settings_manager.py dans le dossier racine.
Si vous souhaitez tout exécuter via un quai: docs / install_docker.md (il y a aussi des quais du Doker pour ARM (framboises, etc.) d'Ivan-Firefly)
Si vous ne voulez que des composants clés complexes, exécutez le dock: docs / install_docker_comp.md
Le lancement de toutes les équipes commence par le nom de l'assistant (réglé dans Options / Core.json, par défaut - Irina). Ceci est fait pour exclure des œuvres incorrectes lorsqu'il est constant en écoutant constant le microphone. Ensuite, sera décrit par les équipes sans le préfixe "Irina".
La prise en charge du contrôle local via l'interface Web par le lecteur MPC-HC est intégrée au moteur, il est donc recommandé de l'utiliser. Il peut être configuré dans Options / Core.json
La prise en charge des plugins est fabriquée sur le moteur Jaa.py - le moteur de support moteur à fichier unique minimaliste et leurs paramètres.
Les plugins sont situés dans le dossier des plugins et doivent commencer par le préfixe Plugins_.
Les paramètres des plugins, le cas échéant, sont situés dans le dossier Options (créé après le premier lancement).
Pour chaque plugin, il est écrit si en ligne est nécessaire. Retirer pour éteindre le dossier des plugins
Informations complètes: docs / plugins.md
Si vous voulez savoir:
Visite: # 1
(À partir de la version 10.0.0) Pour le lancement, exécutez runva_plugin_installer.py
ATTENTION: Les plugins proposés sont pris en charge par des développeurs de troisième partie et ils peuvent compléter et changer! L'auteur d'Irina n'est pas responsable de leur entretien!
Pour les développeurs : si vous souhaitez ajouter votre plugin à cette liste pour une installation simplifiée, vous devrez effectuer ce qui suit:
Exemple de la conception du plugin: https://github.com/janvarev/irene_plugin_boltalka2_openai
Il y a un bon plugin tiers qui vous permet de lancer des scripts d'assistant à domicile via Irina: https://github.com/timhok/ireneva-script-crigger-plugugin
Les paramètres de plugins spécifiques sont mieux surveillés dans les 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" : { # если вы обратитесь к помощнику по этому имени, то в начало вашей команды будет подставлено соответствующее слово
"альбина" : "чатгпт"
}
}Pour le débogage, vous pouvez utiliser le lancement du système via le fichier runva_cmdline.py .
Elle fait le noyau ( vacore dans vacore.py ) via l'interface de ligne de commande, ceci est plus pratique que de dicter une voix.
Documentation de développement
La multi-installation du mode "client-serveur" est un peu plus compliquée, mais vous permet de gérer Irina:
En savoir plus sur les paramètres du serveur client
Documentation de l'API Web
Si vous avez des problèmes avec l'installation de VOSK (par exemple, sur Mac), vous pouvez utiliser le travail via le serveur de reconnaissance vosk Auto Speech, qui est lancé via le quai.
docker run -d -p 2700:2700 alphacep/kaldi-ru:latest (Détails: https://alphacephei.com/vosk/server)vosk_asr_server.py , réduisant les paramètres à l'intérieur 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 . Il lira les données du microphone et enverra le serveur pour reconnaissance. Si vous devez lancer la reconnaissance sur une autre machine, utilisez le paramètre -u (--uri): runva_voskrem.py -u=ws://100.100.100.100:2700 pour clarifier l'adresse du serveur.
SpeechRecognition - Un moteur classique pour le lancement par Google et un certain nombre d'autres services. Pour lancer cette reconnaissance, démarrez le système via le fichier runva_speeconcognition.py .
Pour le travail, vous aurez besoin:
pip install PyAudio
pip install SpeechRecognition
S'il y a des problèmes avec l'installation de Pyaudio, lisez les détails d'Enjirouz
Caractéristiques: Reconnaissance des chiffres. La même phrase est reconnue comme suit:
Le projet dans son ensemble n'implique pas la prise en charge des termes multilingues, car utilise des mots d'analyse personnalisés dans les plugins. Mais, néanmoins, le noyau ( vacore.py ) n'est pas complètement lié à la langue, et vous pouvez collecter votre propre installation dans une autre langue, en réécrivant simplement les plugins pour eux.
Plusieurs phrases linguistiques qui déterminent le core-comportement de l'assistant linguistique (son nom, ainsi que des phrases comme "Je n'ai pas compris") sont configurées dans le fichier de configuration du plugin de base .
C La version 7.5 prend en charge le traitement des entrées utilisateur floue.
Pour définir le seuil de reconnaissance, il y a un paramètre global Fuzzythreshold dans Core.json, il accepte les valeurs de 0 à 1 (1 - une confiance complète dans la phrase)
Plugins célèbres travaillant avec ceci:
De la version 8.1 en mode test, la prise en charge du plan de base de l'assistant vocal de Vasya a été fabriquée: https://github.com/oknolaz/vasisualy
Pour ajouter:
Il fonctionne dans les cas les plus simples - testés sur les plugins Coin et Crystal_Ball.
Si cela ne fonctionne pas, lisez le code. La prise en charge est effectuée via le plugin plugin_vasi.py.
Si vous souhaitez ajouter quelque chose au projet, il est bon de vous familiariser avec la politique contribution.md
Court:
@Enjirouz pour le projet de l'assistant vocal: https://github.com/enjirouz/voice-ssistant-app, qui est devenu la base (bien qu'il ait été très repensé)
Alphacephei pour la belle bibliothèque de reconnaissance Vosk (https://alphacephei.com/vosk/index.ru)
La principale difficulté d'Openseurs n'est pas d'écrire un code. Écrire le code est intéressant.
La difficulté d'Opensors est de maintenir le code et les utilisateurs pendant longtemps.
Répondre aux questions. Correction des bogues. Écrivez des articles et de la documentation.
Si vous souhaitez soutenir mon intérêt et faire d'Irina, en tant qu'assistant vocal indépendant des grandes entreprises, vous pouvez soutenir, vous pouvez: