Add comprehensive multi-provider TTS support enabling users to choose between OpenAI, Deepinfra, and custom OpenAI-compatible endpoints. Implement provider-specific voice management with automatic voice restoration per provider-model combination, and migrate package manager to pnpm for improved dependency handling. Key changes: - Add TTS provider selection (OpenAI, Deepinfra, custom-openai) in settings UI - Implement provider-specific model and voice lists with dynamic fetching - Add voice persistence per provider-model combination in savedVoices - Support Deepinfra models: Kokoro-82M, Orpheus-3B, Sesame-1B with their voice libraries - Migrate to pnpm with frozen lockfile for reproducible builds - Update Docker configuration to use pnpm and Deepinfra API defaults - Add migration logic for existing users to infer provider from stored baseUrl - Update test helpers and Playwright configuration for Deepinfra API - Add example docker-compose.yml with Kokoro-FastAPI integration BREAKING CHANGE: Voice selection is now provider-model specific. Previously saved voices will be migrated to the new savedVoices structure, but users may need to reselect voices if switching providers.
30 lines
No EOL
888 B
YAML
30 lines
No EOL
888 B
YAML
services:
|
|
kokoro-tts:
|
|
container_name: kokoro-tts
|
|
image: ghcr.io/remsky/kokoro-fastapi-cpu:v0.2.4
|
|
ports:
|
|
- "8880:8880"
|
|
environment:
|
|
# ONNX Optimization Settings for vectorized operations
|
|
- ONNX_NUM_THREADS=8 # Maximize core usage for vectorized ops
|
|
- ONNX_INTER_OP_THREADS=4 # Higher inter-op for parallel matrix operations
|
|
- ONNX_EXECUTION_MODE=parallel
|
|
- ONNX_OPTIMIZATION_LEVEL=all
|
|
- ONNX_MEMORY_PATTERN=true
|
|
- ONNX_ARENA_EXTEND_STRATEGY=kNextPowerOfTwo
|
|
- API_LOG_LEVEL=DEBUG
|
|
restart: unless-stopped
|
|
|
|
openreader-webui:
|
|
container_name: openreader-webui
|
|
image: ghcr.io/richardr1126/openreader-webui:latest
|
|
environment:
|
|
- API_BASE=http://host.docker.internal:8880/v1
|
|
ports:
|
|
- "3003:3003"
|
|
volumes:
|
|
- docstore:/app/docstore
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
docstore: |