[Update] Config Page: Transcription Tab. Add SelectedTranscriptionEngine.

This commit is contained in:
Sakamoto Shiina
2024-11-13 12:35:09 +09:00
parent 4db5306178
commit 9d620e9834
6 changed files with 64 additions and 4 deletions

View File

@@ -203,9 +203,8 @@
"desc": "It is the lower limit for the number of transcribed words, and only when this number is exceeded will the transcription results be displayed logs.",
"error_message": "You can set a number equal to or greater than 0."
},
"use_whisper_feature": {
"label": "Use Whisper Model As Transcription",
"desc": "In some languages, the accuracy of speech recognition may improve. During speech recognition usage, CPU usage increases, so please consider your PC specs before using this feature."
"select_transcription_engine": {
"label": "Select Transcription Engine"
},
"whisper_weight_type": {
"label": "Select Whisper Model",

View File

@@ -12,6 +12,7 @@ import {
useSpeakerPhraseTimeout,
useSpeakerMaxWords,
useSelectedTranscriptionEngine,
useWhisperWeightTypeStatus,
useSelectedWhisperWeightType,
} from "@logics_configs";
@@ -20,6 +21,7 @@ import {
EntryContainer,
WordFilterContainer,
DownloadModelsContainer,
RadioButtonContainer,
} from "../_templates/Templates";
export const Transcription = () => {
@@ -27,7 +29,7 @@ export const Transcription = () => {
<>
<Mic_Container />
<Speaker_Container />
<WhisperWeightType_Box />
<TranscriptionEngine_Container />
</>
);
};
@@ -233,6 +235,34 @@ const SpeakerMaxWords_Box = () => {
};
const TranscriptionEngine_Container = () => {
return (
<>
<TranscriptionEngine_Box />
<WhisperWeightType_Box />
</>
);
};
const TranscriptionEngine_Box = () => {
const { t } = useTranslation();
const { currentSelectedTranscriptionEngine, setSelectedTranscriptionEngine } = useSelectedTranscriptionEngine();
return (
<RadioButtonContainer
label={t("config_page.select_transcription_engine.label")}
selectFunction={setSelectedTranscriptionEngine}
name="select_transcription_engine"
options={[
{ id: "Google", label: "Google" },
{ id: "Whisper", label: "Whisper" },
]}
checked_variable={currentSelectedTranscriptionEngine}
/>
);
};
const WhisperWeightType_Box = () => {
const { t } = useTranslation();
const {

View File

@@ -31,6 +31,7 @@ export { useSpeakerRecordTimeout } from "./transcription/useSpeakerRecordTimeout
export { useSpeakerPhraseTimeout } from "./transcription/useSpeakerPhraseTimeout";
export { useSpeakerMaxWords } from "./transcription/useSpeakerMaxWords";
export { useSelectedTranscriptionEngine } from "./transcription/useSelectedTranscriptionEngine";
export { useWhisperWeightTypeStatus } from "./transcription/useWhisperWeightTypeStatus";
export { useSelectedWhisperWeightType } from "./transcription/useSelectedWhisperWeightType";

View File

@@ -0,0 +1,24 @@
import { useStore_SelectedTranscriptionEngine } from "@store";
import { useStdoutToPython } from "@logics/useStdoutToPython";
export const useSelectedTranscriptionEngine = () => {
const { asyncStdoutToPython } = useStdoutToPython();
const { currentSelectedTranscriptionEngine, updateSelectedTranscriptionEngine, pendingSelectedTranscriptionEngine } = useStore_SelectedTranscriptionEngine();
const getSelectedTranscriptionEngine = () => {
pendingSelectedTranscriptionEngine();
asyncStdoutToPython("/get/data/selected_transcription_engine");
};
const setSelectedTranscriptionEngine = (selected_transcription_engine) => {
pendingSelectedTranscriptionEngine();
asyncStdoutToPython("/set/data/selected_transcription_engine", selected_transcription_engine);
};
return {
currentSelectedTranscriptionEngine,
getSelectedTranscriptionEngine,
updateSelectedTranscriptionEngine,
setSelectedTranscriptionEngine,
};
};

View File

@@ -48,6 +48,7 @@ import {
useDeepLAuthKey,
useCTranslate2WeightTypeStatus,
useSelectedCTranslate2WeightType,
useSelectedTranscriptionEngine,
useSelectedWhisperWeightType,
useWhisperWeightTypeStatus,
useOverlaySettings,
@@ -129,6 +130,7 @@ export const useReceiveRoutes = () => {
downloadedCTranslate2WeightType,
} = useCTranslate2WeightTypeStatus();
const { updateSelectedTranscriptionEngine } = useSelectedTranscriptionEngine();
const { updateSelectedWhisperWeightType } = useSelectedWhisperWeightType();
const {
updateDownloadedWhisperWeightTypeStatus,
@@ -351,6 +353,9 @@ export const useReceiveRoutes = () => {
"/get/data/speaker_max_phrases": updateSpeakerMaxWords,
"/set/data/speaker_max_phrases": updateSpeakerMaxWords,
"/get/data/selected_transcription_engine": updateSelectedTranscriptionEngine,
"/set/data/selected_transcription_engine": updateSelectedTranscriptionEngine,
"/get/data/whisper_weight_type": updateSelectedWhisperWeightType,
"/set/data/whisper_weight_type": updateSelectedWhisperWeightType,

View File

@@ -201,6 +201,7 @@ export const { atomInstance: Atom_SpeakerMaxWords, useHook: useStore_SpeakerMaxW
export const { atomInstance: Atom_SelectedWhisperWeightType, useHook: useStore_SelectedWhisperWeightType } = createAtomWithHook("", "SelectedWhisperWeightType");
export const { atomInstance: Atom_WhisperWeightTypeStatus, useHook: useStore_WhisperWeightTypeStatus } = createAtomWithHook(whisper_weight_type_status, "WhisperWeightTypeStatus");
export const { atomInstance: Atom_SelectedTranscriptionEngine, useHook: useStore_SelectedTranscriptionEngine } = createAtomWithHook(whisper_weight_type_status, "SelectedTranscriptionEngine");
// VR