3.7 KiB
3.7 KiB
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-Speechexpo-av— Audio recording@react-native-voice/voice— Speech recognition (или альтернатива)
API Changes
POST /api/voice/settings — сохранить настройки голоса
GET /api/voice/settings — получить настройки
Database Changes
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)