Files
transcriber/scripts/setup/setup-tts.sh
T

56 lines
1.4 KiB
Bash

#!/usr/bin/env bash
#
# Local AI Studio - Kokoro TTS setup for Linux/macOS
#
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")"
APP_DIR="$ROOT_DIR/app"
TOOLS_DIR="$APP_DIR/tools"
PLATFORM="$(uname -s)"
if [[ "$PLATFORM" == "Darwin" ]]; then
NODE_DIR="$TOOLS_DIR/node-mac"
else
NODE_DIR="$TOOLS_DIR/node-linux"
fi
NODE_BIN="$NODE_DIR/bin/node"
NPM_BIN="$NODE_DIR/bin/npm"
RUNTIME_DIR="$APP_DIR/tts-runtime"
MODELS_DIR="$APP_DIR/tts-models"
OUTPUTS_DIR="$APP_DIR/tts-outputs"
CACHE_DIR="$APP_DIR/tts-cache"
print_ok() { echo " OK $1"; }
print_info() { echo " >> $1"; }
print_fail() { echo " XX $1"; }
echo ""
echo " ============================================================"
echo " Setting up Kokoro ONNX Text-to-Speech runtime"
echo " ============================================================"
echo ""
mkdir -p "$RUNTIME_DIR" "$MODELS_DIR" "$OUTPUTS_DIR" "$CACHE_DIR"
if [[ ! -x "$NODE_BIN" || ! -x "$NPM_BIN" ]]; then
print_fail "Portable Node.js is missing. Run scripts/setup/setup.sh first."
exit 1
fi
if [[ ! -f "$RUNTIME_DIR/package.json" ]]; then
cat > "$RUNTIME_DIR/package.json" <<'JSON'
{"private":true,"type":"module","dependencies":{"kokoro-js":"^1.2.1"}}
JSON
fi
cd "$RUNTIME_DIR"
export PATH="$NODE_DIR/bin:$PATH"
print_info "Installing kokoro-js into app/tts-runtime..."
"$NPM_BIN" install --prefer-offline
print_ok "Kokoro TTS runtime is ready."