《原神》提取出BGM+人物角色语音
最近沉迷原神了……
工具
Extractor2.5 https://www.cr173.com/soft/30307.html
vgmstream CLI https://github.com/vgmstream/vgmstream/releases/download/r1050-3312-g70d20924/test.zip
解包
原神的音频都打包在:
安装目录\Genshin Impact Game\YuanShen_Data\StreamingAssets\Audio\GeneratedSoundBanks\Windows\
其中 BGM 为根目录下的 Music0~31.pck ,人物对话语音、角色音效都在对应语言(中文、英文等)子目录下的 External0~31.pck
比如截图为使用Extractor提取人物对话语音,提取到 F:\B\
转码
上步骤提取出的wav文件无法直接播放,需要转码,用到vgmstream,将test.zip解压
比如我这里解压到 E:\SystemFile\Desktop\test\test.exe
由于是命令行工具,所以需要执行命令来转换,其他参数不用理解,例如:
#后面的文件路径带了空格,需要使用引号括起来
E:\SystemFile\Desktop\test\test.exe "F:\B\External1 00001.wav"
即可得到人物语音,因为没有注释,只看文件名不知道是什么,只能听了才知道。
批处理
按上述方法已经可以顺利提取并转换BGM和语音,但是转换一条一条命令的敲,太蛋疼
写个批处理吧,将批处理保存到提取出 .wav 的目录下执行即可遍历转换
@echo off
for /r %%i in (*.wav) do (
"E:\SystemFile\Desktop\test\test.exe" "%%~nxi"
)
pause
哒哒哒~啦啦啦~
76 条评论
大佬你好,散兵冲刺语音太吵了,我想把那两条冲刺语音删了。
有什么办法吗
@喵喵
你可以尝试,找到这条语音,然后删除,创建一个同样的文件名,如果没有MD5校验,那么就可以了,如果有MD5校验,需要MD5欺骗
vgmstream CLI脚本使用方法
Usage: …\test.exe [-o ] [options]
Options:
-o : name of output .wav file, default .wav
wildcards can be ?s=subsong, ?n=stream name, ?f=infile
-l loop count: loop count, default 2.0
-f fade time: fade time in seconds after N loops, default 10.0
-d fade delay: fade delay in seconds, default 0.0
-F: don’t fade after N loops and play the rest of the stream
-i: ignore looping information and play the whole stream once
-e: force end-to-end looping
-E: force end-to-end looping even if file has real loop points
-s N: select subsong N, if the format supports multiple subsongs
-m: print metadata only, don’t decode
-L: append a smpl chunk and create a looping wav
-2 N: only output the Nth (first is 0) set of stereo channels
-p: output to stdout (for piping into another program)
-P: output to stdout even if stdout is a terminal
-c: loop forever (continuously) to stdout
-x: decode and print adxencd command line to encode as ADX
-g: decode and print oggenc command line to encode as OGG
-b: decode and print batch variable commands
-h: print extra commands (for testing)
-V: print version info and supported extensions as JSON
-I: print requested file info as JSON
其实wav解码不需要批处理,直接把原始wav拖到test.exe上松手就可以了
建议:
1\把test里的所有文件拷贝到提取出来的wav文件夹里去.
2\在里面再创建个批处理文件运行就好.
3\批处理文件按up主的那个修改简单一点.把下面内容直接复制成新文件BAT后缀的就好.
@echo off
for /r %%i in (*.wav) do (
test.exe “%%~nxi”
)
pause
@痴也
大佬你好,我想请问一下 为什么我按照您的步骤生成出批处理文件后,双击直接闪退,拖到命令提示符里运行的话 会显示%~nxi的用法无效?
@小彭
试试用管理员权限运行看看?
为什么我转换后的音频不全,最后人物还没说完话就结束了,然后紧接着一个文件还是格式错误的?
可以求一段公子的语音吗?就是公子说那句 你不会不要我吧 那句QAQ
@夜立
不容易,因为语音是乱序的,没法精确的找到。我记得我之前看过一位大佬通过语音识别转换出来了一部分,你可以找找
@Bug侠
好的,还是非常感谢啦。
@Bug侠
cv8595206 B站这个文章里面有2.4全语音索引
@夜立
要不,直接在游戏内录一下?譬如说virtual audio cable……
大大,能够当个伸手党吗?球球,最近也是沉迷原神,可惜误入亚服,如果您也是亚服,可以一起玩阿
@喵仔
可以当个伸手党啊 不知道你求什么……
我已经脱坑了,没时间玩了现在
@Bug侠
想求个胡桃的原声
@喵仔
不容易,因为语音是乱序的,没法精确的找到。我记得我之前看过一位大佬通过语音识别转换出来了一部分,你可以找找
转码那个打不开,哭了…………直接闪退
转码那个软件打不开 直接闪退
C:\Users\ASUS>metadata from: Audiokinetic Wwise RIFF header metadata 不是内部或外部命令,也不是可运行的程序或批处理文件。
哪里输错了