From de89ae73bf4445d93abd2b2966947e07114a4c05 Mon Sep 17 00:00:00 2001 From: an-lee Date: Mon, 18 Mar 2024 12:55:28 +0800 Subject: [PATCH] Force alignment for tts audio (#418) * add originalText as param * save original text when added from tts speech * fix player in conversation sheet * minor fix --- enjoy/src/main/db/handlers/audios-handler.ts | 39 ++++++---- enjoy/src/main/db/models/audio.ts | 6 ++ .../components/audios/audio-player.tsx | 4 ++ .../medias/media-current-recording.tsx | 1 + .../components/medias/media-transcription.tsx | 2 +- .../components/messages/assistant-message.tsx | 3 +- .../context/media-player-provider.tsx | 41 ++++++----- enjoy/src/renderer/hooks/use-transcribe.tsx | 15 +++- .../src/renderer/hooks/use-transcriptions.tsx | 71 ++++++++++++------- enjoy/src/types/transcription.d.ts | 2 +- 10 files changed, 123 insertions(+), 61 deletions(-) diff --git a/enjoy/src/main/db/handlers/audios-handler.ts b/enjoy/src/main/db/handlers/audios-handler.ts index 62331c9e..086c1794 100644 --- a/enjoy/src/main/db/handlers/audios-handler.ts +++ b/enjoy/src/main/db/handlers/audios-handler.ts @@ -72,6 +72,7 @@ class AudiosHandler { params: { name?: string; coverUrl?: string; + originalText?: string; } = {} ) { let file = uri; @@ -95,19 +96,33 @@ class AudiosHandler { } } - return Audio.buildFromLocalFile(file, { - source, - ...params, - }) - .then((audio) => { - return audio.toJSON(); - }) - .catch((err) => { - return event.sender.send("on-notification", { - type: "error", - message: t("models.audio.failedToAdd", { error: err.message }), - }); + try { + const audio = await Audio.buildFromLocalFile(file, { + source, + name: params.name, + coverUrl: params.coverUrl, }); + + // create transcription if originalText is provided + const { originalText } = params; + if (originalText) { + await Transcription.create({ + targetType: "Audio", + targetId: audio.id, + targetMd5: audio.md5, + result: { + originalText, + }, + }); + } + + return audio.toJSON(); + } catch (err) { + return event.sender.send("on-notification", { + type: "error", + message: t("models.audio.failedToAdd", { error: err.message }), + }); + } } private async update( diff --git a/enjoy/src/main/db/models/audio.ts b/enjoy/src/main/db/models/audio.ts index be7b5a29..9bcadbf2 100644 --- a/enjoy/src/main/db/models/audio.ts +++ b/enjoy/src/main/db/models/audio.ts @@ -229,6 +229,12 @@ export class Audio extends Model