Commit graph

198 commits

Author SHA1 Message Date
0ff5f0f09a Fix Makefile to create speech.env automatically
- Add step in sync target to copy sample.env to speech.env if missing
- Ensures Makefile works from scratch without manual intervention
- Tested full deployment cycle: deploy -> voices -> test
- Successfully creates ~/uncloseai-speech directory
- Downloads voices with absolute paths
- Generates working TTS audio

Raccoon mission: Makefile is now fully self-sufficient!

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 09:37:33 -05:00
874a7f170c Add comprehensive repository audit and raccoon mission roadmap
Created docs/AUDIT.md with:
- Complete file inventory and assessment
- Analysis of 10+ abandoned TTS models to integrate
- Multi-tier binary mirror strategy
- Proposed refactoring with engine abstraction
- License clarification (AGPL v3, not MIT)

This audit identifies all non-essential files for removal and documents
the plan to rescue abandoned TTS projects (Silero, StyleTTS2, Bark, etc.)
into a unified resilient system.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 09:32:22 -05:00
3a9e27e556 Add comprehensive TTS model and mirror documentation
docs/MODELS.md:
- Document 10+ abandoned TTS engines to integrate
- Piper TTS (integrated, fixed)
- Coqui XTTS v2 (integrated, company shut down)
- Silero TTS (HIGH PRIORITY - still active, fast)
- StyleTTS2 (HIGH PRIORITY - best quality)
- Fish Speech (active, good quality)
- Kokoro, Bark, Tortoise, MetaVoice (lower priority)
- Integration roadmap with time estimates
- Performance targets and storage requirements

docs/MIRRORS.md:
- Multi-tier mirror strategy for resilience
- Tier 1: Upstream (HuggingFace, PyPI, GitHub)
- Tier 2: Self-hosted MinIO on ai.foxhop.net
- Tier 3: Archive.org for public archival
- Tier 4: IPFS for decentralization
- Complete implementation with scripts and configs
- Fallback download logic
- Recovery scenarios
- Cost: $0-20/month

Raccoon mission: Ensure TTS keeps working when upstream dies.
Documentation-first approach before implementing features.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 09:28:02 -05:00
e8183b4585 Organize repository: create scripts/ and docs/ directories
- Move utility scripts to scripts/ directory:
  - add_voice.py (add custom voices)
  - say.py (CLI TTS client)
  - test_voices.sh (voice testing)
  - download_samples.sh (OpenAI samples)

- Remove Windows batch files (.bat) - Linux/Docker focus
  - startup.bat
  - download_samples.bat
  - download_voices_tts-1.bat
  - download_voices_tts-1-hd.bat

- Create docs/ directory with AUDIT.md:
  - Complete repository file audit
  - Document 10+ abandoned TTS models to integrate
  - Plan for binary mirror strategy
  - Outline future refactoring to src/ structure

Raccoon mission: Scripts are in scripts/, docs reference them.
No code belongs in docs/ - only documentation.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 09:25:21 -05:00
91862d4f82 Clean up deployment paths to use uncloseai-speech without -fresh suffix
🦝 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 09:12:06 -05:00
4aebcc037f Rebrand project to UncloseAI Speech
Renamed all references from openedai-speech to uncloseai-speech across
the entire codebase, including:
- Project name in README and documentation
- Docker image names in compose files
- Makefile deployment paths and container names
- Configuration examples in vars.sh.example

This establishes our raccoon mission fork as UncloseAI Speech, a unified
TTS system supporting multiple engines (Piper, XTTS, etc.) with OpenAI
API compatibility.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 09:11:09 -05:00
eb899deca2 Fix Piper TTS absolute path resolution and improve deployment workflow
This commit resolves the "download entire voices" issue by properly handling
absolute paths in Piper model configuration and improves the deployment system.

Key changes:
- speech.py: Detect absolute paths and omit --data-dir/--download-dir flags
  when using absolute model paths, allowing Piper to load models directly
- speech.py: Add debug logging and stderr capture for Piper subprocess
- voice_to_speaker.default.yaml: Use absolute paths for all Piper models
- Makefile: Load deployment config from vars.sh for better security
- Makefile: Change restart to rebuild container ensuring code updates apply
- Add vars.sh.example template for deployment configuration
- .gitignore: Add vars.sh to prevent committing deployment secrets

Tested successfully with en_US-libritts_r-medium model using absolute path:
/app/voices/en/en_US/libritts_r/medium/en_US-libritts_r-medium.onnx

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 09:05:13 -05:00
a0e94be7af 🦝 Revert to PyPI piper-tts with absolute path fix
OHF-Voice/piper1-gpl doesn't have installable Python package structure yet.
The real fix is using ABSOLUTE paths in voice_to_speaker.yaml, not newer Piper version.

