86 lines
3.7 KiB
Markdown
86 lines
3.7 KiB
Markdown
# 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)
|