[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-janvarev--Irene-Voice-Assistant":3,"tool-janvarev--Irene-Voice-Assistant":65},[4,23,32,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,2,"2026-04-05T10:45:23",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},4128,"GPT-SoVITS","RVC-Boss\u002FGPT-SoVITS","GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具，旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点，实现了“零样本”和“少样本”的快速建模：用户只需提供 5 秒参考音频即可即时生成语音，或使用 1 分钟数据进行微调，从而获得高度逼真且相似度极佳的声音效果。\n\n该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能，极大地降低了数据准备和模型训练的技术门槛，让非专业人士也能轻松上手。\n\n在技术亮点方面，GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成，还具备卓越的推理速度，在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音，还是进行多语言语音交互研究，GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。",56375,3,"2026-04-05T22:15:46",[21],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},2863,"TTS","coqui-ai\u002FTTS","🐸TTS 是一款功能强大的深度学习文本转语音（Text-to-Speech）开源库，旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点，让高质量的语音生成变得触手可及。\n\n无论是希望快速集成语音功能的开发者，还是致力于探索前沿算法的研究人员，亦或是需要定制专属声音的数据科学家，🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型，让用户能够即刻上手，还提供了完善的工具链，支持用户利用自有数据训练新模型或对现有模型进行微调，轻松实现特定风格的声音克隆。\n\n在技术亮点方面，🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言，并在整体性能上大幅提升，实现了低于 200 毫秒的超低延迟流式输出，极大提升了实时交互体验。此外，它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型，并支持调用上千个 Fairseq 模型，展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具，🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。",44971,"2026-04-03T14:47:02",[21,20,13],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":29,"last_commit_at":46,"category_tags":47,"status":22},2375,"LocalAI","mudler\u002FLocalAI","LocalAI 是一款开源的本地人工智能引擎，旨在让用户在任意硬件上轻松运行各类 AI 模型，包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛，无需昂贵的专用 GPU，仅凭普通 CPU 或常见的消费级显卡（如 NVIDIA、AMD、Intel 及 Apple Silicon）即可部署和运行复杂的 AI 任务。\n\n对于担心数据隐私的用户而言，LocalAI 提供了“隐私优先”的解决方案，确保所有数据处理均在本地基础设施内完成，无需上传至云端。同时，它完美兼容 OpenAI、Anthropic 等主流 API 接口，这意味着开发者可以无缝迁移现有应用，直接利用本地资源替代云服务，既降低了成本又提升了可控性。\n\nLocalAI 内置了超过 35 种后端支持（如 llama.cpp、vLLM、Whisper 等），并集成了自主 AI 代理、工具调用及检索增强生成（RAG）等高级功能，且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员，还是想要在个人电脑上体验最新 AI 技术的极客玩家，都能通过 LocalAI 获",44782,"2026-04-02T22:14:26",[13,21,19,17,20,14,16],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":29,"last_commit_at":54,"category_tags":55,"status":22},3108,"bark","suno-ai\u002Fbark","Bark 是由 Suno 推出的开源生成式音频模型，能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同，Bark 基于 Transformer 架构，不仅能模拟说话，还能生成笑声、叹息、哭泣等非语言声音，甚至能处理带有情感色彩和语气停顿的复杂文本，极大地丰富了音频表达的可能性。\n\n它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点，让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员，还是希望快速原型设计的开发者，都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。\n\n技术亮点方面，Bark 支持商业使用（MIT 许可），并在近期更新中实现了显著的推理速度提升，同时提供了适配低显存 GPU 的版本，降低了使用门槛。此外，社区还建立了丰富的提示词库，帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码，即可将创意文本转化为高质量音频，是连接文字与声音世界的强大桥梁。",39067,"2026-04-04T03:33:35",[21],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":62,"last_commit_at":63,"category_tags":64,"status":22},3788,"airi","moeru-ai\u002Fairi","airi 是一款开源的本地化 AI 伴侣项目，旨在将虚拟角色（如“二次元老婆”或赛博生命）带入用户的现实世界。它的核心目标是复刻并超越知名 AI 主播 Neuro-sama 的能力，让用户能够拥有完全自主掌控、可私有化部署的智能伙伴。\n\nairi 主要解决了用户对高度定制化、具备情感交互能力且数据隐私安全的 AI 角色的需求。不同于依赖云端服务的通用助手，airi 允许用户在本地运行，不仅保护了对话隐私，还赋予了用户定义角色性格与灵魂的自由。它支持实时语音聊天，甚至能直接参与《我的世界》（Minecraft）和《异星工厂》（Factorio）等游戏，实现了从单纯对话到共同娱乐的跨越。\n\n这款工具非常适合喜爱虚拟角色的普通用户、希望搭建个性化 AI 陪伴的技术爱好者，以及研究多模态交互的开发者。其独特的技术亮点在于跨平台支持（涵盖 Web、macOS 和 Windows）以及强大的游戏交互能力，让 AI 不仅能“说”，还能“玩”。通过容器化的灵魂设计，airi 为每个人创造专属数字生命提供了可能，让虚拟陪伴变得更加真实且触手可及。",37086,1,"2026-04-05T10:54:25",[19,21,17],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":79,"owner_location":80,"owner_email":79,"owner_twitter":79,"owner_website":81,"owner_url":82,"languages":83,"stars":103,"forks":104,"last_commit_at":105,"license":106,"difficulty_score":10,"env_os":107,"env_gpu":108,"env_ram":109,"env_deps":110,"category_tags":119,"github_topics":120,"view_count":10,"oss_zip_url":79,"oss_zip_packed_at":79,"status":22,"created_at":126,"updated_at":127,"faqs":128,"releases":129},3974,"janvarev\u002FIrene-Voice-Assistant","Irene-Voice-Assistant","Ирина - русский голосовой ассистент для работы оффлайн. Поддерживает скиллы через плагины.","Irene-Voice-Assistant（伊琳娜）是一款专为俄语用户打造的离线语音助手。它核心解决了用户在无网络连接环境下，依然需要高效、私密地进行语音交互的痛点。无需依赖云端服务器，所有语音识别与处理均在本地完成，充分保障数据隐私与安全。\n\n这款工具非常适合注重隐私保护的普通家庭用户、希望搭建本地智能环境的极客，以及想要研究或扩展离线语音技能的开发者。其独特亮点在于强大的插件架构：既支持抛硬币、设定时器等基础离线技能，又创新性地引入了 AI 插件机制。通过集成大语言模型（如 ChatGPT、Claude 3），伊琳娜能够理解自由形式的自然语言指令（例如“把定时器设为两个半小时”），并调用相应功能，甚至可联网获取实时资讯。\n\n在部署上，它提供了便捷的 Windows 一键安装包，同时也支持在 Linux 和 macOS 上通过 Python 环境灵活配置。无论是简单的日常问答，还是复杂的任务自动化，伊琳娜都能以低延迟、高可靠性的方式响应用户需求，是构建个人本地化智能生活的理想选择。","# Голосовой ассистент Ирина\n\nИрина - русский голосовой ассистент для работы оффлайн. Требует Python 3.5+ (зависимость может быть меньше, но в любом случае Python 3)\n\nПоддерживает плагины (скиллы). \n\n[Статья на Хабре](https:\u002F\u002Fhabr.com\u002Fru\u002Fpost\u002F595855\u002F) | [Вторая статья на Хабре](https:\u002F\u002Fhabr.com\u002Fru\u002Fpost\u002F660715\u002F) | [Третья статья на Хабре](https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F725066\u002F) | [Четвертая статья на Хабре - про 12 версию и ИИ-плагины](https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F932072\u002F) | [Группа в Телеграм](https:\u002F\u002Ft.me\u002Firene_va) \n\nЧерез сервис [VseGPT.ru](https:\u002F\u002Fvsegpt.ru\u002F), еще один проект автора Ирины: \n- Поддерживает общение с ChatGPT, GPT-4, Claude 3.    \n- Поддерживает получение справочной информации из Интернета (команда справка) с помощью специальных моделей Perplexity Online.\n- Поддерживает TTS от OpenAI (если сложно установить что-то локально)\n[(Инструкция по настройке плагина)](https:\u002F\u002Fvsegpt.ru\u002FExtTools\u002FIreneVA). (Также можно использовать любой OpenAI-совместимый endpoint)\n\n## Установка\n\n### Самая быстрая установка под Windows\n\nЗайдите в https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-VA-win-installer, скачайте код (Code\u002FDownload ZIP) и следуйте инструкциям.\n\nПосле установки будут доступны следующие команды: \"ирина привет\", \"ирина подбрось монетку\", \"ирина подбрось кубик\", \"ирина игра больше меньше\", \"ирина таймер три минуты\"\n\nДля донастройки или решения проблем запустите `start-settings-manager.bat` для запуска менеджера настроек - вы сможете донастроить плагины, и узнаете дополнительные команды.\n\nЕщё доки по донастройке этот варианта: [docs\u002FINSTALL_WIN_COMPACT.md](\u002Fdocs\u002FINSTALL_WIN_COMPACT.md)\n\n### Самая быстрая установка под Windows 2 (устарело)\n\n1. Зайдите в релизы: https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Freleases \n2. Скачайте релиз и следуйте инструкции. Python и GIT идут в релизе, ничего ставить не нужно.\n\nПосле установки будут доступны оффлайн-команды (т.к. это дефолтовая конфигурация). \nПример: \"ирина привет\", \"ирина подбрось монетку\", \"ирина подбрось кубик\", \"ирина игра больше меньше\", \"ирина таймер три минуты\"\n\nКак донастроить этот вариант: [docs\u002FINSTALL_WIN_COMPACT.md](\u002Fdocs\u002FINSTALL_WIN_COMPACT.md)\n\n### Установка \u002F быстрый старт\n\nВам потребуется установленный Python (ориентировочно 3.7-3.11).\n\n1. Для быстрой установки всех требуемых зависимостей можно воспользоваться командой:\n```pip install -r requirements.txt```\n\nЕсли вы хотите установить зависимости с фиксированными проверенными версиями (для более стабильной работы), используйте:\n```pip install -r requirements_fixed.txt```\n\n(Для Linux и macOS - предварительно установите пакеты для [audioplayer](https:\u002F\u002Fpypi.org\u002Fproject\u002Faudioplayer\u002F))\n\n2. Для запуска запустите файл **runva_vosk.py** из корневой папки.\nПо умолчанию он запустит оффлайн-распознаватель vosk для распознавания речи с микрофона, \nи pyttsx движок для озвучивания ассистента \n[Подробнее о pyttsx здесь](https:\u002F\u002Fgithub.com\u002Fnateshmbhat\u002Fpyttsx3).\n\n3. После запуска проверить можно простой командой - скажите \"Ирина, привет!\" в микрофон\n\n**Папка с настройками options появится после первого запуска Ирины, в ней можно поправить настройки.**\n\nБолее пошаговая инфа про установку на Win (в особенности Win 7): [docs\u002FINSTALL_WIN.md](\u002Fdocs\u002FINSTALL_WIN.md)\n\nРешение некоторых проблем при установке под Linux: [docs\u002FINSTALL_LINUX.md](\u002Fdocs\u002FINSTALL_LINUX.md)\n\nРешение некоторых проблем при установке под Mac: [docs\u002FINSTALL_MAC.md](\u002Fdocs\u002FINSTALL_MAC.md)\n\nПринципы отладки при проблемах при установке: [docs\u002FINSTALL_DEBUG.md](\u002Fdocs\u002FINSTALL_DEBUG.md)\n\nБаги можно писать в ISSUES, обсуждать - [в Телеграм](https:\u002F\u002Ft.me\u002F+gagUw1bCcYFkMGEy)\n\n### Менеджер настроек\n\nC версии 9.0 доступен веб менеджер настроек через gradio.\n\nДля запуска запустите файл **runva_settings_manager.py** из корневой папки.\n\n### ИИ-плагины\n\n**Бета с версии 12.0**\n\n```\n- Ирина, установи таймер на два с половиной часа\n- Ставлю таймер на 2 часа 30 минут\n```\n\n**ИИ-плагины позволяют вызывать функции текстом в свободной форме.**\nДля реализации используется вызов tools у LLM, см. https:\u002F\u002Fvsegpt.ru\u002FDocs\u002FAPI#tools. \nЕсли по-простому, вызывается большая языковая модель типа ChatGPT, и мы её просим определить, какой именно плагин \nс какими именно параметрами нужно вызвать на основании нашего словесного ввода в свободной форме.\n\nВам потребуется доступ к LLM:\n- В формате OpenAI-compatible\n- Которая поддерживает вызов tools\n\nДля дистанционного варианта вы можете воспользоваться проектом автора https:\u002F\u002Fvsegpt.ru\u002F - там будут быстрые LLM\n(OpenAI gpt-4o-mini и другие), которые хорошо это поддерживают. Каждый вызов модели будет тарифицирован, но обычно обойдется всего \nв несколько копеек для openai\u002Fgpt-4o-mini, которая установлена по дефолту. Также есть бесплатное демо на несколько рублей -\nхватит, чтобы попробовать.\n\nВы также можете использовать локальные LMStudio или Ollama с моделями, поддерживающими tools. Это, вероятно, \nбудет медленнее, но тоже будет работать. Желающие могут написать инструкцию, и положить её в docs данного проекта.\n\nДля работы вам потребуется:\nУстановить параметры в core для коннекта к моделям, а также список плагинов - например, \"ai\". \nИИ-плагины могут работать и в связке с обычными плагинами, тогда используйте \"classic,ai\".\nВ приоритете всегда будут классические плагины.\n```\n\"plugin_types\": \"default\", # список разрешенных ТИПОВ плагинов через ,\n# например: classic, ai, или \"classic,ai\"\n\n\"openai_base_url\": \"https:\u002F\u002Fapi.vsegpt.ru\u002Fv1\",\n\"openai_key\": \"\",\n\"openai_tools_model\": \"openai\u002Fgpt-4o-mini\",\n\"openai_tools_system_prompt\": \"\",\n\"openai_generic_model\": \"openai\u002Fgpt-4o-mini\",\n\"openai_generic_system_prompt\": \"\",\n```\n\nВо-вторых, вам потребуется ИИ-плагин(ы).\nВы можете скопировать демо-плагин plugin_ai_timer из папки plugins_inactive\n\n_Пока это все для энтузиастов, поэтому инфы мало, подробнее будет позже_\n\n\n### Установка через Докер\n\nЕсли хотите ВСЁ запустить через Докер: [docs\u002FINSTALL_DOCKER.md](\u002Fdocs\u002FINSTALL_DOCKER.md) (там же есть образы докера для ARM (малинок и пр.) от Ivan-Firefly)\n\nЕсли хотите только сложные ключевые компоненты запустить через Докер: [docs\u002FINSTALL_DOCKER_COMP.md](\u002Fdocs\u002FINSTALL_DOCKER_COMP.md)\n\n### Общая логика\n\nЗапуск всех команд начинается с имени ассистента (настраивается в options\u002Fcore.json, по умолчанию - Ирина). \nТак сделано, чтобы исключить неверные срабатывания при постоянном прослушивании микрофона.\nДалее будут описываться команды без префикса \"Ирина\".\n\nВ движок встроена поддержка локального управления через веб-интерфейс плейером MPC-HC, так что при прочих равных рекомендуется использовать его. \nЕго можно настроить в options\u002Fcore.json\n\n## Плагины\n\nПоддержка плагинов сделана на собственном движке [Jaa.py](https:\u002F\u002Fgithub.com\u002Fjanvarev\u002Fjaapy) - минималистичный однофайловый движок поддержки плагинов и их настроек.\n\nПлагины располагаются в папке plugins и должны начинаться с префикса \"plugins_\".\n\nНастройки плагинов, если таковые есть, располагаются в папке \"options\" (создается после первого запуска).\n\n### Готовые плагины\u002Fскиллы (уже в папке plugins)\n\nДля каждого плагина написано, требуется ли онлайн. \nДля отключения удалите из папки plugins\n\nПолная информация: [docs\u002FPLUGINS.md](\u002Fdocs\u002FPLUGINS.md)\n\n### Сторонние плагины\n\nЕсли вы хотите узнать:\n  * какие еще есть плагины от других разработчиков\n  * запостить ссылку на свой сделанный плагин\n  \nПосетите: [https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fissues\u002F1](https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fissues\u002F1)\n\n\n### Менеджер плагинов\n\n(С версии 10.0.0)\nДля запуска запустите runva_plugin_installer.py\n\n**ВНИМАНИЕ:** Предложенные плагины поддерживаются сторонними разработчиками и они могут дополняться и изменяться!\nАвтор Ирины не несёт ответственности за их содержание!\n\n**Для разработчиков**: если вы хотите добавить свой плагин в этот список для упрощенной установки, вам нужно будет сделать следующее:\n1. Разместить плагин на Гитхабе\n2. В корне должны лежать файлы типа plugin_x.py. Может быть несколько\n3. Если нужно установить дополнительные модули, должен лежать файл requirements.txt\n4. Протестируйте возможность установки, запустив runva_plugin_installer, выбрав пункт 0 (Самостоятельно задать адрес Github-проекта с плагином) и установите свой плагин\n5. После всего запостите ссылку на ваш в Issue или сделайте pull request, поменяв plugins_catalog.json, в котором содержатся ссылки на известные допплагины.\n\nПример оформления плагина: https:\u002F\u002Fgithub.com\u002Fjanvarev\u002Firene_plugin_boltalka2_openai\n\n### Интеграция с Home Assistant\n\nЕсть хороший сторонний плагин, позволяющий запускать сценарии Home Assistant через Ирину:\nhttps:\u002F\u002Fgithub.com\u002Ftimhok\u002FIreneVA-hassio-script-trigger-plugin\n\n### Настройки ядра (core.json)\n\nНастройки конкретных плагинов лучше смотреть в плагинах\n\n```python\n{\n    \"contextDefaultDuration\": 10, # Время в секундах, пока Ирина находится в контексте (контекст используется в непрерывном чате, играх и пр.; в контексте не надо использовать слово Ирина)\n    \"contextRemoteWaitForCall\": false, # должна ли Ирина ждать от клиентов сингнала \"Проигрывание ответа закончена, запускаем время для контекста?\"\n    \"contextExitCommand\": \"\", # команда для досрочного выхода из контекста (если пусто, то контекст завершается только по таймауту) \n    # официальные клиенты поддерживают contextRemoteWaitForCall, рекомендуется true\n    \"fuzzyThreshold\": 0.5, # (ПРО) Порог уверенности при использовании плагинов нечеткого распознавания команд\n    \"isOnline\": true, # при установке в false будет выдавать заглушку на команды плагинов, требующих онлайн. Рекомендуется, если нужен только оффлайн.\n    \"linguaFrancaLang\": \"ru\", # язык для конвертации чисел в lingua-franca. Смените, если будете работать с другим языком\n    \"logPolicy\": \"cmd\", # all|cmd|none . Когда распознается речь с микрофона - выводить в консоль всегда | только, если является командой | никогда\n    \"mpcHcPath\": \"C:\\\\Program Files (x86)\\\\K-Lite Codec Pack\\\\MPC-HC64\\\\mpc-hc64_nvo.exe\", # путь до MPC HC, если используете\n    \"mpcIsUse\": true, # используется ли MPC HC?\n    \"mpcIsUseHttpRemote\": true, # MPC HC - включено ли управление через веб-интерфейс?\n    \"playWavEngineId\": \"audioplayer\", # плагин проигрыша WAV-файлов. Некоторые WAV требуют sounddevice.\n    \"replyNoCommandFound\": \"Извини, я не поняла\", # ответ при непонимании\n    \"replyNoCommandFoundInContext\": \"Не поняла...\", # ответ при непонимании в состоянии контекста\n    \"replyOnlineRequired\": \"Нужен онлайн\", # ответ при вызове в оффлайн функции плагина, требующего онлайн \n    \"tempDir\": \"temp\", # папка для временных файлов\n    \"ttsEngineId\": \"pyttsx\", # используемый TTS-движок\n    \"ttsEngineId2\": \"\", # 2 используемый TTS-движок. Работает только на локальную озвучку - например, буфера обмена. Вызывается командой say2\n    \"useTTSCache\": false, # при установке true в папке tts_cache будет кэшировать .wav файлы со сгенерированными TTS-движком ответами\n    \"v\": \"1.7\", # версия плагина core. Обновляется автоматически, не трогайте\n    \"voiceAssNames\": \"ирина|ирины|ирину\", # Если это появится в звуковом потоке, то дальше будет команда. (Различные имена помощника, рекомендуется несколько)\n    \"voiceAssNameRunCmd\": { # если вы обратитесь к помощнику по этому имени, то в начало вашей команды будет подставлено соответствующее слово\n        \"альбина\": \"чатгпт\"\n    },\n    \"log_console\": True,  # Вывод логов в консоль\n    \"log_console_level\": \"WARNING\",\n    # Записываются в лог сообщения с уровнем равным или выше этого уровня: NOTSET | DEBUG | INFO | WARNING | ERROR | CRITICAL\n    \"log_file\": False,  # Вывод в лог-файл\n    \"log_file_level\": \"DEBUG\",  # NOTSET | DEBUG | INFO | WARNING | ERROR | CRITICAL\n    \"log_file_name\": \"log.txt\",  # имя лог-файла\n\n    \"normalization_engine\": \"numbers\", # нормализация текста для русских TTS. \n    # Нормализация позволяет транслировать 1, 2, 3 в \"один, два, три\", что нужно, например, для VOSK TTS, который не знает числа\n    # Добавляется плагинами. Рекомендуется runorm для качества (но runorm тяжела в обработке)\n    # СОГЛАШЕНИЕ: каждый плагин TTS сам принимает решение, нужна ли ему предобработка.\n    # Если нужна, он может вызвать core.normalize(text_to_speech), см. пример в plugin_tts_vosk.py\n  \n}\n```\n\n### Отладка и разработка (для разработчиков) \n\nДля отладки можно использовать запуск системы через файл **runva_cmdline.py**. \n\nОна делает запуск ядра (**VACore in vacore.py**) через интерфейс командной строки, это удобнее, чем голосом диктовать.\n\n* Подключить собственный навык можно, создав плагин в **plugins_**. Смотрите примеры.\n* Подключить собственный TTS можно плагином. Как примеры, смотрите plugins_tts_console.py, plugins_tts_pyttsx.py.\n* Также, создав собственный **runva_** файл, можно, при желании, подключить свойт Speech-To-Text движок.\n\n### Логирование \n\nЛогирование реализовано с помощью библиотеки logging в модуле core.py.\n\nПараметры задаются в **options\u002Fcore.json**:\n\n- если log_console=True, то выводится в консоль\n- если log_file=True, то выводится в лог-файл\n\nЗначения по умолчанию:\n\n- log_console=True\n- log_file=False\n- log_console_level=\"WARNING\"\n- log_file_level=\"DEBUG\"\n- log_file_name=\"log.txt\"\n\nУровни логирования:\n\n- NOTSET = 0\n- DEBUG = 10\n- INFO = 20\n- WARNING = 30\n- ERROR = 40\n- CRITICAL = 50\n\nПо умолчанию, логи выводятся в консоль с уровнем WARNING, а в лог-файл с уровнем DEBUG.\nЭто означает, что в лог попадают все сообщения с установленным уровнем и выше (больше).\nТ.е. если указан уровень WARNING, то в лог попадут сообщения с уровнем WARNING, ERROR, CRITICAL.\nЕсли уровень установлен на DEBUG, то в лог попадут сообщения с уровнем DEBUG, INFO, WARNING, ERROR, CRITICAL.\n\nРекомендуемое использование:\nВ начале модуля, после всех импортов добавить следующие строки:\n\n```python\nimport logging\n\nlogger = logging.getLogger(__name__)\n```\n\nДобавление событий в лог осуществляется вызовом соответствующей функции:\n\n```python\nlogger.debug(\"debug message\")  # для детальных сообщений при отладке\nlogger.info(\"info message\")  # для информационных сообщений, когда всё выполняется как и задумывалось\nlogger.warning(\"warning message\")  # для предупреждений, когда что-то пошло не так, но работа продолжается\nlogger.error(\"error message\")  # для сообщений об ошибках и потере функционала\nlogger.critical(\"critical message\")  # для сообщений о критических ошибках, при невозможности дальнейшей работы\n```\n\nПри выводе логов в блоках try\u002Fexcept можно использовать следующую конструкцию:\n\n```python\ntry:\n  ...\nexcept Exception as e:\n  logger.exception(e)\n```\n\nили так:\n\n```python\ntry:\n  import some_library\nexcept ImportError as e:\n  logger.exception(e)\n  logger.error(\"Library 'some_library' is not installed. Please install it with 'pip install some_library'\")\n```\n\nРекомендуется последний вариант, для обработки конкретных исключений, а не всего класса Exception.\nИспользование logger.exception(e) обеспечивает вывод информации о трассировке стека (stack trace).\n\n### Разработка плагинов\n\n[Документация по разработке](\u002Fdocs\u002FDEV_PLUGINS.md)\n\n## Удаленная работа (сервер-клиент, мультимикрофонные\u002Fмашинные инсталляции)\n\nМультиинсталляция в режиме \"клиент-сервер\" несколько сложнее, но позволяет управлять Ириной:\n- с нескольких микрофонов\n- с разных машин\n- из Телеграма (с помощью телеграм-бота)\n\n[Подробнее про настройку клиент-серверного режима](\u002Fdocs\u002FINSTALL_MULTI.md)\n\n[Документация WEB API](\u002Fdocs\u002FDEV_WEBAPI_INTEGRATION.md)\n\n## Speech-to-Text через VOSK remote\n\nЕсли у вас проблемы с установкой VOSK (например, на Mac), то вы можете воспользоваться \nработой через VOSK Auto Speech Recognition Server, который запускается через Докер.\n\n- Запустите `docker run -d -p 2700:2700 alphacep\u002Fkaldi-ru:latest` \n(детали: https:\u002F\u002Falphacephei.com\u002Fvosk\u002Fserver )\n  - или как вариант, вы можете запустить `vosk_asr_server.py`, переопределив внутри параметры\n\n```python\n    args.interface = os.environ.get('VOSK_SERVER_INTERFACE', \"0.0.0.0\")\n    args.port = int(os.environ.get('VOSK_SERVER_PORT', 2700)\n```  \n\n- Запустите `runva_voskrem.py`. Он будет читать данные с микрофона и отправлять на сервер \nдля распознавания.\n\nВ случае, если надо запустить распознавание на другой машине -\nиспользуйте параметр -u (--uri): `runva_voskrem.py -u=ws:\u002F\u002F100.100.100.100:2700` \nдля уточения адреса сервера.\n\n## Speech-to-Text через SpeechRecognition\n\nSpeechRecognition - классический движок для запуска распознавания через Google и ряд других сервисов.\nДля запуска этого распознавания запустите систему через файл **runva_speechrecognition.py**.\n\nДля работы потребуется:\n\n`pip install PyAudio`\n\n`pip install SpeechRecognition`\n\nЕсли есть проблемы с установкой PyAudio, прочтите детали [у EnjiRouz](https:\u002F\u002Fgithub.com\u002FEnjiRouz\u002FVoice-Assistant-App\u002Fblob\u002Fmaster\u002FREADME.md)\n\n**Особенности:** распознавание числительных. Одна и та же фраза распознается так:\n* VOSK: таймер десять секунд\n* SpeechRecognition (Google): таймер 10 секунд\n\n## Поддержка многоязычности\nПроект в целом не предполагает поддержки многоязычности, т.к. использует кастомный парсинг слов в плагинах. \nНо, тем не менее, ядро (**vacore.py**) совершенно не привязано к языку, и вы можете собрать собственную инсталляцию на другом языке, просто переписав для них плагины.\n\nНесколько языковых фраз, определяющих core-поведение языкового помощника (его имя, а также фразы типа \"Я не поняла\")\nнастраиваются в файле конфигурации плагина **core**.\n\n## Нечеткая обработка фраз\n\nC версии 7.5 поддерживает нечеткую обработку пользовательского ввода.\n\nДля задания порога распознавания есть глобальный параметр fuzzyThreshold в core.json, \nон принимает значения от 0 до 1 (1 - полная уверенность в фразе)\n\nИзвестные плагины, работающих с этим:\n* https:\u002F\u002Fgithub.com\u002Fjanvarev\u002Firene_plugin_fuzzy_thefuzz - через thefuzz, нечеткое сравнение строк\n* https:\u002F\u002Fgithub.com\u002Fmodos189\u002Firene_plugin_fuzzy_sklearn - через scikit-learn\n* https:\u002F\u002Fgithub.com\u002Fjanvarev\u002Firene_plugin_fuzzy_ai_sentence - семантическое сравнение строк на нейросетях (sentence_transformers)\n\n## Плагины от голосового помощника Васисуалия\n\nС версии 8.1 в тестовом режиме сделана поддержка core-плагинов от голосового помощника Васи:\nhttps:\u002F\u002Fgithub.com\u002FOknolaz\u002Fvasisualy\n\nДля добавления:\n1. Плагины надо кидать в plugins_vasi\u002Fskills (брать в https:\u002F\u002Fgithub.com\u002FOknolaz\u002Fvasisualy\u002Ftree\u002Fmaster\u002Fvasisualy\u002Fskills )\n2. от каждого плагина ожидается, что в модуле будет прописан triggers, на основании которого\nформируется список команд. Если нет - плагин надо доработать.\n\nРаботает в простейших случаях - протестировано на плагинах coin и crystall_ball.\n\nЕсли не работает - читайте код. Поддержка сделана через плагин plugin_vasi.py.\n\n\n\n## Contributing\n\nЕсли вы хотите что-то добавить в проект, хорошо ознакомиться с\nПолитикой \n[CONTRIBUTING.md](\u002FCONTRIBUTING.md)\n\nКоротко:\n* Под плагины желательно делать отдельные Github-проекты (или размещать их где-то еще), которые вы готовы поддерживать. Ссылки можно кидать в [https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fissues\u002F1](https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fissues\u002F1), чтобы ваш плагин нашли другие. Кидать дополнительные плагины в этот проект не нужно - у меня нет времени и сил поддерживать то, в чём я не разбираюсь.\n* Делайте точечные изменения, улучшающие функциональность или фиксящие баги (например, нерабочесть в каких-то условиях). Такие Pull Request с высокой вероятностью будут приняты.\n* Массовые изменения кода (приведения стиля кода к единому, организация импортов) **не будут рассматриваться и будут отклонены**. Пожалуйста, не делайте их.\n\n## Благодарности\n\n@EnjiRouz за проект голосового ассистента: https:\u002F\u002Fgithub.com\u002FEnjiRouz\u002FVoice-Assistant-App, который стал основой (правда, был очень сильно переработан)\n\nAlphaCephei за прекрасную библиотеку распознавания Vosk ( https:\u002F\u002Falphacephei.com\u002Fvosk\u002Findex.ru ) \n\n\n## Поддержка проекта\n\nОсновная сложность в опенсорс - это не писать код. Писать код интересно.\n\nСложность в опенсорс - поддерживать код и пользователей в течение долгого времени.\n\nОтвечать на вопросы. Фиксить баги. Писать статьи и документацию.\n\nЕсли вы хотите поддержать мой интерес и сделать так, чтобы Ирина, \nкак независимый от больших компаний голосовой помощник долго, поддерживалась, вы можете:\n\n- **Написать новый плагин** (меня всегда это радует!)\n- **Закинуть денежку** через подписку в https:\u002F\u002Fboosty.to\u002Firene-voice Чем больше у меня подписчиков, тем лучше я понимаю, что проект нужен.\n- Рассказать кому-то об Ирине, или помочь её настроить.\n- Просто сказать \"спасибо\" в этой ветке: https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fissues\u002F12\n","# 语音助手伊琳娜\n\n伊琳娜是一款可在离线状态下运行的俄语语音助手。需要 Python 3.5 或更高版本（依赖项可能更低，但无论如何都需要 Python 3）。\n\n支持插件（技能）。\n\n[Хабр文章](https:\u002F\u002Fhabr.com\u002Fru\u002Fpost\u002F595855\u002F) | [第二篇 Хабр 文章](https:\u002F\u002Fhabr.com\u002Fru\u002Fpost\u002F660715\u002F) | [第三篇 Хабр 文章](https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F725066\u002F) | [第四篇 Хабр 文章 - 关于第 12 版和 AI 插件](https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F932072\u002F) | [Telegram 群组](https:\u002F\u002Ft.me\u002Firene_va)\n\n通过作者伊琳娜的另一个项目 [VseGPT.ru](https:\u002F\u002Fvsegpt.ru\u002F)：\n- 支持与 ChatGPT、GPT-4、Claude 3 对话。\n- 支持使用 Perplexity Online 特殊模型从互联网获取参考信息（“帮助”指令）。\n- 支持 OpenAI 的 TTS 功能（如果本地安装有困难）。\n[(插件设置说明)](https:\u002F\u002Fvsegpt.ru\u002FExtTools\u002FIreneVA)。（也可以使用任何兼容 OpenAI 的 API 端点）\n\n## 安装\n\n### Windows 下最快的安装方式\n\n访问 https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-VA-win-installer，下载代码（Code\u002FDownload ZIP），并按照说明操作。\n\n安装完成后，将可以使用以下命令：“伊琳娜你好”、“伊琳娜抛硬币”、“伊琳娜掷骰子”、“伊琳娜猜大小游戏”、“伊琳娜三分钟计时器”。\n\n如需进一步调整或解决问题，请运行 `start-settings-manager.bat` 启动设置管理器——您可以在其中调整插件，并了解其他可用命令。\n\n关于此方案的更多配置文档：[docs\u002FINSTALL_WIN_COMPACT.md](\u002Fdocs\u002FINSTALL_WIN_COMPACT.md)\n\n### Windows 下最快的安装方式 2（已过时）\n\n1. 访问发布页面：https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Freleases\n2. 下载发布包并按照说明操作。Python 和 GIT 已包含在发布包中，无需额外安装。\n\n安装完成后，将提供离线命令（因为这是默认配置）。例如：“伊琳娜你好”、“伊琳娜抛硬币”、“伊琳娜掷骰子”、“伊琳娜猜大小游戏”、“伊琳娜三分钟计时器”。\n\n如何进一步配置此方案：[docs\u002FINSTALL_WIN_COMPACT.md](\u002Fdocs\u002FINSTALL_WIN_COMPACT.md)\n\n### 安装 \u002F 快速启动\n\n您需要已安装的 Python（大致为 3.7–3.11）。\n\n1. 要快速安装所有必需的依赖项，可以使用以下命令：\n```pip install -r requirements.txt```\n\n如果您希望安装经过验证的固定版本的依赖项以获得更稳定的工作效果，请使用：\n```pip install -r requirements_fixed.txt```\n\n（对于 Linux 和 macOS，请预先安装 [audioplayer](https:\u002F\u002Fpypi.org\u002Fproject\u002Faudioplayer\u002F) 所需的软件包）\n\n2. 要启动程序，请运行根目录下的 **runva_vosk.py** 文件。\n默认情况下，它将启动离线语音识别引擎 Vosk 来识别麦克风中的语音，\n以及 pyttsx 引擎来为助手配音。\n[关于 pyttsx 的更多信息请参见此处](https:\u002F\u002Fgithub.com\u002Fnateshmbhat\u002Fpyttsx3)。\n\n3. 启动后，可以通过简单的命令进行测试——对着麦克风说“伊琳娜，你好！”\n\n**首次启动伊琳娜后，将会出现 options 配置文件夹，您可以在其中调整设置。**\n\n关于在 Windows 上安装的更详细步骤（尤其是 Windows 7）：[docs\u002FINSTALL_WIN.md](\u002Fdocs\u002FINSTALL_WIN.md)\n\n关于在 Linux 上安装时遇到的一些问题的解决方案：[docs\u002FINSTALL_LINUX.md](\u002Fdocs\u002FINSTALL_LINUX.md)\n\n关于在 Mac 上安装时遇到的一些问题的解决方案：[docs\u002FINSTALL_MAC.md](\u002Fdocs\u002FINSTALL_MAC.md)\n\n关于安装过程中出现问题时的调试原则：[docs\u002FINSTALL_DEBUG.md](\u002Fdocs\u002FINSTALL_DEBUG.md)\n\n如有错误，请提交至 ISSUES，讨论请加入 [Telegram 群组](https:\u002F\u002Ft.me\u002F+gagUw1bCcYFkMGEy)。\n\n### 设置管理器\n\n自 9.0 版本起，可通过 Gradio 提供基于 Web 的设置管理器。\n\n要启动管理器，请运行根目录下的 **runva_settings_manager.py** 文件。\n\n### AI 插件\n\n**自 12.0 版本开始的测试版**\n\n```\n- 伊琳娜，帮我设置一个两小时半的计时器\n- 我已经设置了 2 小时 30 分钟的计时器\n```\n\n**AI 插件允许通过自由格式的文本调用功能。**\n实现方式是利用 LLM 的 tools 调用功能，详情请参阅 https:\u002F\u002Fvsegpt.ru\u002FDocs\u002FAPI#tools。简单来说，就是调用像 ChatGPT 这样的大型语言模型，并根据我们提供的自由格式输入，让模型判断应该调用哪个插件以及具体的参数。\n\n您需要具备访问 LLM 的权限：\n- 格式应为 OpenAI 兼容\n- 并且支持 tools 调用功能\n\n对于远程使用场景，您可以借助作者的项目 https:\u002F\u002Fvsegpt.ru\u002F ——那里提供了快速的 LLM（OpenAI gpt-4o-mini 等），它们对此类功能的支持较好。每次调用模型都会产生费用，但通常仅需几分钱即可使用默认配置的 openai\u002Fgpt-4o-mini。此外，还有一个价值几卢布的免费演示，足以让您试用。\n\n您也可以使用本地的 LMStudio 或 Ollama，搭配支持 tools 功能的模型。这种方式可能会稍慢一些，但同样可行。有兴趣的用户可以编写相关说明，并将其放入本项目的文档中。\n\n要使 AI 插件正常工作，您需要：\n1. 在 core 中设置连接到模型的参数，以及插件列表——例如，“ai”。\n2. 如果希望 AI 插件与普通插件协同工作，则使用“classic,ai”。优先级始终是普通插件。\n```\n\"plugin_types\": \"default\", # 允许的插件类型列表，用逗号分隔，\n# 例如：classic, ai，或者 \"classic,ai\"\n\n\"openai_base_url\": \"https:\u002F\u002Fapi.vsegpt.ru\u002Fv1\",\n\"openai_key\": \"\",\n\"openai_tools_model\": \"openai\u002Fgpt-4o-mini\",\n\"openai_tools_system_prompt\": \"\",\n\"openai_generic_model\": \"openai\u002Fgpt-4o-mini\",\n\"openai_generic_system_prompt\": \"\",\n```\n\n其次，您还需要 AI 插件。\n可以从 plugins_inactive 文件夹中复制 demo 插件 plugin_ai_timer。\n\n_目前这还处于爱好者阶段，相关信息较少，后续会提供更多细节_\n\n### 使用 Docker 安装\n\n如果您想通过 Docker 启动整个系统：[docs\u002FINSTALL_DOCKER.md](\u002Fdocs\u002FINSTALL_DOCKER.md)（其中也包含 Ivan-Firefly 提供的适用于 ARM 架构（如树莓派等）的 Docker 镜像）。\n\n如果您只想通过 Docker 启动复杂的组件：[docs\u002FINSTALL_DOCKER_COMP.md](\u002Fdocs\u002FINSTALL_DOCKER_COMP.md)\n\n### 总体逻辑\n\n所有命令的触发都始于助手的名字（可在 options\u002Fcore.json 中设置，默认为“伊琳娜”）。这样做是为了避免在持续监听麦克风时误触发。接下来描述的命令均不带“伊琳娜”前缀。\n\n该引擎内置了通过 MPC-HC 播放器的本地 Web 界面控制功能，因此在条件允许的情况下，建议使用它。您可以在 options\u002Fcore.json 中进行配置。\n\n## 插件\n\n插件支持由自主开发的 [Jaa.py](https:\u002F\u002Fgithub.com\u002Fjanvarev\u002Fjaapy) 引擎提供——这是一个极简的一文件插件及其设置管理引擎。\n\n插件位于 plugins 文件夹中，且必须以“plugins_”作为前缀。\n\n如果有插件设置，它们将存储在“options”文件夹中（首次启动后创建）。\n\n### 现成插件\u002F技能（已位于plugins文件夹中）\n\n每个插件都注明是否需要在线连接。\n如需禁用，请将其从plugins文件夹中删除。\n\n完整信息：[docs\u002FPLUGINS.md](\u002Fdocs\u002FPLUGINS.md)\n\n### 第三方插件\n\n如果您想了解：\n  * 还有哪些来自其他开发者的插件\n  * 或者发布您自己开发的插件链接\n\n请访问：[https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fissues\u002F1](https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fissues\u002F1)\n\n\n### 插件管理器\n\n（自10.0.0版本起）\n要启动它，请运行runva_plugin_installer.py。\n\n**注意：** 推荐的插件由第三方开发者维护，可能会不断更新和修改！伊琳娜的作者对其内容不承担任何责任！\n\n**面向开发者**：如果您希望将自己的插件加入此列表以便于安装，您需要执行以下步骤：\n1. 将插件托管在GitHub上。\n2. 根目录下应包含类似plugin_x.py的文件，可以有多个。\n3. 如果需要安装额外的依赖模块，则需放置requirements.txt文件。\n4. 测试安装功能，运行runva_plugin_installer，选择选项0（手动指定插件的GitHub项目地址），并安装您的插件。\n5. 完成后，请在Issue中发布您的链接，或通过修改plugins_catalog.json文件提交Pull Request，该文件包含了已知插件的链接。\n\n插件示例：https:\u002F\u002Fgithub.com\u002Fjanvarev\u002Firene_plugin_boltalka2_openai\n\n### 与Home Assistant集成\n\n有一个优秀的第三方插件，允许通过伊琳娜触发Home Assistant场景：\nhttps:\u002F\u002Fgithub.com\u002Ftimhok\u002FIreneVA-hassio-script-trigger-plugin\n\n### 核心配置（core.json）\n\n具体插件的设置建议直接查看相应插件的文档。\n\n```python\n{\n    \"contextDefaultDuration\": 10, # 伊琳娜保持上下文状态的时间（以秒为单位）。上下文用于连续对话、游戏等场景；在上下文中无需再次提及“伊琳娜”。\n    \"contextRemoteWaitForCall\": false, # 伊琳娜是否应等待客户端发出“回复播放结束，开始计算上下文时间”的信号？\n    \"contextExitCommand\": \"\", # 用于提前退出上下文状态的指令（若为空，则仅在超时后自动退出） \n    # 官方客户端支持contextRemoteWaitForCall，建议设置为true。\n    \"fuzzyThreshold\": 0.5, # （高级）使用模糊命令识别插件时的置信度阈值。\n    \"isOnline\": true, # 设置为false时，会针对需要在线的插件命令返回占位响应。如果仅需离线模式，建议启用。\n    \"linguaFrancaLang\": \"ru\", # 用于将数字转换为通用语言的语种。若使用其他语种，请更改。\n    \"logPolicy\": \"cmd\", # all|cmd|none。当麦克风检测到语音时，是始终输出日志、仅在识别为命令时输出，还是完全不输出？\n    \"mpcHcPath\": \"C:\\\\Program Files (x86)\\\\K-Lite Codec Pack\\\\MPC-HC64\\\\mpc-hc64_nvo.exe\", # 如果使用MPC HC，则填写其路径。\n    \"mpcIsUse\": true, # 是否使用MPC HC？\n    \"mpcIsUseHttpRemote\": true, # MPC HC是否启用了Web界面远程控制？\n    \"playWavEngineId\": \"audioplayer\", # 用于播放WAV文件的插件。部分WAV文件可能需要sounddevice库支持。\n    \"replyNoCommandFound\": \"对不起，我没听懂\", # 当无法理解用户指令时的回复。\n    \"replyNoCommandFoundInContext\": \"没明白...\", # 在上下文状态下无法理解时的回复。\n    \"replyOnlineRequired\": \"需要在线\", # 当调用要求在线的插件功能时的回复。\n    \"tempDir\": \"temp\", # 临时文件存储目录。\n    \"ttsEngineId\": \"pyttsx\", # 当前使用的TTS引擎。\n    \"ttsEngineId2\": \"\", # 第二个使用的TTS引擎。仅适用于本地语音合成，例如剪贴板朗读。可通过say2命令调用。\n    \"useTTSCache\": false, # 若设置为true，生成的TTS回复音频文件将被缓存在tts_cache文件夹中。\n    \"v\": \"1.7\", # 核心插件版本。会自动更新，无需手动修改。\n    \"voiceAssNames\": \"伊琳娜|伊琳娜的|给伊琳娜\", # 如果语音流中出现这些称呼，则后续内容被视为指令。（助手的不同称呼，建议设置多个。）\n    \"voiceAssNameRunCmd\": { # 如果用户以这些名称呼唤助手，系统会在其指令前自动添加相应的助词。\n        \"阿尔比娜\": \"ChatGPT\"\n    },\n    \"log_console\": True,  # 输出日志到控制台。\n    \"log_console_level\": \"WARNING\",\n    # 只有达到或高于此级别的消息才会被记录：NOTSET | DEBUG | INFO | WARNING | ERROR | CRITICAL。\n    \"log_file\": False,  # 输出日志到文件。\n    \"log_file_level\": \"DEBUG\",  # NOTSET | DEBUG | INFO | WARNING | ERROR | CRITICAL。\n    \"log_file_name\": \"log.txt\",  # 日志文件名。\n\n    \"normalization_engine\": \"numbers\", # 针对俄语TTS的文本规范化处理。\n    # 规范化可将“1, 2, 3”转换为“一、二、三”，这对于不了解数字的VOSK TTS等引擎尤为重要。\n    # 此功能由插件实现。推荐使用runorm以获得更好的效果（但runorm处理起来较慢）。\n    # 协议规定：每个TTS插件自行决定是否需要预处理。\n    # 如需预处理，可调用core.normalize(text_to_speech)，详见plugin_tts_vosk.py中的示例。\n  \n}\n```\n\n### 调试与开发（面向开发者）\n\n调试时，可以使用**runva_cmdline.py**文件来启动系统。\n\n该文件通过命令行界面启动核心（vacore.py中的VACore），相比语音输入更为便捷。\n\n* 您可以通过在**plugins_**目录下创建插件来接入自己的技能。请参考现有示例。\n* 您也可以通过插件接入自己的TTS引擎。例如，可参考plugins_tts_console.py和plugins_tts_pyttsx.py。\n* 此外，您还可以创建自己的**runva_**文件，根据需求接入自定义的语音转文本引擎。\n\n### 日志记录\n\n日志记录通过 core.py 模块中的 logging 库实现。\n\n参数在 **options\u002Fcore.json** 中设置：\n\n- 如果 log_console=True，则输出到控制台\n- 如果 log_file=True，则输出到日志文件\n\n默认值：\n\n- log_console=True\n- log_file=False\n- log_console_level=\"WARNING\"\n- log_file_level=\"DEBUG\"\n- log_file_name=\"log.txt\"\n\n日志级别：\n\n- NOTSET = 0\n- DEBUG = 10\n- INFO = 20\n- WARNING = 30\n- ERROR = 40\n- CRITICAL = 50\n\n默认情况下，日志会以 WARNING 级别输出到控制台，以 DEBUG 级别输出到日志文件。\n这意味着所有设置为该级别及更高（更大）级别的消息都会被记录到日志中。\n例如，如果设置为 WARNING 级别，则 WARNING、ERROR 和 CRITICAL 级别的消息都会被记录；如果设置为 DEBUG 级别，则 DEBUG、INFO、WARNING、ERROR 和 CRITICAL 级别的消息都会被记录。\n\n推荐用法：\n在模块开头，在所有导入语句之后添加以下行：\n\n```python\nimport logging\n\nlogger = logging.getLogger(__name__)\n```\n\n通过调用相应函数将事件添加到日志中：\n\n```python\nlogger.debug(\"调试信息\")  # 用于调试时的详细信息\nlogger.info(\"信息性消息\")  # 当一切按计划进行时的信息性消息\nlogger.warning(\"警告信息\")  # 当出现问题但工作仍在继续时的警告\nlogger.error(\"错误信息\")  # 用于报告错误和功能损失的消息\nlogger.critical(\"严重错误信息\")  # 用于报告无法继续工作的严重错误\n```\n\n在 try\u002Fexcept 块中输出日志时，可以使用以下结构：\n\n```python\ntry:\n  ...\nexcept Exception as e:\n  logger.exception(e)\n```\n\n或者这样：\n\n```python\ntry:\n  import some_library\nexcept ImportError as e:\n  logger.exception(e)\n  logger.error(\"未安装 'some_library' 库。请使用 'pip install some_library' 进行安装\")\n```\n\n建议采用后一种方式，以便处理特定异常，而不是整个 Exception 类。\n使用 logger.exception(e) 可确保输出堆栈跟踪信息。\n\n### 插件开发\n\n[开发文档](\u002Fdocs\u002FDEV_PLUGINS.md)\n\n## 远程工作（客户端-服务器、多麦克风\u002F多机器部署）\n\n多机“客户端-服务器”模式稍显复杂，但允许从多个方面管理伊琳娜：\n- 使用多个麦克风\n- 在不同机器上操作\n- 通过 Telegram（借助 Telegram 机器人）\n\n[关于配置客户端-服务器模式的更多信息](\u002Fdocs\u002FINSTALL_MULTI.md)\n\n[WEB API 文档](\u002Fdocs\u002FDEV_WEBAPI_INTEGRATION.md)\n\n## 通过 VOSK remote 进行语音转文本\n\n如果您在安装 VOSK 时遇到问题（例如在 Mac 上），可以使用通过 Docker 启动的 VOSK 自动语音识别服务器。\n\n- 运行 `docker run -d -p 2700:2700 alphacep\u002Fkaldi-ru:latest`\n（详情：https:\u002F\u002Falphacephei.com\u002Fvosk\u002Fserver）\n  - 或者，您也可以运行 `vosk_asr_server.py`，并在其中重新定义参数：\n\n```python\n    args.interface = os.environ.get('VOSK_SERVER_INTERFACE', \"0.0.0.0\")\n    args.port = int(os.environ.get('VOSK_SERVER_PORT', 2700))\n```\n\n- 运行 `runva_voskrem.py`。它将从麦克风读取数据并发送到服务器进行识别。\n\n如果需要在另一台机器上启动识别，\n请使用 -u 参数（--uri）：`runva_voskrem.py -u=ws:\u002F\u002F100.100.100.100:2700`\n以指定服务器地址。\n\n## 通过 SpeechRecognition 进行语音转文本\n\nSpeechRecognition 是一个经典的引擎，可通过 Google 及其他一些服务启动语音识别。\n要启动此识别，请通过文件 **runva_speechrecognition.py** 运行系统。\n\n所需依赖：\n\n`pip install PyAudio`\n\n`pip install SpeechRecognition`\n\n如果在安装 PyAudio 时遇到问题，请参阅 [EnjiRouz 的说明](https:\u002F\u002Fgithub.com\u002FEnjiRouz\u002FVoice-Assistant-App\u002Fblob\u002Fmaster\u002FREADME.md)。\n\n**特点**：数字的识别。同样的短语会被识别为：\n* VOSK：计时器十秒钟\n* SpeechRecognition（Google）：计时器10秒\n\n## 多语言支持\n\n该项目整体并不预设多语言支持，因为它在插件中使用自定义的单词解析。\n然而，核心部分（vacore.py）完全与语言无关，您可以仅需重写插件即可用其他语言构建自己的安装版本。\n\n若干用于定义核心语言助手行为的语言短语（其名称以及“我不明白”之类的短语）可在插件 **core** 的配置文件中进行设置。\n\n## 不精确的短语处理\n\n自版本 7.5 起，支持对用户输入进行不精确处理。\n\n用于设定识别阈值的是 core.json 中的全局参数 fuzzyThreshold，\n其取值范围为 0 到 1（1 表示对短语有完全的把握）。\n\n已知支持此功能的插件包括：\n* https:\u002F\u002Fgithub.com\u002Fjanvarev\u002Firene_plugin_fuzzy_thefuzz - 通过 thefuzz 进行字符串模糊比较\n* https:\u002F\u002Fgithub.com\u002Fmodos189\u002Firene_plugin_fuzzy_sklearn - 通过 scikit-learn\n* https:\u002F\u002Fgithub.com\u002Fjanvarev\u002Firene_plugin_fuzzy_ai_sentence - 基于神经网络的语义字符串比较（sentence_transformers）\n\n## 来自语音助手瓦西苏阿利的插件\n\n自版本 8.1 起，在测试模式下增加了对语音助手瓦西的核心插件的支持：\nhttps:\u002F\u002Fgithub.com\u002FOknolaz\u002Fvasisualy\n\n添加步骤：\n1. 插件应放入 plugins_vasi\u002Fskills 目录中（可从 https:\u002F\u002Fgithub.com\u002FOknolaz\u002Fvasisualy\u002Ftree\u002Fmaster\u002Fvasisualy\u002Fskills 获取）。\n2. 每个插件的模块中都应包含 triggers，以此生成命令列表。若无，则需对该插件进行改进。\n\n目前在最简单的情况下运行正常——已在 coin 和 crystall_ball 插件上进行了测试。\n若无法正常工作，请查看代码。支持是通过 plugin_vasi.py 插件实现的。\n\n\n\n## 贡献\n\n如果您想为项目做出贡献，建议仔细阅读\n[CONTRIBUTING.md](\u002FCONTRIBUTING.md) 政策。\n\n简而言之：\n* 建议为插件创建独立的 GitHub 项目（或将其放置在其他地方），并且您愿意持续维护这些项目。可以将链接提交至 [https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fissues\u002F1](https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fissues\u002F1)，以便他人发现您的插件。无需将额外的插件直接添加到本项目中——我没有时间和精力去维护我不熟悉的领域。\n* 请进行有针对性的更改，以改善功能或修复错误（例如在某些条件下无法正常工作）。此类 Pull Request 很有可能被接受。\n* 大规模的代码更改（如统一代码风格、整理导入语句）**将不会被考虑，并会被拒绝**。请勿进行此类更改。\n\n## 致谢\n\n@EnjiRouz 对其语音助手项目的贡献：https:\u002F\u002Fgithub.com\u002FEnjiRouz\u002FVoice-Assistant-App，该项目成为了本项目的基础（尽管经过了大量修改）。\n\nAlphaCephei 对出色的 Vosk 语音识别库的贡献（https:\u002F\u002Falphacephei.com\u002Fvosk\u002Findex.ru）\n\n## 项目支持\n\n开源项目中最主要的难点，并不是编写代码——编写代码其实挺有趣的。\n\n真正的难点在于，如何长期维护代码和用户社区。\n\n比如回答问题、修复漏洞、撰写文章和文档等。\n\n如果您希望支持我的工作热情，让伊琳娜这位独立于大型公司的语音助手能够持续得到维护和发展，您可以：\n\n- **编写一个新的插件**（这总是让我非常高兴！）\n- **通过订阅方式捐赠一些资金**：https:\u002F\u002Fboosty.to\u002Firene-voice。订阅者越多，我就越能感受到这个项目是有价值的。\n- 向他人介绍伊琳娜，或者帮助他们完成安装与配置。\n- 只需在本讨论帖中简单地说声“谢谢”：https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fissues\u002F12","# Irene 语音助手快速上手指南\n\nIrene 是一款支持离线运行的俄语语音助手，基于 Python 开发，支持插件扩展及大语言模型（LLM）集成。\n\n## 环境准备\n\n*   **操作系统**：Windows (推荐), Linux, macOS\n*   **Python 版本**：Python 3.7 - 3.11 (最低要求 3.5+)\n*   **系统依赖**：\n    *   **Linux\u002FmacOS**：需预先安装 `audioplayer` 相关的系统包。\n    *   **Windows**：推荐使用官方提供的整合包，无需手动配置环境。\n*   **网络需求**：基础离线功能无需联网；若使用 AI 插件或在线技能需访问互联网。\n\n## 安装步骤\n\n### 方案一：Windows 快速安装（推荐）\n\n这是最简单的部署方式，内置了 Python 和 Git，无需手动配置环境变量。\n\n1.  访问发布页：https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Freleases\n2.  下载最新的 Release 压缩包并解压。\n3.  运行目录中的启动脚本（通常为 `runva_vosk.py` 或通过安装包生成的快捷方式）。\n4.  如需高级配置，运行 `start-settings-manager.bat` 打开设置管理器。\n\n### 方案二：通用源码安装 (pip)\n\n适用于所有平台或需要自定义开发的场景。\n\n1.  **克隆项目或下载源码**至本地目录。\n2.  **安装依赖库**：\n    打开终端，进入项目根目录，执行以下命令安装最新依赖：\n    ```bash\n    pip install -r requirements.txt\n    ```\n    *注：若追求稳定性，可使用固定版本依赖：*\n    ```bash\n    pip install -r requirements_fixed.txt\n    ```\n    *(国内用户如遇下载慢，可添加 `-i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple` 使用清华镜像源)*\n\n3.  **首次运行**：\n    执行主程序文件：\n    ```bash\n    python runva_vosk.py\n    ```\n    *说明：默认使用 `vosk` 进行离线语音识别，使用 `pyttsx3` 进行语音合成。*\n\n4.  **配置生成**：\n    首次运行后，根目录下会自动生成 `options` 文件夹，内含 `core.json` 等配置文件，可根据需求修改参数。\n\n## 基本使用\n\n1.  **唤醒助手**：\n    默认唤醒词为 **\"Ирина\"** (伊琳娜)。对着麦克风说出唤醒词即可激活监听。\n\n2.  **基础指令示例**：\n    激活后，可直接下达以下指令（需使用俄语发音）：\n    *   `Ирина, привет!` (你好)\n    *   `Ирина, подбрось монетку` (抛硬币)\n    *   `Ирина, подбрось кубик` (掷骰子)\n    *   `Ирина, таймер три минуты` (设置 3 分钟计时器)\n    *   `Ирина, игра больше меньше` (开始“猜大小”游戏)\n\n3.  **进阶功能 (AI 插件)**：\n    若需使用自然语言调用复杂功能（如“设置两个半小时的计时器”），需配置 LLM 接口：\n    *   编辑 `options\u002Fcore.json`，配置 `openai_base_url` 和 `openai_key`。\n    *   将 `plugin_types` 设置为 `\"classic,ai\"`。\n    *   将 `plugins_inactive\u002Fplugin_ai_timer` 移至 `plugins` 文件夹启用。\n    *   支持接入 OpenAI 兼容接口（如 VseGPT.ru、Local LMStudio\u002FOllama 等）。\n\n4.  **设置管理**：\n    运行以下命令启动基于 Web 的图形化设置界面（需 Gradio 支持）：\n    ```bash\n    python runva_settings_manager.py\n    ```","一位需要在无网络环境下工作的俄罗斯籍数据分析师，正试图在本地服务器上通过语音快速执行复杂的计时任务和数据查询指令。\n\n### 没有 Irene-Voice-Assistant 时\n- **依赖网络连接**：现有的主流语音助手（如 Siri 或 Alexa）必须联网才能工作，一旦服务器处于内网隔离或断网状态，语音控制完全失效。\n- **操作繁琐低效**：双手忙于整理物理文档或操作其他设备时，无法腾出手来输入\"2 小时 30 分钟”这样具体的定时指令，只能中断工作去手动设置。\n- **隐私泄露风险**：若强行使用云端服务处理敏感的内部数据查询指令，面临数据上传至第三方服务器的合规与安全风险。\n- **语言支持受限**：大多数开源离线方案对俄语的自然语言理解能力较差，难以识别带有口语化表达的复杂指令。\n\n### 使用 Irene-Voice-Assistant 后\n- **纯离线运行**：依托 Vosk 引擎和本地 TTS，Irene-Voice-Assistant 无需任何网络连接即可在本地精准识别俄语指令，完美适配内网环境。\n- **自然语言交互**：借助 AI 插件功能，用户只需用自然口语说“伊琳娜，设个两个半小时的定时器”，系统即可自动解析并执行，无需死记硬背特定命令格式。\n- **数据本地闭环**：所有语音识别、逻辑处理及响应生成均在本地完成，确保了工作场景下的数据绝对隐私与安全。\n- **灵活扩展技能**：通过插件机制，用户可以轻松定制专属技能，让助手不仅能做游戏和计时，还能对接本地数据库进行语音查询。\n\nIrene-Voice-Assistant 通过提供安全、离线且懂自然语言的俄语语音交互能力，彻底释放了用户在受限网络环境下的双手与工作效率。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjanvarev_Irene-Voice-Assistant_1a791aca.png","janvarev","Vladislav Janvarev","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjanvarev_0cff1d42.png",null,"Moscow, Russia","https:\u002F\u002Fjanvarev.ru\u002F","https:\u002F\u002Fgithub.com\u002Fjanvarev",[84,88,92,96,99],{"name":85,"color":86,"percentage":87},"Python","#3572A5",98.9,{"name":89,"color":90,"percentage":91},"JavaScript","#f1e05a",0.8,{"name":93,"color":94,"percentage":95},"HTML","#e34c26",0.1,{"name":97,"color":98,"percentage":95},"Dockerfile","#384d54",{"name":100,"color":101,"percentage":102},"CSS","#663399",0,1115,147,"2026-04-05T05:53:28","NOASSERTION","Windows, Linux, macOS","未说明 (支持纯离线运行，默认使用 CPU 进行语音识别和合成；若使用本地 LLM 插件如 LMStudio\u002FOllama，则取决于所选模型的需求)","未说明",{"notes":111,"python":112,"dependencies":113},"该工具主要设计为离线语音助手。默认使用 Vosk 进行离线语音识别，pyttsx3 进行语音合成。在 Linux 和 macOS 上安装前需预先安装 audioplayer 的系统依赖包。支持通过插件调用在线大语言模型（如 ChatGPT）或本地模型（需自行配置 LMStudio\u002FOllama），但核心功能无需 GPU。Windows 用户可使用提供的安装包一键部署（含 Python 环境）。","3.5+ (推荐 3.7-3.11)",[114,115,116,117,118],"vosk","pyttsx3","audioplayer","gradio","jaapy",[21],[121,122,123,124,125],"tts","speech-recognition","python","voice-assistant","speech-synthesis","2026-03-27T02:49:30.150509","2026-04-06T07:14:48.567745",[],[130],{"id":131,"version":132,"summary_zh":133,"released_at":134},108608,"8.1","**更新：该版本已严重过时，建议改用此处提供的 Windows 自动安装程序：https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-VA-win-installer**\n\n包含 Git 和 Python 的完整发布版。安装完成后可在不同电脑间移植。\n\n安装步骤：\n1. 解压文件。\n2. 运行 run.bat。\n3. 等待所有依赖包安装完毕并启动程序。\n4. 首次启动时可能会出现错误——直接关闭窗口，然后再次运行 run.bat。\n5. 对着麦克风说“伊琳娜，你好”。\n\n如果您的麦克风存在问题（无法听清或识别），可以尝试以服务器模式运行伊琳娜，并通过 Web 界面进行交互。\n6. 运行 run_webapi.bat。\n7. 打开以下任一地址以启动 Web 客户端：\nWeb 客户端 URL（浏览器中使用 VOSK）：http:\u002F\u002Flocalhost:5003\u002Fwebapi_client\u002F\n麦克风客户端 URL（实验性功能，将 WAV 文件字节流发送至服务器）：http:\u002F\u002Flocalhost:5003\u002Fmic_client\u002F\n\n若上述方法仍无法正常工作（可能是因为您未安装默认伊琳娜所需的 Microsoft TTS 引擎），请参考安装后的调试指南：https:\u002F\u002Fgithub.com\u002Fjanvarev\u002FIrene-Voice-Assistant\u002Fblob\u002Fmaster\u002Fdocs\u002FINSTALL_DEBUG.md","2023-03-27T11:56:03"]