|
|
#!/bin/bash |
|
|
set -euo pipefail |
|
|
|
|
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" |
|
|
cd "$SCRIPT_DIR" |
|
|
|
|
|
SONG_DIR="$SCRIPT_DIR/example/zh_songs" |
|
|
|
|
|
if [ ! -d "$SONG_DIR" ]; then |
|
|
echo "Song directory not found: $SONG_DIR" |
|
|
exit 1 |
|
|
fi |
|
|
|
|
|
|
|
|
shopt -s nullglob |
|
|
SONG_FILES=("$SONG_DIR"/song_*.jsonl) |
|
|
shopt -u nullglob |
|
|
|
|
|
if [ ${#SONG_FILES[@]} -eq 0 ]; then |
|
|
echo "No song_*.jsonl files in song directory" |
|
|
exit 0 |
|
|
fi |
|
|
|
|
|
export PYTHONPATH="${PYTHONPATH:-}:${SCRIPT_DIR}" |
|
|
|
|
|
espeak-ng --version |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SEED="${SEED:-42}" |
|
|
DO_SAMPLE="${DO_SAMPLE:-0}" |
|
|
|
|
|
|
|
|
export CUBLAS_WORKSPACE_CONFIG="${CUBLAS_WORKSPACE_CONFIG:-:4096:8}" |
|
|
|
|
|
for SONG_FILE in "${SONG_FILES[@]}"; do |
|
|
SONG_NAME="$(basename "$SONG_FILE")" |
|
|
INPUT_PATH="./example/zh_songs/${SONG_NAME}" |
|
|
echo "==============================" |
|
|
echo "Starting generation: ${SONG_NAME}" |
|
|
CMD=(python inference.py |
|
|
--repo-id ASLP-lab/DiffRhythm2 |
|
|
--output-dir ./results/zh |
|
|
--input-jsonl "$INPUT_PATH" |
|
|
--cfg-strength 3.0 |
|
|
--max-secs 285.0 |
|
|
--seed "$SEED" |
|
|
) |
|
|
if [ "$DO_SAMPLE" -eq 1 ]; then |
|
|
CMD+=(--do-sample) |
|
|
fi |
|
|
"${CMD[@]}" |
|
|
done |
|
|
|
|
|
echo "All songs generation complete, processed ${#SONG_FILES[@]} songs." |
|
|
|