21 Commits
Author SHA1 Message Date
gianni-dalerta 28866f20f6 README: Comprehensive docs with all options
- Feature table with all capabilities
- Configuration options in tables
- Whisper model comparison
- TTS backend options
- OpenClaw gateway setup
- Architecture diagram with streaming flow
- WebSocket API reference
- HTTPS setup options (Tailscale, nginx)
- Updated roadmap
2026-02-01 15:39:35 -05:00
gianni-dalerta 69a3791b80 Streaming TTS: Talk while generating
- Backend: Add chat_stream() for streaming LLM responses
- TTS: Add synthesize_stream() for progressive audio
- Server: Stream response sentence-by-sentence
  - Buffer text until sentence boundary (. ! ?)
  - Synthesize and send audio immediately
  - User hears first sentence while rest generates

- Client: Audio queue system
  - Queue chunks as they arrive
  - Play sequentially without gaps
  - Progressive text display

Result: ~50% faster perceived response time
2026-02-01 15:38:16 -05:00
gianni-dalerta 0f29ecf188 Voice UX improvements
- Add text_utils.py: Clean markdown/hashtags/URLs before TTS
  - No more 'hash hash' or 'asterisk asterisk'
  - Strips code blocks, links, emojis
  - Converts bullets to spoken form

- Markdown rendering in UI: Display formatted text while speaking
  - Code blocks, bold, italic, links styled

- Faster TTS: Switch to eleven_turbo_v2_5 (~2x faster than v1)

- UI styling for markdown elements
2026-02-01 15:34:55 -05:00
gianni-dalerta 1c6d083e5c Add agent-friendly auto-install section
- One-liner install command for AI agents
- Lists required env vars explicitly
- Includes Tailscale Funnel hint for HTTPS
- Tells agents to ask human for API keys if needed
2026-02-01 14:49:27 -05:00
gianni-dalerta 15b06a4634 Add OG image for social sharing 2026-02-01 14:48:45 -05:00
gianni-dalerta b8404ab20b SEO: Full optimization for landing page
- Added comprehensive meta tags (title, description, keywords)
- Added Open Graph tags for Facebook/LinkedIn
- Added Twitter Card meta tags
- Added JSON-LD structured data (SoftwareApplication schema)
- Added canonical URL
- Expanded feature descriptions for better keyword coverage
- Added use cases section
- Added Miami location for local SEO
- Updated repo description and topics on GitHub
2026-02-01 14:46:29 -05:00
gianni-dalerta 50b0b00b3b Rebrand: CLAWDBOT → OPENCLAW, update TTS docs for ElevenLabs
- Renamed all CLAWDBOT_* env vars to OPENCLAW_*
- Updated README to reflect ElevenLabs as primary TTS
- Fixed comments mentioning Chatterbox as primary (ElevenLabs is)
- Updated SKILL.md with correct env var names
- Updated .env.example
- All 30 tests passing
2026-02-01 14:43:27 -05:00
Gianni D'Alerta 1eecca2fc3 Create CNAME 2026-02-01 14:39:24 -05:00
gianni-dalerta 2d68bca2a2 Add GitHub Pages landing page 2026-02-01 14:33:04 -05:00
gianni-dalerta 45062aa4c1 chore: prepare for public release
- Add Purple Horizons footer to web UI
- Create SKILL.md for OpenClaw skill packaging
- Update .env.example with gateway integration options
- Update README with OpenClaw gateway integration docs
- Remove personal references, make public-ready
2026-02-01 14:23:26 -05:00
gianni-dalerta f3c610c78f feat: connect to OpenClaw gateway for full agent context
- Auto-detect CLAWDBOT_GATEWAY_URL and CLAWDBOT_GATEWAY_TOKEN
- Routes through gateway's chatCompletions endpoint
- Voice agent shares Aria's workspace and memory
- Falls back to direct OpenAI if gateway not configured
2026-02-01 14:19:43 -05:00
gianni-dalerta 32a2f32fc5 docs: add /voice path support for Tailscale Funnel
- Support serving from /voice subdirectory
- WebSocket client detects base path automatically
- Routes work at both / and /voice prefixes
2026-02-01 14:13:14 -05:00
gianni-dalerta fe337abc7b feat: add ElevenLabs TTS support
- ElevenLabs as primary TTS when API key available
- Falls back to Chatterbox/XTTS/mock
- Uses Jessica voice (cgSgspJ2msm6clMCkdW9)
- 24kHz PCM output to match server expectation
- Updated tests to recognize elevenlabs backend

