gestures.js: 新增长按(1s)、两指长按(暂停)、三指点击(退出),支持多指检测 engine.js: REPLY_COUNT变量、长按重播/状态广播、暂停恢复退出机制、 选择提示音、结局台词预录音频替换TTS、内容预警+心理热线 story.js: MSG-10/11 follow-up补全down(沉默)选项 index.html: 操作指南添加长按/安全手势、内容预警文字 batch_tts_voxcpm.py: 新增12条台词(结局旁白+系统提示+分支NPC反应) audio/mp3/tts: 12个VoxCPM2生成的林夏声线MP3 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
55 lines
1.1 KiB
Bash
55 lines
1.1 KiB
Bash
#!/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"
|