# dsh-voice-studio

> **Jazyk:** [Česky](README.cs.md) · [English](README.md)

Plugin pro DeepSeek Harness pro lokální syntézu řeči, klonování hlasu a
best-effort dabing, s GUI nastavením a nástrojem `dsh_voice` volaným z modelu.

## Funkce

- **TTS** — lokálně přes **XTTS v2** (kvalita + klonování) nebo **Piper**
  (rychlost), případně přes **ElevenLabs** API.
- **Klonování hlasu** — klonuj hlas z krátkého i dlouhého vzorku a syntetizuj
  novou řeč.
- **Kombinace hlasů** — experimentální míchání (aktuálně klonuje z primárního
  vzorku; plné míchání je v roadmapě).
- **Dabing** — přepiš médium pomocí **faster-whisper** a lokálně znovu
  vysyntetizuj přepis.
- **Sekce nastavení „Voice Studio"** — backend, engine, jazyk, API klíč,
  cesta ke vzorku.
- Spolupracuje s `dsh-resource-guard` (před lokální syntézou rezervuje paměť).

## Požadavky (lokální backend)

- `python3` v PATH (automaticky vytvoří `~/.dsh/voice-studio-venv`).
- První běh stáhne modely XTTS v2 a faster-whisper.
- `ffmpeg` v PATH pro dabing video souborů.
- Pro engine Piper je potřeba Piper voice model v `~/.local/share/piper/`.

## Instalace

```sh
dsh plugin --profile web add dsh-voice-studio
```

Poté přidej `dsh-voice-studio` do `dsh.profile.bundles` a `dependencies` v
`~/.dsh/profiles/web/package.json` a spusť `dsh plugin --profile web install`.

## Použití

Zeptej se agenta:

- `dsh_voice action=tts text="Ahoj světe"` — syntéza.
- `dsh_voice action=clone text="Hello" sample=/abs/voice.wav` — klon + syntéza.
- `dsh_voice action=dub media=/abs/video.mp4` — přepis + nová syntéza.

Výstupy se ukládají do `~/.dsh/voice-studio-outputs/`.

## Nastavení

| Pole | Výchozí | Význam |
| --- | --- | --- |
| `backend` | `local` | `local` nebo `api` (ElevenLabs). |
| `ttsEngine` | `xtts` | `xtts` (kvalita + klonování) nebo `piper` (rychlost). |
| `language` | `cs` | `cs` nebo `en`. |
| `apiKey` | `` | ElevenLabs `xi-api-key`. |
| `voiceId` | `` | ElevenLabs voice id (backend `api`). |
| `samplePath` | `` | Výchozí vzorek pro klonování. |

## Architektura

- **Host** (`lib/index.js`) — spouští `worker/voice_worker.py` (stdlib HTTP
  server na `127.0.0.1:7862`) do `~/.dsh/voice-studio-venv`, volá endpointy
  `/tts`, `/clone` a `/dub` a implementuje cestu přes ElevenLabs.
- **Client** (`lib/client.js`) — `settings.section` s konfigurací, textem a
  tlačítky Synthesize / Clone / Dub.

## Licence

MIT
