mirror of
https://github.com/ad044/lainTSX.git
synced 2024-10-23 07:29:06 +00:00
25 lines
927 B
JavaScript
25 lines
927 B
JavaScript
import { FileWriter } from "wav";
|
|
import { execSync } from "child_process";
|
|
import { readFileSync, existsSync, mkdirSync } from "fs";
|
|
import { join } from "path";
|
|
|
|
export function extract_voice(tempdir, jpsxdec_jar, disc1_index) {
|
|
execSync(
|
|
`java -jar ${jpsxdec_jar} -x "${disc1_index}" -i VOICE.BIN -dir "${tempdir}"`,
|
|
{ stdio: "inherit" }
|
|
);
|
|
const voice_files = JSON.parse(readFileSync('voice.json'))
|
|
|
|
let voice_data = readFileSync(join(tempdir, "VOICE.BIN"));
|
|
let output_folder = join("..", "..", "src", "static", "voice");
|
|
if(!existsSync(output_folder)) {
|
|
mkdirSync(output_folder);
|
|
}
|
|
|
|
for (let voice_file of voice_files) {
|
|
let path = join(output_folder, voice_file.translated_name);
|
|
let wav_file = new FileWriter(path, {sampleRate: 22050, channels:1, bitDepth: 16});
|
|
wav_file.write(voice_data.slice(voice_file.offset, voice_file.offset + voice_file.size));
|
|
wav_file.end();
|
|
}
|
|
}
|