星穹铁道语音的解包、转码、整理、分类、标签清理和数据统计工具。
Voice_Sorting.py:统一处理流程:解包、转码、整理、二次分类、清理标签。6_Merge_Language_Xlsx.py:独立合并同语言索引 XLSX。7_Statistics.py:独立生成数据统计 XLSX。Deprecated/:旧分步脚本备份,不再作为推荐入口。
python -m pip install -r .\requirements.txt项目自带以下工具,无需单独安装:quickbms.exe、wwise_pck_extractor.bms、vgmstream-cli.exe。
Data/
pcks/ # 待解包的 PCK
raw/ # 解包后的 WEM;支持 chinese(prc) 等子目录
wav/ # 平铺的普通 WEM 转码输出:<哈希>.wav
sorted/ # 第一次按角色整理的中间结果
second_sorted/ # 最终分类结果
Sorted.json # 普通语音二次分类规则
Indexs/
CHS.xlsx EN.xlsx JP.xlsx KR.xlsx
数据统计_模板.xlsx
battle 语音在索引中使用 AudioEvent_MediaID 文件名。转码后其来源文件为 MediaID.wav,与普通语音统一放在 Data/wav/。
不会解包、转码、复制、移动或创建整理结果,仅检查输入和目标路径:
python .\Voice_Sorting.py -l CHS --skip-unpack --dry-run若索引不在当前 Indexs,可明确指定:
python .\Voice_Sorting.py -l CHS --skip-unpack --dry-run `
--index "..\Indexs\CHS.xlsx"python .\Voice_Sorting.py -l CHS该命令依次执行:PCK 解包、递归 WEM 转 WAV、按 XLSX 整理、二次分类、清理 LAB 中的 HTML 标签。
常用参数:
--skip-unpack:跳过 PCK 解包,只处理已有 WEM。--mode cp|mv:整理时复制或移动 WAV,默认cp。--wem、--wav:覆盖 WEM 输入与 WAV 输出目录。--final:覆盖最终分类输出目录。
整理完成后,用独立工具 7_Statistics.py 从 Data/second_sorted 生成按角色和类别的语音数量、标注数量与总时长统计:
python .\7_Statistics.py -l CHS `
--game "StarRail" `
--version "4.4"输出:
StarRail_4.4_数据统计.xlsx
常用参数:
--dataset:数据集目录,默认Data/second_sorted。--template:统计模板 XLSX,默认数据统计_模板.xlsx。--game、--version:游戏名与版本号,用于输出文件名。--stats-dir:指定统计 XLSX 输出目录。--dry-run:仅打印输出路径,不写入文件。
将上级索引目录的同语言 XLSX 合并,并输出到本项目 Indexs/:
python .\6_Merge_Language_Xlsx.py `
--source-index-dir "..\Indexs" `
--output-dir ".\Indexs" `
--languages CHS EN JP KR合并器兼容旧版四列索引和当前包含“是否为战斗语音”的六列索引;同一 battle 事件与 MediaID 的重复行会去重。