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>
This commit is contained in:
45
scripts/compare_voice_lengths.sh
Executable file
45
scripts/compare_voice_lengths.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user