Commit graph

7 commits

Author SHA1 Message Date
a8865564ae Map all available Piper voices and expand Makefile downloads
- Added 40+ Piper voice mappings to voice_to_speaker.default.yaml
  * 20 English US voices (libritts_r speakers + single-speaker models)
  * 9 English GB voices
  * All voices use proper naming convention (en_us_*, en_gb_*)
  * Kept OpenAI-compatible aliases (alloy, echo, fable, onyx, nova, shimmer)

- Updated Makefile voices-piper target to download ALL voices:
  * 20 English US models (amy, arctic, bryce, danny, hfc_female, hfc_male, joe, john, kathleen, kristin, kusal, l2arctic, lessac, libritts, libritts_r, ljspeech, norman, reza_ibrahim, ryan, sam)
  * 9 English GB models (alan, alba, aru, cori, jenny_dioco, northern_english_male, semaine, southern_english_female, vctk)
  * Download function with error handling

- Updated main 'voices' target to include Silero downloads

🦝 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 13:16:22 -05:00
01e51b08b5 🦝 Raccoon Mission: Silero TTS integration complete with 140 voices
 Integrated Silero TTS as tts-1-silero model
- Fixed omegaconf dependency
- Fixed Silero API integration (torch.hub.load returns 2 values)
- Fixed model.to(device) returning None bug
- Mapped all 140 Silero voices across 5 languages:
  * English (en): 118 speakers (en_0 to en_117) + random
  * Russian (ru): 5 speakers (aidar, baya, kseniya, xenia, eugene) + random
  * German (de): 5 speakers (bernd_ungerer, eva_k, friedrich, hokuspokus, karlsson) + random
  * Spanish (es): 3 speakers (es_0, es_1, es_2) + random
  * French (fr): 6 speakers (fr_0 to fr_5) + random

📝 Configuration changes:
- requirements.txt: Added omegaconf for Silero
- voice_to_speaker.default.yaml: All 140 Silero voices mapped
- speech.py: Silero wrapper class with proper API handling

🎯 Working TTS engines: 3
- Piper TTS (tts-1) - Fast, lightweight
- XTTS v2 (tts-1-hd) - High quality, voice cloning
- Silero TTS (tts-1-silero) - CPU-friendly, 5 languages, actively maintained

🦝 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 12:39:12 -05:00
Claude
848c2c6cb5 Integrate Silero TTS and add infrastructure for Chatterbox/Kokoro
INTEGRATED: Silero TTS (tts-1-silero)
- Added silero_wrapper class to speech.py for PyTorch Hub integration
- CPU-friendly, no GPU required (48kHz sample rate)
- Supports 5 languages: English (117 speakers), Russian, German, Spanish, French
- Loads on-demand via torch.hub from snakers4/silero-models
- Added 6 OpenAI-compatible voice mappings (alloy, echo, fable, etc.)

PREPARED: Chatterbox & Kokoro TTS
- Added dependencies to requirements.txt:
  * git+https://github.com/resemble-ai/chatterbox.git
  * transformers>=4.35.0 (for Kokoro)
  * huggingface-hub[cli] (for model downloads)
- Created Makefile targets for downloading models
- Created test targets for all three new engines

Makefile Enhancements:
- make voices-silero: Download Silero models (en, ru, de, es, fr)
- make test-silero: Test Silero TTS endpoint
- make voices-chatterbox: Download Chatterbox models via HF CLI
- make test-chatterbox: Test Chatterbox with emotion control
- make voices-kokoro: Download Kokoro models via HF CLI
- make test-kokoro: Test Kokoro fast synthesis

speech.py Changes:
- Added silero_wrapper class with tts() method
- Added tts-1-silero model handler in generate_speech()
- Registered tts-1-silero model in app
- Added PCM media type for Silero (48000 Hz)
- Global state: silero_model, silero_speakers dict

Configuration:
- Updated voice_to_speaker.default.yaml with tts-1-silero section
- Mapped all 6 OpenAI voices to Silero speakers (en_0 through en_5)

Documentation:
- Updated docs/MODELS.md: Silero marked as  INTEGRATED
- Updated roadmap: Phase 1 task 3 completed
- Updated status footer: 3 models rescued
- Added integration examples and Makefile commands

Next Steps:
- Test Silero integration in Docker
- Implement Chatterbox emotion control engine
- Implement Kokoro fast decoder engine
2025-11-09 10:48:44 -05:00
d015dd044b 🦝 Fix: Use absolute paths for Piper models
SOLUTION FOUND! Piper requires ABSOLUTE paths to model files, not relative paths.

Changes:
- Update voice_to_speaker.default.yaml to use /app/voices/... absolute paths
- Update Makefile voices target to set absolute paths via sed
- Tested: Piper works with /app/voices/en/en_US/libritts_r/medium/en_US-libritts_r-medium.onnx

Root cause: PyPI piper-tts package doesn't auto-download voices or support
voice name resolution. Must use full absolute file paths.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 08:24:00 -05:00
matatonic
fdd443b10f 0.17.1 2024-07-01 19:43:32 -04:00
matatonic
ae6a384e75 0.14.0 +streaming, +pcm, +wav, +temp, top_p, etc. 2024-06-26 20:54:24 -04:00
matatonic
ea4af74e5c 0.13.0 -parler, +arm64, +audio_reader 2024-06-23 12:52:03 -04:00
Renamed from config/voice_to_speaker.default.yaml (Browse further)