Files
blind/audio/convert_new_tts.sh
xslandClaude Opus 4.6 d03bcb14e4 v2收尾:手势升级 + 暂停退出 + 结局语音化 + 分支补全 + 12条新音频
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>
2026-05-19 23:22:04 +08:00

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"