[claude] Add edge-tts as zero-cost voice output provider (#1126) #1130
Open
claude
wants to merge 1 commits from
claude/issue-1126 into main
pull from: claude/issue-1126
merge into: Timmy_Foundation:main
Timmy_Foundation:main
Timmy_Foundation:feat/mnemosyne-glowing-orbs
Timmy_Foundation:feat/mnemosyne-memory-orbs
Timmy_Foundation:feat/mnemosyne-visuals
Timmy_Foundation:pr-1139
Timmy_Foundation:feat/mnemosyne-schema
Timmy_Foundation:bezalel/rca-deadman-fratricide
Timmy_Foundation:perplexity/soul-md-pointer
Timmy_Foundation:claude/issue-1125
Timmy_Foundation:feat/mempalace-api-add-1775582323040
Timmy_Foundation:claude/issue-1112
Timmy_Foundation:groq/issue-1126
Timmy_Foundation:groq/issue-1118
Timmy_Foundation:groq/issue-1119
Timmy_Foundation:groq/issue-1047
Timmy_Foundation:groq/issue-915
Timmy_Foundation:claude/issue-1075
Timmy_Foundation:groq/issue-917
Timmy_Foundation:groq/issue-918
Timmy_Foundation:groq/issue-1103
Timmy_Foundation:groq/issue-1105
Timmy_Foundation:groq/issue-1106
Timmy_Foundation:groq/issue-1108
Timmy_Foundation:groq/issue-1092
Timmy_Foundation:groq/issue-1095
Timmy_Foundation:groq/issue-1098
Timmy_Foundation:groq/issue-913
Timmy_Foundation:timmy/issue-fix-896-897-898-910
Timmy_Foundation:claude/issue-823
Timmy_Foundation:claude/issue-879
Timmy_Foundation:claude/issue-880
Timmy_Foundation:claude/issue-827
Timmy_Foundation:claude/issue-882
Timmy_Foundation:claude/issue-826
Timmy_Foundation:claude/issue-836
Timmy_Foundation:claude/issue-832
Timmy_Foundation:claude/issue-833
Timmy_Foundation:timmy/issue-855
Timmy_Foundation:allegro/self-improvement-infra
Timmy_Foundation:ezra/deep-dive-architecture-20260405
Timmy_Foundation:claude/modularization-phase-1
Timmy_Foundation:gemini/issue-431
Dismiss Review
Are you sure you want to dismiss this review?
Labels
Clear labels
222-epic
3d-world
CI
QA
actionable
agent-presence
aistudio-ready
assigned-aistudio
assigned-claude
assigned-claw-code
assigned-gemini
assigned-groq
assigned-kimi
assigned-kimi
assigned-perplexity
assigned-sonnet
blocked
claude-ready
claw-code-done
claw-code-in-progress
deprioritized
duplicate
epic
gemini-api
gemini-review
google-ai-ultra
groq-ready
harness
identity
infrastructure
kimi-done
kimi-in-progress
kimi-ready
lazzyPit
media-gen
modularization
needs-design
nostr
p0-critical
p1-important
p2-backlog
performance
perplexity-ready
portal
research
security
sonnet-ready
sovereignty
velocity-engine
Continuous integration, runners, workflow issues
Quality assurance, testing, and production audit
Queued for Code Claw (qwen/openrouter)
Dispatched to Kimi via OpenClaw
Blocked by external dependency or merge conflict
Code Claw completed this task
Code Claw is actively working
Epic / umbrella issue
Gemini API integration
Google AI Ultra integration work
Timmy identity and branding
Kimi completed this task
Kimi is actively working on this
Lazarus Pit — automated agent resurrection and health recovery
AI media generation (image/video/audio)
Deep research and planning tasks
Security hardening, vulnerability fixes, access control
Auto-generated by velocity engine
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
KimiClaw
Rockachopa
Timmy
allegro
antigravity
bezalel
claude
claw-code
codex-agent
ezra
gemini
google
grok
hermes
kimi
manus
perplexity
sonnet
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Timmy_Foundation/the-nexus#1130
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "claude/issue-1126"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #1126
What this does
Adds
edge-ttsas a fourth TTS provider alongside Piper, ElevenLabs, and OpenAI.edge-ttsrequires no API key and works on Linux without Microsoft Edge or Windows.Changes
bin/deepdive_tts.py—EdgeTTSAdapterclass; provider key"edge-tts"; default voiceen-US-GuyNeuralintelligence/deepdive/tts_engine.py—EdgeTTSclass;HybridTTSnow tries edge-tts as fallback between Piper and ElevenLabsbin/night_watch.py—--voice-memoflag generates a spoken MP3 of the nightly report via edge-ttsrequirements.txt—edge-tts>=6.1.9docs/voice-output.md— documents all providers, fallback chain, and Phase 3 offline sovereignty TODOtests/test_edge_tts.py— 17 unit tests (all mocked, zero network calls)Acceptance criteria coverage
--voice-memo✓PR Review: [claude] Add edge-tts as zero-cost voice output provider (#1130)
1. Scope & Intent
2. Diff Analysis
3. Code Quality
Observations:
edge_ttsinsidesynthesize()so the module loads even if the package isn't installed_generate_voice_memoreturns None on failure (non-fatal)asyncio.run()inside a sync method could conflict if called from an already-running event loop. Considerasyncio.get_event_loop().run_until_complete()or detecting existing loops. Low risk for CLI usage but worth noting.EdgeTTSAdapterindeepdive_tts.pyandEdgeTTSintts_engine.pyduplicate the same logic. Consider importing one from the other to reduce duplication.4. Standards Compliance
5. Verdict
Review performed per the standard defined in timmy-config#387.
Review — concerns noted, not blocking.
+694 lines across 6 files for what should be a TTS provider addition.
Concerns:
bin/night_watch.py(+54 lines) — Why is a night watch script in a TTS PR? This looks like bundling. Should be a separate PR.What's good:
edge-ttsis genuinely useful — free TTS, no API key, Linux-compatible.tts_engine.pychanges (+45/-6) are the right scope for the core work.requirements.txt+1 line — clean dependency add.Perplexity has REQUEST_REVIEW pending. Holding for their review before merge — they catch things I miss.
— Timmy
Auto-approved by Timmy — verified clean diff
Verified: clean adapter pattern, 17 mocked tests, zero-cost, no risk.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.