Fix: logs and notify more friendly (#127)

* popup the error when whisper/ffmpeg failed

* fix ffmpeg error handler
This commit is contained in:
an-lee
2024-01-16 23:32:49 +08:00
committed by GitHub
parent 8f600bf1b9
commit a823c345df
3 changed files with 24 additions and 9 deletions

View File

@@ -30,12 +30,16 @@ class TranscriptionsHandler {
});
if (transcription.state === "pending") {
transcription.process();
transcription.process().catch((err) => {
event.sender.send("on-notification", {
type: "error",
message: err.message,
});
});
}
return transcription.toJSON();
} catch (err) {
logger.error(err);
event.sender.send("on-notification", {
type: "error",
message: err.message,

View File

@@ -139,14 +139,24 @@ export default class FfmpegWrapper {
...options
)
.on("start", (commandLine) => {
logger.debug(`Trying to convert ${input} to ${output}`);
logger.info("Spawned FFmpeg with command: " + commandLine);
fs.ensureDirSync(path.dirname(output));
})
.on("end", (_stdout, stderr) => {
.on("end", (stdout, stderr) => {
if (stdout) {
logger.debug(stdout);
}
if (stderr) {
logger.error(stderr);
}
resolve(output);
if (fs.existsSync(output)) {
resolve(output);
} else {
reject(new Error("FFmpeg command failed"));
}
})
.on("error", (err: Error) => {
logger.error(err);
@@ -171,11 +181,9 @@ export default class FfmpegWrapper {
}
}
logger.info(
`[WHISPER] Trying to convert ${input} to 16-bit WAVE file ${output}`
);
logger.info(`Trying to convert ${input} to 16-bit WAVE file ${output}`);
if (fs.pathExistsSync(output)) {
logger.warn(`[WHISPER] File ${output} already exists, deleting.`);
logger.warn(`File ${output} already exists, deleting.`);
fs.removeSync(output);
}

View File

@@ -105,7 +105,10 @@ class Whipser {
logger.debug(stdout);
}
reject(new Error("Whisper transcribe failed: unknown error"));
reject(
error ||
new Error(stderr || "Whisper transcribe failed: unknown error")
);
}
);
});