#!/bin/bash # 将新生成的 WAV 文件转为 MP3 并复制到游戏 tts 目录 set -e RAW_DIR="/home/xsl/blind/audio/00_raw/tts" OUT_DIR="/home/xsl/blind/audio/mp3/tts" NEW_FILES=( "v2_ending_a_linxia_wav_v1" "v2_ending_b_linxia_wav_v1" "v2_ending_c_linxia_wav_v1" "v2_ending_d_linxia_wav_v1" "v2_ending_e_linxia_wav_v1" "v2_sys_wait_reply_wav_v1" "v2_sys_paused_wav_v1" "v2_sys_content_warning_wav_v1" "v2_sys_hotline_wav_v1" "v2_msg10_rw_react_silent_wav_v1" "v2_msg10_call_react_down_wav_v1" "v2_msg11_r3_react_silent_wav_v1" ) ok=0 fail=0 for name in "${NEW_FILES[@]}"; do src="${RAW_DIR}/${name}.wav" dst="${OUT_DIR}/${name}.mp3" if [ ! -f "$src" ]; then echo "[SKIP] $name.wav not found" ((fail++)) continue fi if [ -f "$dst" ]; then echo "[EXISTS] $name.mp3" ((ok++)) continue fi echo -n "[CONVERT] $name ... " ffmpeg -y -i "$src" -codec:a libmp3lame -b:a 128k -ar 24000 -ac 1 "$dst" 2>/dev/null if [ $? -eq 0 ]; then echo "ok ($(du -h "$dst" | cut -f1))" ((ok++)) else echo "FAILED" ((fail++)) fi done echo "" echo "Done: $ok ok, $fail failed"