Files
Blind/prompt.md
T
2026-09-11 19:47:15 +03:00

9 lines
4.7 KiB
Markdown

Идея проекта, интерфейс для незрячего человека, взаимодействие с AI и внешним миром посредством клавиатуры (ограниченный набор клавишь) и речи, Нормальная обратная связь и взаимодействие.
Наброски идей и архитектура:
1. Концепция управления: Три «волшебные» клавишиПоскольку он помнит клавиатуру, не нужно заставлять его искать буквы. Лучше всего привязать управление на крупные, крайние клавиши, которые невозможно перепутать на ощупь (например, Пробел, Enter, Escape или блок NumPad справа, если клавиатура полноразмерная).Клавиша «Слушай» (например, Длинный Пробел или NumIns/0): Нажал и держишь — программа слушает. Отпустил — программа обрабатывает и отвечает. Это гораздо надежнее, чем голосовая активация (которая может сработать от телевизора).Клавиша «Замолчи» (например, Escape или NumDel/.): Мгновенно прерывает речь ассистента, если ИИ начал говорить слишком длинно или не то. NVDA часто раздражает тем, что его тяжело быстро «заткнуть».Клавиша «Повтори» (например, Enter или NumEnter): Повторяет последнюю фразу ИИ, если отец отвлекся или недослышал.
2. Специфика голоса (Никакой навязчивости)Фильтрация текста: Перед тем как озвучить ответ от OpenRouter, очищайте его регулярными выражениями от Markdown-разметки (звездочки, решетки, списки). ИИ должен говорить чистым «человеческим» текстом.Тайм-ауты и паузы: Пожилые люди воспринимают информацию чуть медленнее. В edge-tts или другом движке выставьте скорость речи примерно на -10% или -15% от стандартной и увеличьте паузы между предложениями.Звуковые маркеры (Earcons) вместо слов: Вместо того чтобы говорить «Система готова», «Поиск в интернете», «Ошибка сети», используйте короткие, приятные звуки (клики, колокольчики).Например: Нажал кнопку записи -> короткий тихий пик (можно говорить). Отпустил -> другой звук (ИИ думает).
3. Архитектура модулей (Python)Чтобы программа работала стабильно в фоне на Windows, её архитектура должна быть событийно-ориентированной:Модуль глобальных хоткеев: Использовать библиотеку keyboard. Она позволяет перехватывать нажатия клавиш, даже если окно программы свернуто.Аудио-буфер (Запись): Библиотека sounddevice. Запись идет в массив в оперативной памяти, пока удерживается кнопка, и сразу после отпускания отправляется на STT.Менеджер диалога (State Machine): Программа должна строго понимать, в каком она состоянии (Ожидание / Запись / Запрос к API / Озвучка). Если программа говорит, а пользователь нажал кнопку записи — воспроизведение должно мгновенно стихать.
Модуль Telegram: Бот на aiogram крутится в отдельном потоке (через threading или asyncio). Если вас нет рядом, вы можете со своего телефона отправить в этот бот сообщение, а ПК отца озвучит его голосом: «Пришло сообщение от сына: ...». И он сможет тут же нажать кнопку и надиктовать ответ.