#!/usr/bin/env bash # 내 목소리 reference 녹음 가이드 출력 + 길이별 비교 실행 set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" echo "=== 내 목소리 녹음 가이드 ===" echo "자세한 내용: $ROOT/samples/README.md" echo echo "1) 30초 / 1분 / 3분 WAV를 samples/ 에 저장" echo "2) my_voice_ref.txt 에 녹음 대본 작성" echo "3) ./scripts/prepare_reference.sh samples/my_voice_30s.wav" echo shopt -s nullglob WAVS=("$ROOT"/samples/my_voice_*.wav) if [[ ${#WAVS[@]} -eq 0 ]]; then echo "아직 my_voice_*.wav 없음. 녹음 후 다시 실행하세요." exit 0 fi OUT="$ROOT/outputs/voice_length_compare" mkdir -p "$OUT" PY="$ROOT/.venvs/cosyvoice/bin/python" WORKER="$ROOT/scripts/workers/cosy_infer.py" TEXT="안녕하세요. 이 문장은 reference 길이별 품질 비교를 위한 테스트입니다." if [[ ! -x "$PY" ]]; then echo "cosyvoice venv 없음. ./scripts/setup_cosyvoice.sh 후 재실행" exit 1 fi REF_TXT="" [[ -f "$ROOT/samples/my_voice_ref.txt" ]] && REF_TXT=$(cat "$ROOT/samples/my_voice_ref.txt") for wav in "${WAVS[@]}"; do name=$(basename "$wav" .wav) echo "생성: $name" "$PY" "$WORKER" \ --ref-audio "$wav" \ --gen-text "$TEXT" \ --prompt-text "$REF_TXT" \ --out "$OUT/${name}_test.wav" || true done echo "결과: $OUT"