Не заходил в тему, думал без меня справитесь. Если ещё актуально.
Они в VDB файлах лежат?
Да.
если в VDB находятся VAG файлы.... То как их извлечь если компрессор их не читает?
Про VGMToolbox ошибся, он неправильно вытаскивает файлы, и это похоже не стандартные VAG-файлы, пришлось разбирать VIB.
СкриптНаписал Python 3 скрипт, который вытаскивает файлы из VDB. Правой кнопкой мыши на Raw и "Сохранить объект как...". Простой передавайте первым аргументом VDB- или VIB-файл, они должны быть в одной папке.
Аудиофайлы не имеют заголовка, скорее всего VAG без заголовка. Программа
MFAudio (узнал о ней
отсюда) правильно воспроизводит, если выставить "RAW - Raw Sound Data - Compressed ADPCM", частоту и 1 канал (везде предполагал моно, не знаю, бывает ли стерео). MFAudio поддерживает командную строку (чтобы узнать параметры: MFAudio.exe /?), но выставить входной формат нельзя, разраб недогадался, что определять правильно RAW его программа не умеет. Пришлось добавлять простой VAG-заголовок, тогда конвертируется. ffmpeg конвертирует с ошибкой и на несколько мс длиннее, но на слух должно быть также; может неправильно задан заголовок, хотя на файлы от MFAudio он тоже жалуется. Скрипт преобразует файлы в wav, если MFAudio.exe лежит в одной папке со скриптом.
Описание форматаСтруктура VIB-файла описана в скрипте. В заголовке VIB я не определил два int32, они всегда равны 1. У каждого описания файла есть непонятный int32, который повторяется у разных файлов. Также есть категории файлов, они описываются в конце файла, не влияют на звук, там тоже есть int32, который иногда совпадает с тем, что у файла.
У vgmstream есть формат meta_PS_HEADERLESS, /* headerless PS-ADPCM */:
https://github.com/kode54/vgmstream/blob/79d33caa0dd31d1360a2334285bd218c07c39ece/src/vgmstream.hhttps://github.com/kode54/vgmstream/blob/72d0b7a3b0055573d9c5fca8ad470625493c61c8/src/meta/ps_headerless.cНо как его задать я не стал разбираться.
ffmpeg поддерживает VAG, описание формата
https://ffmpeg.org/doxygen/trunk/vag_8c_source.html.
Для теста использовалChains\Act1\Speech\R2S1_RU.VDB - русская речь
Missions\Convicts01_City01\GameAudio.VDB - разные звуки: сирена, машина, взрывы, меню
Missions\Convicts01_City01\AudioLocalised_RU.VDB - крики
Голос обычно с частотой 16000Гц, есть звуки с 44100Гц.