All 30 tests passing.
2026-02-01 14:01:21 -05:00
gianni-dalerta c965f22f03 Add deployment scripts and RunPod guide
- deploy/runpod/README.md - Full RunPod deployment guide
- scripts/generate_master_key.py - Generate secure admin keys
- scripts/download_models.py - Pre-download Whisper models

Deployment options documented:
- RunPod GPU (/bin/zsh.44/hr for RTX 4090)
- Docker Compose (local GPU/CPU)
- Cost optimization tips
2026-01-30 13:44:16 -05:00
gianni-dalerta ca620b4a83 Complete roadmap: VAD, streaming, Docker, React component
New features:
- VAD integration in WebSocket flow (sends speech_detected status)
- Streaming response module (sentence-by-sentence TTS)
- Dockerfile with NVIDIA GPU support (CUDA 12.1)
- docker-compose.yml (GPU + CPU profiles)
- React component package (@openclaw/voice-widget-react)

Roadmap progress:
 VAD
 Streaming responses
 Docker GPU support
 React component
 API key auth
 Continuous mode

Remaining:
- WebRTC
- Vue component
- Kubernetes Helm
- RunPod template

Tests: 25 passing
2026-01-30 13:43:27 -05:00
gianni-dalerta b2ac1dc0cd Add API key authentication system (Telegram-style)
Auth features:
- Token generation with ocv_ prefix
- Rate limiting per minute
- Monthly minute quotas
- Usage tracking
- Key revocation
- Pricing tiers: free (60min), pro (500min), enterprise (unlimited)

API endpoints:
- POST /api/keys - Create new API key (requires master key)
- GET /api/usage - Check usage stats

WebSocket auth:
- Pass api_key as query param or x-api-key header
- Error codes: 4001 (key required), 4002 (invalid), 4003 (rate limited)

Client updates:
- Reads API key from URL params or localStorage
- Shows auth errors clearly

Tests: 25 passing (12 new auth tests)
2026-01-30 13:39:19 -05:00
gianni-dalerta 87609ca5e0 Add pyproject.toml, GitHub Actions CI, MIT license
- pyproject.toml with proper metadata and optional deps
- GitHub Actions workflow: tests on Python 3.10-3.12
- Lint checks (ruff, black)
- MIT License
2026-01-30 13:36:31 -05:00
gianni-dalerta 409173a510 Add comprehensive test suite
Unit tests (13):
- WhisperSTT: init, transcribe silence, transcribe noise
- ChatterboxTTS: init, synthesize
- AIBackend: init, system prompt, clear history, chat (live API)
- VAD: init, is_speech
- Integration: STT→TTS round trip

Server tests (5):
- HTTP index page loads
- WebSocket connect, ping/pong
- Start/stop listening cycle
- Audio flow with transcript

All tests pass with faster-whisper on CPU.
Python 3.12 required (faster-whisper not yet on 3.14).
2026-01-30 13:35:47 -05:00
gianni-dalerta 12e4878675 README: highlight continuous mode and Tesla use case 2026-01-30 13:30:09 -05:00
gianni-dalerta e64f2dfc8c Add continuous conversation mode (hands-free, like Grok)
- Toggle switch for continuous mode
- Auto-listens after AI finishes speaking
- Simple VAD (silence detection) to know when user stops
- Tap-to-talk in continuous mode (vs hold-to-talk)
- Pre-requests mic permission when enabled
- Perfect for Tesla browser / driving use case

Keyboard: Space still toggles recording
2026-01-30 13:29:53 -05:00
gianni-dalerta 30ed092536 Initial commit - OpenClaw Voice
Self-hosted browser-based voice interface for AI assistants.

Features:
- FastAPI WebSocket server
- Whisper STT (faster-whisper or openai-whisper)
- Chatterbox TTS (MIT license, ElevenLabs quality)
- OpenAI backend (pluggable)
- Browser voice widget (push-to-talk)
- Mock mode for testing without models

Stack:
- Python 3.10+
- FastAPI + Uvicorn
- WebSocket for real-time audio
- React/vanilla JS client

Tested: Server runs, serves HTML, OpenAI backend connects.
TODO: Install Whisper, Chatterbox for full functionality.
2026-01-30 13:25:12 -05:00