diff --git a/src/components/SettingDialog.vue b/src/components/SettingDialog.vue index 2a15acbef9..15af4c2bc5 100644 --- a/src/components/SettingDialog.vue +++ b/src/components/SettingDialog.vue @@ -63,6 +63,39 @@ > + +
音声のサンプリングレート(全エンジン共通)
+
+ + + 再生・保存時の音声のサンプリングレートを変更します(サンプリングレートを上げても音声の品質は上がりません。) + + +
+ + + +
@@ -538,34 +571,6 @@ > - -
音声のサンプリングレート
-
- - - 再生・保存時の音声のサンプリングレートを変更します(サンプリングレートを上げても音声の品質は上がりません。) - - -
- - - -
diff --git a/src/store/setting.ts b/src/store/setting.ts index 50c0c115fd..d638240ec8 100644 --- a/src/store/setting.ts +++ b/src/store/setting.ts @@ -55,6 +55,7 @@ export const settingStoreState: SettingStoreState = { confirmedTips: { tweakableSliderByScroll: false, }, + engineSetting: {}, }; export const settingStore = createPartialStore({ @@ -116,6 +117,10 @@ export const settingStore = createPartialStore({ commit("SET_CONFIRMED_TIPS", { confirmedTips: await window.electron.getSetting("confirmedTips"), }); + + commit("SET_ENGINE_SETTING", { + engineSetting: await window.electron.getSetting("engineSetting"), + }); }, }, @@ -307,6 +312,16 @@ export const settingStore = createPartialStore({ }, }, + SET_ENGINE_SETTING: { + mutation(state, { engineSetting }) { + state.engineSetting = engineSetting; + }, + action({ commit }, { engineSetting }) { + window.electron.setSetting("engineSetting", engineSetting); + commit("SET_ENGINE_SETTING", { engineSetting }); + }, + }, + CHANGE_USE_GPU: { /** * CPU/GPUモードを切り替えようとする。 diff --git a/src/store/type.ts b/src/store/type.ts index 698700fec3..f65043688c 100644 --- a/src/store/type.ts +++ b/src/store/type.ts @@ -37,6 +37,7 @@ import { ConfirmedTips, EngineDirValidationResult, EditorFontType, + EngineSetting, } from "@/type/preload"; import { IEngineConnectorFactory } from "@/infrastructures/EngineConnector"; import { QVueGlobals } from "quasar"; @@ -938,6 +939,7 @@ export type SettingStoreState = { splitTextWhenPaste: SplitTextWhenPasteType; splitterPosition: SplitterPosition; confirmedTips: ConfirmedTips; + engineSetting: EngineSetting; }; export type SettingStoreTypes = { @@ -1002,6 +1004,11 @@ export type SettingStoreTypes = { action(payload: { confirmedTips: ConfirmedTips }): void; }; + SET_ENGINE_SETTING: { + mutation: { engineSetting: EngineSetting }; + action(payload: { engineSetting: EngineSetting }): void; + }; + CHANGE_USE_GPU: { action(payload: { useGpu: boolean }): void; }; diff --git a/src/type/preload.ts b/src/type/preload.ts index 48194c4500..1c5a801df9 100644 --- a/src/type/preload.ts +++ b/src/type/preload.ts @@ -258,6 +258,13 @@ export type SavingSetting = { audioOutputDevice: string; }; +export type EngineSetting = Record; + +type EngineSettingRecord = { + useGpu: boolean | "inherit"; + outputSamplingRate: number | "inherit"; +}; + export type DefaultStyleId = { engineId: string; speakerUuid: string; @@ -446,6 +453,14 @@ export const electronStoreSchema = z toolbarSetting: toolbarSettingSchema .array() .default(defaultToolbarButtonSetting), + engineSetting: z.record( + z.object({ + useGpu: z.union([z.boolean(), z.literal("inherit")]).default("inherit"), + outputSamplingRate: z + .union([z.number(), z.literal("inherit")]) + .default("inherit"), + }) + ), userCharacterOrder: z.string().array().default([]), defaultStyleIds: z .object({