Solution: Use /app/voices/en/en_US/libritts_r/medium/en_US-libritts_r-medium.onnx

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 08:27:44 -05:00
5cfec93047 Add git to Dockerfile for pip install from GitHub
Required to install piper-tts from OHF-Voice/piper1-gpl repository.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 08:26:15 -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
5564d3fc6f 🦝 Raccoon Mission: Add Makefile and upgrade to Piper v1.3.0 from OHF-Voice
- Add comprehensive Makefile for deployment to ai.foxhop.net
- Switch from abandoned rhasspy/piper to OHF-Voice/piper1-gpl v1.3.0
- Add voice download automation with correct directory structure
- Includes deploy, sync, test, logs, and voice management commands

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 08:19:02 -05:00
5fa62908d8 notes for setting up with docker on ubuntu 24.04 LTS
new file:   boot_docker_compose_ubuntu.sh
	modified:   requirements.txt
2025-05-23 17:18:42 -04:00
matatonic
31f033595a
Update README.md
Final update.
2025-02-02 13:10:41 -05:00
matatonic
09b1c051e1 0.18.2 - Fix docker building for amd64 2024-08-16 10:29:30 -04:00
matatonic
9c202cf508 x 2024-08-16 09:54:14 -04:00
matatonic
06764515c8 free up space on github runner 2024-08-16 09:52:41 -04:00
matatonic
c86eb4ced2 0.18.1 - refactor github actions 2024-08-15 21:51:18 -04:00
matatonic
895931d208 refactor docker build as 6 jobs to avoid disk full 2024-08-15 21:27:39 -04:00
matatonic
550284a881 try again to avoid disk full 2024-08-15 21:13:32 -04:00
matatonic
c8582e60ed test single build job 2024-08-15 20:58:36 -04:00
matatonic
c6a8e90c46 remove arm64 build of rocm image 2024-08-15 20:53:39 -04:00
matatonic
5b9d2f7d93 0.18.0 2024-08-15 17:28:17 -04:00
matatonic
49b3f8e1dc Fixes: #42 2024-08-15 17:24:33 -04:00
matatonic
e815ef2860 0.18.0 - Allow multiple samples in xtts. Closes: #38 2024-08-15 17:19:34 -04:00
matatonic
b5d0dafd7d 0.17.3 - fix 44khz piper voices like fr_FR-tom-medium 2024-08-15 16:09:35 -04:00
matatonic
20871dbcfb remove all *'s with pre_process by default 2024-08-14 21:25:57 -04:00
matatonic
c51355ca38 Fixes #35, detect configured sample rates for piper 2024-08-14 21:25:57 -04:00
matatonic
5c887af40e Merge branch 'main' of https://github.com/matatonic/openedai-speech 2024-07-16 04:06:11 -04:00
matatonic
e2dc57f8da better docs for unload-timer 2024-07-16 04:04:24 -04:00
matatonic
43dbf431f8 unbreak -min 2024-07-01 20:38:44 -04:00
matatonic
fdd443b10f 0.17.1 2024-07-01 19:43:32 -04:00
matatonic
02a6c7eb3e 0.16.0 2024-07-01 13:56:41 -04:00
matatonic
54ad8a127b
Merge pull request #29 from RodolfoCastanheira/main
detecting and using multiple languages automatically (xtts)
2024-07-01 13:55:58 -04:00
book3
be02887ad9 using landetect to automatically set the language of the request in xtts
inference
2024-07-01 12:33:27 -03:00
matatonic
a99b196c45
Update README.md 2024-06-29 18:52:27 -04:00
matatonic
38a479f918
Update README.md
custom piper voice download example
2024-06-29 18:51:06 -04:00
matatonic
88c9b770e3 0.16.0 2024-06-29 13:08:16 -04:00
matatonic
1d144a12e0 0.16.0 +Multi-client safe 2024-06-29 13:03:30 -04:00
matatonic
edc14301fd 1/3 realtime factor 2024-06-28 16:50:23 -04:00
matatonic
703dec32b1 0.15.2 Thread safe version 15 2024-06-28 16:09:48 -04:00
matatonic
964b23a21c 0.15.1 +Fixes #24, no deepspeed by default, you're on your own for now 2024-06-27 10:23:58 -04:00
matatonic
be759f3fea 0.15.0 2024-06-27 01:43:43 -04:00
matatonic
c957ad86fc 0.14.1 +deepspeed (not in prebuilt docker) 2024-06-27 00:47:56 -04:00
matatonic
ae6a384e75 0.14.0 +streaming, +pcm, +wav, +temp, top_p, etc. 2024-06-26 20:54:24 -04:00
matatonic
65c03e3448
Merge pull request #21 from matatonic/dev
0.13.0
2024-06-25 17:28:02 -04:00
matatonic
34bf525c89 0.13.0 final 2024-06-25 17:20:28 -04:00
matatonic
756799529a +docker-compose.rocm.yml, +auto build rocm 2024-06-24 20:53:30 -04:00
matatonic
72c7b799b9 xtts: +AMD gpu ROCm, +Apple MPS 2024-06-24 20:35:07 -04:00
matatonic
e9bbc56523 -min working with piper on apple 2024-06-23 13:30:49 -04:00
matatonic
d811d71eec typo 2024-06-23 13:04:08 -04:00