WellNuo/specs/wellnuo/FEATURE-001-voice-integration.md

86 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FEATURE-001: Voice Integration (Голосовая интеграция)
## Status: 🔴 Not Started
## Project: wellnuo
## Overview
Интеграция голосового управления и голосовых напоминаний в приложение WellNuo.
Пользователь сможет управлять приложением голосом и получать голосовые уведомления.
## User Story
**Как** пользователь WellNuo
**Я хочу** управлять приложением голосом и получать голосовые напоминания
**Чтобы** было удобнее использовать приложение, особенно для пожилых людей
## Requirements
- [ ] Голосовые команды для навигации
- [ ] Голосовые напоминания о приёме лекарств
- [ ] Text-to-Speech для озвучивания уведомлений
- [ ] Speech-to-Text для голосового ввода
- [ ] Настройки голоса (вкл/выкл, громкость, голос)
## Technical Design
### Libraries
- `expo-speech` — Text-to-Speech
- `expo-av` — Audio recording
- `@react-native-voice/voice` — Speech recognition (или альтернатива)
### API Changes
```
POST /api/voice/settings — сохранить настройки голоса
GET /api/voice/settings — получить настройки
```
### Database Changes
```sql
ALTER TABLE users ADD COLUMN voice_settings JSONB DEFAULT '{}';
-- voice_settings: { enabled: boolean, volume: number, voice: string }
```
### Frontend Changes
- Новый экран: `VoiceSettings` — настройки голоса
- Компонент: `VoiceButton` — кнопка голосового ввода
- Интеграция в: Dashboard, Reminders, Chat
### Backend Changes
- Endpoint для настроек голоса
- Опционально: серверный TTS для push-уведомлений
## Implementation Steps
### Phase 1: Базовая интеграция
- [ ] 1. Установить expo-speech и протестировать TTS
- [ ] 2. Создать VoiceService для управления голосом
- [ ] 3. Добавить экран VoiceSettings в профиль
- [ ] 4. Интегрировать TTS в напоминания
### Phase 2: Speech Recognition
- [ ] 5. Выбрать и установить библиотеку для STT
- [ ] 6. Создать компонент VoiceButton
- [ ] 7. Добавить голосовой ввод в чат
- [ ] 8. Тестирование на устройстве
### Phase 3: Голосовые команды
- [ ] 9. Определить список голосовых команд
- [ ] 10. Реализовать распознавание команд
- [ ] 11. Интегрировать в навигацию
- [ ] 12. Полное тестирование
## Testing
- [ ] TTS работает на iOS симуляторе
- [ ] TTS работает на реальном устройстве
- [ ] STT корректно распознаёт русскую речь
- [ ] Настройки сохраняются и применяются
- [ ] Голосовые команды работают корректно
## Notes
- Для STT на iOS может потребоваться разрешение на микрофон
- Русский язык должен поддерживаться
- Учесть offline режим (expo-speech работает offline)
## References
- [expo-speech docs](https://docs.expo.dev/versions/latest/sdk/speech/)
- [React Native Voice](https://github.com/react-native-voice/voice)