aboutsummaryrefslogtreecommitdiff
path: root/backends/audiocpp.py
diff options
context:
space:
mode:
authorhistoria <historiavg@proton.me>2026-08-24 01:57:13 -0400
committerhistoria <historiavg@proton.me>2026-08-24 01:58:17 -0400
commitc02d66b2d3221c0c5f5e8f2cb2ae218f1e325a0a (patch)
treee9ec4f35c18102d4624d3cd59358d192be7bbfcb /backends/audiocpp.py
parent194c63e4d11e6de9792a736a7b99788f1db78741 (diff)
downloadtts-audiobook-generator-c02d66b2d3221c0c5f5e8f2cb2ae218f1e325a0a.tar.gz
feat: manage venv for all backends
Diffstat (limited to 'backends/audiocpp.py')
-rwxr-xr-xbackends/audiocpp.py46
1 files changed, 32 insertions, 14 deletions
diff --git a/backends/audiocpp.py b/backends/audiocpp.py
index 57636a7..486017f 100755
--- a/backends/audiocpp.py
+++ b/backends/audiocpp.py
@@ -41,24 +41,34 @@ from typing import Callable, Dict, List, Optional, Set, Tuple
# Allow running directly (python backends/audiocpp.py) from any cwd.
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
-from ui import tui
-from backends import BackendStatus, ConfigureAction
-from backends import common
+from backends import (
+ BackendStatus,
+ ConfigureAction,
+ ServerSpec,
+ common,
+ format_launch_hint,
+)
from backends.common import (
CONFIG_PATH,
PROMPT_TEXT_FILENAME,
TTS_ROOT,
+ VOICES_DIR,
detect_wav_dir,
find_wav_files,
normalize_dir_arg,
read_prompt_text,
resolve_wav_dir_arg,
+ write_prompt_text,
+)
+from backends.common import (
wav_dir_info as _wav_dir_info,
+)
+from backends.common import (
wav_dir_preview as _wav_dir_preview,
- write_prompt_text,
)
from converter import config
from converter.tts import transcribe_reference_audio, whisper_backend_available
+from ui import tui
DEFAULT_HOST = "127.0.0.1"
FALLBACK_PORT = 8080
@@ -1145,7 +1155,7 @@ def _wizard(stdscr, args: argparse.Namespace, parser: argparse.ArgumentParser
wav_dir = tui.browse_directory(
stdscr, "Select the directory with your .wav voices",
info=_wav_dir_info, preview=_wav_dir_preview,
- start=wav_start if wav_start is not None else Path.cwd(),
+ start=wav_start if wav_start is not None else VOICES_DIR,
back_value=_GO_BACK)
if wav_dir is _GO_BACK:
step = 3
@@ -1540,8 +1550,8 @@ def _collect_from_flags(args: argparse.Namespace,
and config.AUDIOCPP_CLONE_MODEL_ID == entry_ids[0]):
sync_model_ids = not args.no_sync_model_ids
- # Wav dir + transcription plan.
- wav_dir = args.input_dir
+ # Wav dir + transcription plan (defaults to the project's voices/ dir).
+ wav_dir = args.input_dir if args.input_dir is not None else VOICES_DIR
plan: Optional[dict] = None
if include_clone and wav_dir is not None:
wav_files = find_wav_files(wav_dir)
@@ -1582,8 +1592,9 @@ def build_parser() -> argparse.ArgumentParser:
parser.add_argument("--wavs", type=resolve_wav_dir_arg, default=None,
dest="input_dir", metavar="WAV_DIR",
help="Directory with .wav reference files to publish as "
- "a server-level voice_dir cloning library (asked "
- "for when omitted in the TUI)")
+ "a server-level voice_dir cloning library "
+ f"(default: {VOICES_DIR}; asked for when omitted "
+ "in the TUI)")
parser.add_argument("--output", type=Path, default=None,
help="Output path for server.json (default: "
"server.json inside the audio.cpp checkout; an "
@@ -1664,17 +1675,24 @@ def detect() -> BackendStatus:
details.append("not built — run setup to build audiocpp_server")
server_json = checkout / "server.json"
configured = server_json.exists()
+ servers: List[ServerSpec] = []
if configured:
details.append(f"config: {server_json}")
- launch = (f"{binary} --config {server_json}"
- if built else
- f"./build/<platform>-<backend>-release/bin/"
- f"audiocpp_server --config {server_json}")
+ if built:
+ servers = [ServerSpec(
+ "audiocpp", config.AUDIOCPP_API_URL,
+ [str(binary), "--config", str(server_json)])]
+ else:
+ launch = (f"./build/<platform>-<backend>-release/bin/"
+ f"audiocpp_server --config {server_json}")
else:
details.append("no server.json — run setup to configure models")
+ if servers:
+ launch = format_launch_hint(servers)
return BackendStatus("audiocpp", "audio.cpp", installed=built,
configured=configured, running=running,
- details=details, launch_hint=launch)
+ details=details, launch_hint=launch,
+ servers=servers)
configure_actions: List[ConfigureAction] = [