mirror of
https://github.com/ad044/lainTSX.git
synced 2024-10-22 23:19:06 +00:00
fix voice extraction
This commit is contained in:
parent
a6a408b97f
commit
49df60562a
3 changed files with 122 additions and 7 deletions
102
package-lock.json
generated
102
package-lock.json
generated
|
@ -4208,6 +4208,28 @@
|
|||
"isarray": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"buffer-alloc": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
|
||||
"integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-alloc-unsafe": "^1.1.0",
|
||||
"buffer-fill": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"buffer-alloc-unsafe": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
|
||||
"integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-fill": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
|
||||
"integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
|
||||
|
@ -15770,6 +15792,32 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"stream-parser": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
|
||||
"integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "2"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"stream-shift": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
|
||||
|
@ -17098,6 +17146,60 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"wav": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wav/-/wav-1.0.2.tgz",
|
||||
"integrity": "sha512-viHtz3cDd/Tcr/HbNqzQCofKdF6kWUymH9LGDdskfWFoIy/HJ+RTihgjEcHfnsy1PO4e9B+y4HwgTwMrByquhg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-alloc": "^1.1.0",
|
||||
"buffer-from": "^1.0.0",
|
||||
"debug": "^2.2.0",
|
||||
"readable-stream": "^1.1.14",
|
||||
"stream-parser": "^0.3.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"isarray": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
||||
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "1.1.14",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
|
||||
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.1",
|
||||
"isarray": "0.0.1",
|
||||
"string_decoder": "~0.10.x"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"wbuf": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
},
|
||||
"homepage": ".",
|
||||
"devDependencies": {
|
||||
"eslint-loader": "^4.0.2"
|
||||
"eslint-loader": "^4.0.2",
|
||||
"wav": "^1.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { FileWriter } from "wav";
|
||||
import { execSync } from "child_process";
|
||||
import { readFileSync, existsSync, mkdirSync } from "fs";
|
||||
import { readFileSync, existsSync, mkdirSync, writeFileSync } from "fs";
|
||||
import { join } from "path";
|
||||
|
||||
export function extract_voice(tempdir, jpsxdec_jar, disc1_index) {
|
||||
|
@ -8,18 +8,30 @@ export function extract_voice(tempdir, jpsxdec_jar, disc1_index) {
|
|||
`java -jar ${jpsxdec_jar} -x "${disc1_index}" -i VOICE.BIN -dir "${tempdir}"`,
|
||||
{ stdio: "inherit" }
|
||||
);
|
||||
const voice_files = JSON.parse(readFileSync('voice.json'))
|
||||
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)) {
|
||||
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();
|
||||
let data = voice_data.slice(
|
||||
voice_file.offset,
|
||||
voice_file.offset + voice_file.size
|
||||
);
|
||||
if (["BYA.WAV", "BYO.WAV", "BYU.WAV"].includes(voice_file.original_name)) {
|
||||
writeFileSync(path, data);
|
||||
} else {
|
||||
let wav_file = new FileWriter(path, {
|
||||
sampleRate: 22050,
|
||||
channels: 1,
|
||||
bitDepth: 16,
|
||||
});
|
||||
wav_file.write(data);
|
||||
wav_file.end();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue