Files
voice.sori.studio/scripts/compare_voice_lengths.sh
zenn 7101fdcd65 Initial commit: Korean voice-cloning TTS prototype
FastAPI backend, web UI, CosyVoice3/F5-TTS setup scripts, and handoff docs for GPU PC continuation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 13:36:37 +09:00

46 lines
1.3 KiB
Bash
Executable File

#!/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"