File size: 2,053 Bytes
0ff8d3d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash
# ============================================================
# NAVA Inference — T2A (Text-to-Audio, audio-only mode)
#
# Supports both pure T2A and timbre-controlled speech generation.
# Reads JSONL from $DATA_FILE; each record may optionally carry
# "spk_wavs" for timbre reference — works with or without it.
#
# Override via env vars, e.g.:
#   NPROC=1 bash scripts/inference_t2a.sh
#   DATA_FILE=/path/to/prompts.jsonl bash scripts/inference_t2a.sh
#   DURATION=5.0 TIMBRE_SCALE=3.0 bash scripts/inference_t2a.sh
# ============================================================
set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
cd "$REPO_ROOT"

CKPT="${CKPT:-NAVA.safetensors}"
CONFIG="${CONFIG:-configs/nava_seedtts.yaml}"
OUT_DIR="${OUT_DIR:-eval_results/t2a}"
DATA_FILE="${DATA_FILE:-infer_cases/t2a/prompts.jsonl}"
DURATION="${DURATION:-6.0}"
TIMBRE_SCALE="${TIMBRE_SCALE:-3.0}"

MASTER_ADDR="${MASTER_ADDR:-127.0.0.1}"
MASTER_PORT="${MASTER_PORT:-29509}"
NPROC="${NPROC:-8}"

if [ ! -f "$DATA_FILE" ]; then
    echo "[ERROR] DATA_FILE not found: $DATA_FILE" >&2
    exit 1
fi
mkdir -p "$OUT_DIR"

echo "[INFO] Repo:         $REPO_ROOT"
echo "[INFO] Config:       $CONFIG"
echo "[INFO] Ckpt:         $CKPT"
echo "[INFO] Data:         $DATA_FILE"
echo "[INFO] Out dir:      $OUT_DIR"
echo "[INFO] Duration:     ${DURATION}s"
echo "[INFO] Timbre scale: $TIMBRE_SCALE"
echo "[INFO] Num GPUs:     $NPROC"

SETUPTOOLS_USE_DISTUTILS=stdlib torchrun \
    --nnodes=1 \
    --nproc_per_node="$NPROC" \
    --node_rank=0 \
    --master_addr="$MASTER_ADDR" \
    --master_port="$MASTER_PORT" \
    inference_nava.py \
    --config "$CONFIG" \
    --ckpt "$CKPT" \
    --out_dir "$OUT_DIR" \
    --data_format json \
    --data_file "$DATA_FILE" \
    --duration "$DURATION" \
    --steps 50 \
    --save_sample \
    --gen_turn 1 \
    --timbre_cfg \
    --timbre_align_guidance_scale "$TIMBRE_SCALE" \
    --use_sp