did some cli output cleanup, and fixed the test pipeline aswell as added a few tests

This commit is contained in:
2025-12-16 18:15:40 +01:00
parent 9b88f4719f
commit b511b75db7
5 changed files with 111 additions and 44 deletions
@@ -14,7 +14,7 @@ module.exports = {
let output = {}
console.log("Extract Speaker Snippets\n");
// console.log("Extract Speaker Snippets\n");
// Pfade
const AUDIO_PATH = parameter.audioPath; // Gesamt-Audio
@@ -23,7 +23,8 @@ module.exports = {
if (!AUDIO_PATH || !JSON_PATH) {
console.error("no audioPath or jsonPath available");
// console.error("no audioPath or jsonPath available");
reject(new Error("no audioPath or jsonPath available"));
return;
}
@@ -37,12 +38,14 @@ module.exports = {
try {
entries = JSON.parse(fs.readFileSync(JSON_PATH, "utf8"));
} catch (err) {
console.error("JSON reading failed", err);
// console.error("JSON reading failed", err);
reject(new Error(err));
return;
}
if (!Array.isArray(entries)) {
console.error("JSON is not an Array");
// console.error("JSON is not an Array");
reject(new Error("JSON is not an Array"));
return;
}
@@ -64,32 +67,36 @@ module.exports = {
const durationSec = (data.end - data.start) / 1000;
if (durationSec <= 0) {
console.log(`invalid times for Speaker ${speaker}`);
// console.log(`invalid times for Speaker ${speaker}`);
continue;
}
const outFile = path.join(OUTPUT_DIR, `speaker_${speaker}.wav`);
await new Promise((res, rej) => {
ffmpeg(AUDIO_PATH)
.setStartTime(startSec)
.setDuration(durationSec)
.output(outFile)
.on("end", () => {
output[`speaker${speaker}`] = {src: outFile, name: `speaker${speaker}`}
console.log(`Snippet erstellt: speaker_${speaker}.wav`);
res();
})
.on("error", (err) => {
console.error(`FFmpeg Fehler (${speaker})`, err.message);
rej();
})
.run();
});
try {
await new Promise((res, rej) => {
ffmpeg(AUDIO_PATH)
.setStartTime(startSec)
.setDuration(durationSec)
.output(outFile)
.on("end", () => {
output[`speaker${speaker}`] = {src: outFile, name: `speaker${speaker}`}
// console.log(`Snippet erstellt: speaker_${speaker}.wav`);
res();
})
.on("error", (err) => {
// console.error(`FFmpeg Fehler (${speaker})`, err.message);
rej(err);
return
})
.run();
});
} catch (error) {
reject(error)
return
}
}
resolve(output)
console.log("\nAlle Speaker-Snippets erstellt\n");
// console.log("\nAlle Speaker-Snippets erstellt\n");
})
}
};