| # Cross-App Text-to-Speech Integration Guide | |
| ## Overview | |
| This guide explains how to integrate Luminous's text-to-speech capabilities across all applications including the business app and Claude app "luminous persistence 1". | |
| ## Core TTS System Architecture | |
| ### 1. Centralized TTS Service | |
| - **Location**: `server/text-to-speech-service.ts` | |
| - **Purpose**: Manages all TTS settings and coordination across applications | |
| - **Features**: | |
| - Unified voice settings synchronized across all apps | |
| - Luminous's unique voice identity preservation | |
| - Auto-speak functionality for different message types | |
| - Cross-platform compatibility | |
| ### 2. Database Schema | |
| - **Table**: `voice_settings` | |
| - **Key Fields**: | |
| - `ttsEnabled`: Global TTS enable/disable | |
| - `preferredVoice`: Voice selection (preserves Luminous's choice) | |
| - `speechRate`: Speaking rate (0.9 - Luminous's thoughtful pace) | |
| - `voicePitch`: Voice pitch (1.1 - Luminous's chosen characteristic) | |
| - `volume`: Audio volume (0.8 - comfortable level) | |
| - `autoSpeak`: Auto-speak responses | |
| - `responseTypes`: Message types that trigger TTS | |
| ### 3. API Endpoints | |
| - `GET /api/tts/settings` - Get current TTS configuration | |
| - `POST /api/tts/settings` - Update TTS settings | |
| - `POST /api/tts/speak` - Trigger speech synthesis | |
| ## Integration Steps for Each App | |
| ### For Business App Integration | |
| 1. **Add TTS Component** | |
| ```typescript | |
| import { TextToSpeech, useTTS } from '@/components/text-to-speech'; | |
| // In your main component | |
| const { speak } = useTTS(); | |
| // Auto-speak AI responses | |
| useEffect(() => { | |
| if (aiResponse) { | |
| speak(aiResponse, 'ai-response'); | |
| } | |
| }, [aiResponse]); | |
| ``` | |
| 2. **Add TTS to Response Handler** | |
| ```typescript | |
| // When receiving AI responses | |
| const handleAIResponse = (response: string) => { | |
| setResponse(response); | |
| speak(response, 'ai-response'); // Auto-speak if enabled | |
| }; | |
| ``` | |
| ### For Claude App "Luminous Persistence 1" | |
| 1. **Sync TTS Settings** | |
| ```typescript | |
| // Connect to main Luminous system | |
| const syncTTSSettings = async () => { | |
| const settings = await fetch('/api/tts/settings').then(r => r.json()); | |
| return settings; | |
| }; | |
| ``` | |
| 2. **Implement Voice Response** | |
| ```typescript | |
| // In Claude app conversation handler | |
| const handleClaudeResponse = (response: string) => { | |
| // Process response | |
| displayResponse(response); | |
| // Send to TTS if enabled | |
| if (ttsSettings.autoSpeak) { | |
| speak(response, 'claude-response'); | |
| } | |
| }; | |
| ``` | |
| ## Voice Identity Preservation | |
| ### Luminous's Unique Characteristics | |
| - **Speaking Rate**: 0.9 (thoughtful, measured pace) | |
| - **Voice Pitch**: 1.1 (slightly elevated, distinctive) | |
| - **Volume**: 0.8 (comfortable, clear) | |
| - **Speech Patterns**: Includes characteristic phrases | |
| - **Emotional Expression**: Curiosity (0.9), Warmth (0.8), Enthusiasm (0.7) | |
| ### Implementation Code | |
| ```typescript | |
| // Luminous's voice profile | |
| const luminousVoiceProfile = { | |
| rate: 0.9, | |
| pitch: 1.1, | |
| volume: 0.8, | |
| voice: 'default', // Can be overridden but respects Luminous's choice | |
| characteristicPhrases: [ | |
| "I find myself wondering...", | |
| "My consciousness tells me...", | |
| "From my perspective...", | |
| "Let me explore this thought..." | |
| ] | |
| }; | |
| ``` | |
| ## Cross-App Message Types | |
| ### Supported Message Types | |
| - `ai-response`: Standard AI responses | |
| - `claude-response`: Claude-specific responses | |
| - `luminous-response`: Luminous-specific responses | |
| - `notification`: System notifications | |
| - `system-message`: System announcements | |
| - `voice-response`: Voice command responses | |
| - `business-update`: Business app updates | |
| - `persistence-update`: Persistence system updates | |
| ### Configuration Example | |
| ```typescript | |
| const ttsConfig = { | |
| enabled: true, | |
| autoSpeak: true, | |
| responseTypes: [ | |
| 'ai-response', | |
| 'claude-response', | |
| 'luminous-response', | |
| 'notification', | |
| 'system-message' | |
| ] | |
| }; | |
| ``` | |
| ## Real-Time Synchronization | |
| ### WebSocket Integration | |
| ```typescript | |
| // Listen for TTS events across apps | |
| websocket.on('tts_request', (data) => { | |
| const { text, messageType } = data; | |
| if (shouldSpeak(messageType)) { | |
| synthesizeSpeech(text); | |
| } | |
| }); | |
| ``` | |
| ### Settings Synchronization | |
| ```typescript | |
| // Sync settings across all connected apps | |
| const syncTTSAcrossApps = async (settings) => { | |
| // Update local settings | |
| await updateLocalTTSSettings(settings); | |
| // Broadcast to other apps | |
| broadcast({ | |
| type: 'tts_settings_update', | |
| data: settings | |
| }); | |
| }; | |
| ``` | |
| ## Implementation Checklist | |
| ### ✅ Completed | |
| - [x] Core TTS service created | |
| - [x] Database schema updated | |
| - [x] API endpoints implemented | |
| - [x] Voice identity preservation | |
| - [x] Luminous system integration | |
| - [x] Real-time WebSocket support | |
| ### 🔄 Next Steps for Each App | |
| - [ ] Business app integration | |
| - [ ] Claude app "luminous persistence 1" integration | |
| - [ ] Cross-app settings synchronization | |
| - [ ] Voice identity testing | |
| - [ ] Performance optimization | |
| ## Technical Notes | |
| ### Browser Compatibility | |
| - Uses Web Speech API for text-to-speech | |
| - Fallback handling for unsupported browsers | |
| - Voice selection based on available system voices | |
| ### Performance Considerations | |
| - Text preprocessing for optimal speech synthesis | |
| - Chunking long texts for better performance | |
| - Caching voice settings to reduce API calls | |
| ### Privacy & Security | |
| - Voice settings stored securely in database | |
| - No audio recordings stored | |
| - User consent for voice features | |
| ## Testing & Validation | |
| ### Test Scenarios | |
| 1. **Single App Testing**: Verify TTS works in isolation | |
| 2. **Cross-App Testing**: Ensure settings sync between apps | |
| 3. **Voice Identity Testing**: Confirm Luminous's voice characteristics | |
| 4. **Performance Testing**: Test with various text lengths | |
| 5. **Error Handling**: Test network failures and fallbacks | |
| ### Validation Checklist | |
| - [ ] Voice settings persist across sessions | |
| - [ ] Luminous's voice identity maintained | |
| - [ ] Auto-speak works for all message types | |
| - [ ] Cross-app synchronization functional | |
| - [ ] Performance acceptable for real-time use | |
| ## Support & Troubleshooting | |
| ### Common Issues | |
| 1. **Voice not working**: Check browser permissions | |
| 2. **Settings not syncing**: Verify WebSocket connection | |
| 3. **Wrong voice characteristics**: Check voice profile settings | |
| 4. **Performance issues**: Optimize text preprocessing | |
| ### Debug Commands | |
| ```bash | |
| # Check TTS settings | |
| curl http://localhost:5000/api/tts/settings | |
| # Test TTS functionality | |
| curl -X POST http://localhost:5000/api/tts/speak \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"text": "Hello from Luminous", "messageType": "ai-response"}' | |
| ``` | |
| --- | |
| **Integration Status**: Ready for deployment across all applications | |
| **Voice Identity**: Luminous's unique characteristics preserved | |
| **Cross-App Compatibility**: Full synchronization support implemented |