diff --git a/.gitignore b/.gitignore index fa583fd5..bf6579f8 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,5 @@ venv/ beatrice_internal_api.cp310-win_amd64.pyd 108_average_110b_10.bin + +server/model_dir_static/Beatrice-JVS diff --git a/client/demo/build-voice-changer-js.sh b/client/demo/build-voice-changer-js.sh index 472c3a57..2af183a2 100644 --- a/client/demo/build-voice-changer-js.sh +++ b/client/demo/build-voice-changer-js.sh @@ -1,4 +1,11 @@ -cd ~/git-work/voice-changer-js/lib/ ; npm run build:dev; cd - +# cd ~/git-work/voice-changer-js/lib/ ; npm run build:dev; cd - +# rm -rf node_modules/@dannadori/voice-changer-js +# mkdir -p node_modules/@dannadori/voice-changer-js/dist +# cp -r ~/git-work/voice-changer-js/lib/package.json node_modules/@dannadori/voice-changer-js/ +# cp -r ~/git-work/voice-changer-js/lib/dist node_modules/@dannadori/voice-changer-js/ + + +cd ~/git-work/voice-changer-js/lib/ ; npm run build:prod; cd - rm -rf node_modules/@dannadori/voice-changer-js mkdir -p node_modules/@dannadori/voice-changer-js/dist cp -r ~/git-work/voice-changer-js/lib/package.json node_modules/@dannadori/voice-changer-js/ diff --git a/client/demo/src/components/demo/components2/100_ModelSlotArea.tsx b/client/demo/src/components/demo/components2/100_ModelSlotArea.tsx index 326b5f36..a8d55554 100644 --- a/client/demo/src/components/demo/components2/100_ModelSlotArea.tsx +++ b/client/demo/src/components/demo/components2/100_ModelSlotArea.tsx @@ -55,6 +55,7 @@ export const ModelSlotArea = (_props: ModelSlotAreaProps) => { ); const clickAction = async () => { + // @ts-ignore const dummyModelSlotIndex = Math.floor(Date.now() / 1000) * 1000 + x.slotIndex; await serverSetting.updateServerSettings({ ...serverSetting.serverSetting, modelSlotIndex: dummyModelSlotIndex }); setTimeout(() => { diff --git a/client/demo/src/components/demo/components2/101-1_TuningArea.tsx b/client/demo/src/components/demo/components2/101-1_TuningArea.tsx index f3c20785..31b5311d 100644 --- a/client/demo/src/components/demo/components2/101-1_TuningArea.tsx +++ b/client/demo/src/components/demo/components2/101-1_TuningArea.tsx @@ -1,55 +1,59 @@ -import React, { useMemo } from "react" -import { useAppState } from "../../../001_provider/001_AppStateProvider" - -export type TuningAreaProps = { -} +import React, { useMemo } from "react"; +import { useAppState } from "../../../001_provider/001_AppStateProvider"; +export type TuningAreaProps = {}; export const TuningArea = (_props: TuningAreaProps) => { - const { serverSetting } = useAppState() + const { serverSetting } = useAppState(); const selected = useMemo(() => { if (serverSetting.serverSetting.modelSlotIndex == undefined) { - return + return; + } else if (serverSetting.serverSetting.modelSlotIndex == "Beatrice-JVS") { + const beatriceJVS = serverSetting.serverSetting.modelSlots.find((v) => v.slotIndex == "Beatrice-JVS"); + return beatriceJVS; + } else { + return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex]; } - return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex] - }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]) - + }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]); const tuningArea = useMemo(() => { if (!selected) { - return <> + return <>; } if (selected.voiceChangerType == "MMVCv13" || selected.voiceChangerType == "MMVCv15") { - return <> + return <>; } - const currentTuning = serverSetting.serverSetting.tran + const currentTuning = serverSetting.serverSetting.tran; const tranValueUpdatedAction = async (val: number) => { - await serverSetting.updateServerSettings({ ...serverSetting.serverSetting, tran: val }) - } + await serverSetting.updateServerSettings({ ...serverSetting.serverSetting, tran: val }); + }; return (
-
- TUNE: -
+
TUNE:
- { - tranValueUpdatedAction(Number(e.target.value)) - }}> + { + tranValueUpdatedAction(Number(e.target.value)); + }} + > {currentTuning}
-
- ) - }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]) + ); + }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]); - - return tuningArea -} \ No newline at end of file + return tuningArea; +}; diff --git a/client/demo/src/components/demo/components2/101-2_IndexArea.tsx b/client/demo/src/components/demo/components2/101-2_IndexArea.tsx index a6deccdb..cc88b6b8 100644 --- a/client/demo/src/components/demo/components2/101-2_IndexArea.tsx +++ b/client/demo/src/components/demo/components2/101-2_IndexArea.tsx @@ -1,56 +1,59 @@ -import React, { useMemo } from "react" -import { useAppState } from "../../../001_provider/001_AppStateProvider" - -export type IndexAreaProps = { -} +import React, { useMemo } from "react"; +import { useAppState } from "../../../001_provider/001_AppStateProvider"; +export type IndexAreaProps = {}; export const IndexArea = (_props: IndexAreaProps) => { - const { serverSetting } = useAppState() + const { serverSetting } = useAppState(); const selected = useMemo(() => { if (serverSetting.serverSetting.modelSlotIndex == undefined) { - return + return; + } else if (serverSetting.serverSetting.modelSlotIndex == "Beatrice-JVS") { + const beatriceJVS = serverSetting.serverSetting.modelSlots.find((v) => v.slotIndex == "Beatrice-JVS"); + return beatriceJVS; + } else { + return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex]; } - return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex] - }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]) - + }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]); const indexArea = useMemo(() => { if (!selected) { - return <> + return <>; } if (selected.voiceChangerType != "RVC") { - return <> + return <>; } - const currentIndexRatio = serverSetting.serverSetting.indexRatio + const currentIndexRatio = serverSetting.serverSetting.indexRatio; const indexRatioValueUpdatedAction = async (val: number) => { - await serverSetting.updateServerSettings({ ...serverSetting.serverSetting, indexRatio: val }) - } + await serverSetting.updateServerSettings({ ...serverSetting.serverSetting, indexRatio: val }); + }; return (
-
- INDEX: -
+
INDEX:
- { - indexRatioValueUpdatedAction(Number(e.target.value)) - }}> + { + indexRatioValueUpdatedAction(Number(e.target.value)); + }} + > {currentIndexRatio}
-
- ) - }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]) + ); + }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]); - - - return indexArea -} \ No newline at end of file + return indexArea; +}; diff --git a/client/demo/src/components/demo/components2/101-3_SpeakerArea.tsx b/client/demo/src/components/demo/components2/101-3_SpeakerArea.tsx index 19c3f8c9..93c69548 100644 --- a/client/demo/src/components/demo/components2/101-3_SpeakerArea.tsx +++ b/client/demo/src/components/demo/components2/101-3_SpeakerArea.tsx @@ -1,113 +1,109 @@ -import React, { useMemo } from "react" -import { useAppState } from "../../../001_provider/001_AppStateProvider" - -export type SpeakerAreaProps = { -} +import React, { useMemo } from "react"; +import { useAppState } from "../../../001_provider/001_AppStateProvider"; +export type SpeakerAreaProps = {}; export const SpeakerArea = (_props: SpeakerAreaProps) => { - const { serverSetting } = useAppState() + const { serverSetting } = useAppState(); const selected = useMemo(() => { if (serverSetting.serverSetting.modelSlotIndex == undefined) { - return + return; + } else if (serverSetting.serverSetting.modelSlotIndex == "Beatrice-JVS") { + const beatriceJVS = serverSetting.serverSetting.modelSlots.find((v) => v.slotIndex == "Beatrice-JVS"); + return beatriceJVS; + } else { + return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex]; } - return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex] - }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]) - - + }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]); const srcArea = useMemo(() => { if (!selected) { - return <> + return <>; } if (selected.voiceChangerType != "MMVCv13" && selected.voiceChangerType != "MMVCv15") { - return <> + return <>; } - const options = Object.keys(selected.speakers).map(key => { - const val = selected.speakers[Number(key)] + const options = Object.keys(selected.speakers).map((key) => { + const val = selected.speakers[Number(key)]; return ( - - ) - }) + + ); + }); const srcSpeakerValueUpdatedAction = async (val: number) => { - await serverSetting.updateServerSettings({ ...serverSetting.serverSetting, srcId: val }) - } + await serverSetting.updateServerSettings({ ...serverSetting.serverSetting, srcId: val }); + }; return (
-
- Voice: -
+
Voice:
src - { + srcSpeakerValueUpdatedAction(Number(e.target.value)); + }} + > {options}
-
-
- ) - }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]) - + + ); + }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]); const dstArea = useMemo(() => { if (!selected) { - return <> + return <>; } - const options = Object.keys(selected.speakers).map(key => { - const val = selected.speakers[Number(key)] + const options = Object.keys(selected.speakers).map((key) => { + const val = selected.speakers[Number(key)]; return ( - - ) - }) + + ); + }); const srcSpeakerValueUpdatedAction = async (val: number) => { - await serverSetting.updateServerSettings({ ...serverSetting.serverSetting, dstId: val }) - } + await serverSetting.updateServerSettings({ ...serverSetting.serverSetting, dstId: val }); + }; return (
-
- { - selected.voiceChangerType == "DDSP-SVC" || - selected.voiceChangerType == "so-vits-svc-40" || - selected.voiceChangerType == "RVC" ? "Voice:" : "" - } -
+
{selected.voiceChangerType == "DDSP-SVC" || selected.voiceChangerType == "so-vits-svc-40" || selected.voiceChangerType == "RVC" || selected.voiceChangerType == "Beatrice" ? "Voice:" : ""}
- - { - selected.voiceChangerType == "MMVCv13" || - selected.voiceChangerType == "MMVCv15" ? "dst" : "" - } - - + {selected.voiceChangerType == "MMVCv13" || selected.voiceChangerType == "MMVCv15" ? "dst" : ""} - { + srcSpeakerValueUpdatedAction(Number(e.target.value)); + }} + > {options}
-
-
- ) - }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]) - + + ); + }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]); return ( <> {srcArea} {dstArea} - ) -} \ No newline at end of file + ); +}; diff --git a/client/demo/src/components/demo/components2/101-4_F0FactorArea.tsx b/client/demo/src/components/demo/components2/101-4_F0FactorArea.tsx index 19316339..cf502205 100644 --- a/client/demo/src/components/demo/components2/101-4_F0FactorArea.tsx +++ b/client/demo/src/components/demo/components2/101-4_F0FactorArea.tsx @@ -1,72 +1,70 @@ -import React, { useMemo } from "react" -import { useAppState } from "../../../001_provider/001_AppStateProvider" -import { MMVCv15ModelSlot } from "@dannadori/voice-changer-client-js" - -export type SpeakerAreaProps = { -} +import React, { useMemo } from "react"; +import { useAppState } from "../../../001_provider/001_AppStateProvider"; +import { MMVCv15ModelSlot } from "@dannadori/voice-changer-client-js"; +export type SpeakerAreaProps = {}; export const F0FactorArea = (_props: SpeakerAreaProps) => { - const { serverSetting } = useAppState() + const { serverSetting } = useAppState(); const selected = useMemo(() => { if (serverSetting.serverSetting.modelSlotIndex == undefined) { - return + return; + } else if (serverSetting.serverSetting.modelSlotIndex == "Beatrice-JVS") { + const beatriceJVS = serverSetting.serverSetting.modelSlots.find((v) => v.slotIndex == "Beatrice-JVS"); + return beatriceJVS; + } else { + return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex]; } - return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex] - }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]) - - + }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]); const f0FactorArea = useMemo(() => { if (!selected) { - return <> + return <>; } if (selected.voiceChangerType != "MMVCv15") { - return <> + return <>; } - const selectedMMVCv15 = selected as MMVCv15ModelSlot + const selectedMMVCv15 = selected as MMVCv15ModelSlot; - const recommendF0 = (selectedMMVCv15.f0[serverSetting.serverSetting.dstId] / selectedMMVCv15.f0[serverSetting.serverSetting.srcId]).toFixed(2) + const recommendF0 = (selectedMMVCv15.f0[serverSetting.serverSetting.dstId] / selectedMMVCv15.f0[serverSetting.serverSetting.srcId]).toFixed(2); return ( <>
-
- F0Factor: -
+
F0Factor:
- { - serverSetting.updateServerSettings({ ...serverSetting.serverSetting, f0Factor: Number(e.target.value) }) - }}> + { + serverSetting.updateServerSettings({ ...serverSetting.serverSetting, f0Factor: Number(e.target.value) }); + }} + > {serverSetting.serverSetting.f0Factor}
-
-
- -
+
recommend: - - {recommendF0} - + {recommendF0}
-
- ) - }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]) + ); + }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]); - - return f0FactorArea -} \ No newline at end of file + return f0FactorArea; +}; diff --git a/client/demo/src/components/demo/components2/101-5_so-vits-svc40SettingArea.tsx b/client/demo/src/components/demo/components2/101-5_so-vits-svc40SettingArea.tsx index 1aab7e41..c4c90de9 100644 --- a/client/demo/src/components/demo/components2/101-5_so-vits-svc40SettingArea.tsx +++ b/client/demo/src/components/demo/components2/101-5_so-vits-svc40SettingArea.tsx @@ -1,81 +1,86 @@ -import React, { useMemo } from "react" -import { useAppState } from "../../../001_provider/001_AppStateProvider" - -export type SoVitsSVC40SettingAreaProps = { -} +import React, { useMemo } from "react"; +import { useAppState } from "../../../001_provider/001_AppStateProvider"; +export type SoVitsSVC40SettingAreaProps = {}; export const SoVitsSVC40SettingArea = (_props: SoVitsSVC40SettingAreaProps) => { - const { serverSetting } = useAppState() + const { serverSetting } = useAppState(); const selected = useMemo(() => { if (serverSetting.serverSetting.modelSlotIndex == undefined) { - return + return; + } else if (serverSetting.serverSetting.modelSlotIndex == "Beatrice-JVS") { + const beatriceJVS = serverSetting.serverSetting.modelSlots.find((v) => v.slotIndex == "Beatrice-JVS"); + return beatriceJVS; + } else { + return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex]; } - return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex] - }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]) - - + }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]); const settingArea = useMemo(() => { if (!selected) { - return <> + return <>; } if (selected.voiceChangerType != "so-vits-svc-40") { - return <> + return <>; } const cluster = (
-
- Cluster: -
+
Cluster:
- { - serverSetting.updateServerSettings({ ...serverSetting.serverSetting, clusterInferRatio: Number(e.target.value) }) - }}> + { + serverSetting.updateServerSettings({ ...serverSetting.serverSetting, clusterInferRatio: Number(e.target.value) }); + }} + > {serverSetting.serverSetting.clusterInferRatio}
-
- ) - + ); const noise = (
-
- Noise: -
+
Noise:
- { - serverSetting.updateServerSettings({ ...serverSetting.serverSetting, noiseScale: Number(e.target.value) }) - }}> + { + serverSetting.updateServerSettings({ ...serverSetting.serverSetting, noiseScale: Number(e.target.value) }); + }} + > {serverSetting.serverSetting.noiseScale}
-
- ) - + ); return ( <> {cluster} {noise} - ) - }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]) + ); + }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]); - - return settingArea -} \ No newline at end of file + return settingArea; +}; diff --git a/client/demo/src/components/demo/components2/101-6_ddsp-svc30SettingArea.tsx b/client/demo/src/components/demo/components2/101-6_ddsp-svc30SettingArea.tsx index d6ab9495..f6982530 100644 --- a/client/demo/src/components/demo/components2/101-6_ddsp-svc30SettingArea.tsx +++ b/client/demo/src/components/demo/components2/101-6_ddsp-svc30SettingArea.tsx @@ -1,81 +1,86 @@ -import React, { useMemo } from "react" -import { useAppState } from "../../../001_provider/001_AppStateProvider" - -export type DDSPSVC30SettingAreaProps = { -} +import React, { useMemo } from "react"; +import { useAppState } from "../../../001_provider/001_AppStateProvider"; +export type DDSPSVC30SettingAreaProps = {}; export const DDSPSVC30SettingArea = (_props: DDSPSVC30SettingAreaProps) => { - const { serverSetting } = useAppState() + const { serverSetting } = useAppState(); const selected = useMemo(() => { if (serverSetting.serverSetting.modelSlotIndex == undefined) { - return + return; + } else if (serverSetting.serverSetting.modelSlotIndex == "Beatrice-JVS") { + const beatriceJVS = serverSetting.serverSetting.modelSlots.find((v) => v.slotIndex == "Beatrice-JVS"); + return beatriceJVS; + } else { + return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex]; } - return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex] - }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]) - - + }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]); const settingArea = useMemo(() => { if (!selected) { - return <> + return <>; } if (selected.voiceChangerType != "DDSP-SVC") { - return <> + return <>; } const acc = (
-
- ACC: -
+
ACC:
- { - serverSetting.updateServerSettings({ ...serverSetting.serverSetting, diffAcc: Number(e.target.value) }) - }}> + { + serverSetting.updateServerSettings({ ...serverSetting.serverSetting, diffAcc: Number(e.target.value) }); + }} + > {serverSetting.serverSetting.diffAcc}
-
- ) - + ); const kstep = (
-
- Kstep: -
+
Kstep:
- { - serverSetting.updateServerSettings({ ...serverSetting.serverSetting, kStep: Number(e.target.value) }) - }}> + { + serverSetting.updateServerSettings({ ...serverSetting.serverSetting, kStep: Number(e.target.value) }); + }} + > {serverSetting.serverSetting.kStep}
-
- ) - + ); return ( <> {acc} {kstep} - ) - }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]) + ); + }, [serverSetting.serverSetting, serverSetting.updateServerSettings, selected]); - - return settingArea -} \ No newline at end of file + return settingArea; +}; diff --git a/client/demo/src/components/demo/components2/101-7_diffusion-svcSettingArea.tsx b/client/demo/src/components/demo/components2/101-7_diffusion-svcSettingArea.tsx index 21531816..b1482181 100644 --- a/client/demo/src/components/demo/components2/101-7_diffusion-svcSettingArea.tsx +++ b/client/demo/src/components/demo/components2/101-7_diffusion-svcSettingArea.tsx @@ -10,8 +10,12 @@ export const DiffusionSVCSettingArea = (_props: DiffusionSVCSettingAreaProps) => const selected = useMemo(() => { if (serverSetting.serverSetting.modelSlotIndex == undefined) { return; + } else if (serverSetting.serverSetting.modelSlotIndex == "Beatrice-JVS") { + const beatriceJVS = serverSetting.serverSetting.modelSlots.find((v) => v.slotIndex == "Beatrice-JVS"); + return beatriceJVS; + } else { + return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex]; } - return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex]; }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]); const settingArea = useMemo(() => { diff --git a/client/demo/src/components/demo/components2/101_CharacterArea.tsx b/client/demo/src/components/demo/components2/101_CharacterArea.tsx index 3c0d5dfc..a89f3025 100644 --- a/client/demo/src/components/demo/components2/101_CharacterArea.tsx +++ b/client/demo/src/components/demo/components2/101_CharacterArea.tsx @@ -28,8 +28,12 @@ export const CharacterArea = (_props: CharacterAreaProps) => { const selected = useMemo(() => { if (serverSetting.serverSetting.modelSlotIndex == undefined) { return; + } else if (serverSetting.serverSetting.modelSlotIndex == "Beatrice-JVS") { + const beatriceJVS = serverSetting.serverSetting.modelSlots.find((v) => v.slotIndex == "Beatrice-JVS"); + return beatriceJVS; + } else { + return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex]; } - return serverSetting.serverSetting.modelSlots[serverSetting.serverSetting.modelSlotIndex]; }, [serverSetting.serverSetting.modelSlotIndex, serverSetting.serverSetting.modelSlots]); useEffect(() => { @@ -49,7 +53,8 @@ export const CharacterArea = (_props: CharacterAreaProps) => { return <>; } - const icon = selected.iconFile.length > 0 ? serverSetting.serverSetting.voiceChangerParams.model_dir + "/" + selected.slotIndex + "/" + selected.iconFile.split(/[\/\\]/).pop() : "./assets/icons/human.png"; + const modelDir = serverSetting.serverSetting.modelSlotIndex == "Beatrice-JVS" ? "model_dir_static" : serverSetting.serverSetting.voiceChangerParams.model_dir; + const icon = selected.iconFile.length > 0 ? modelDir + "/" + selected.slotIndex + "/" + selected.iconFile.split(/[\/\\]/).pop() : "./assets/icons/human.png"; const selectedTermOfUseUrlLink = selected.termsOfUseUrl ? ( [{messageBuilderState.getMessage(__filename, "terms_of_use")}] diff --git a/client/lib/src/const.ts b/client/lib/src/const.ts index 6e00d814..b971c900 100644 --- a/client/lib/src/const.ts +++ b/client/lib/src/const.ts @@ -14,6 +14,11 @@ export const VoiceChangerType = { } as const; export type VoiceChangerType = (typeof VoiceChangerType)[keyof typeof VoiceChangerType]; +export const StaticModel = { + BeatriceJVS: "Beatrice-JVS", +} as const; +export type StaticModel = (typeof StaticModel)[keyof typeof StaticModel]; + /////////////////////// // サーバセッティング /////////////////////// @@ -174,7 +179,7 @@ export type VoiceChangerServerSetting = { rvcQuality: number; // 0:low, 1:high silenceFront: number; // 0:off, 1:on modelSamplingRate: ModelSamplingRate; // 32000,40000,48000 - modelSlotIndex: number; + modelSlotIndex: number | StaticModel; useEnhancer: number; // DDSP-SVC useDiff: number; // DDSP-SVC @@ -194,7 +199,7 @@ export type VoiceChangerServerSetting = { }; type ModelSlot = { - slotIndex: number; + slotIndex: number | StaticModel; voiceChangerType: VoiceChangerType; name: string; description: string; diff --git a/server/const.py b/server/const.py index abc7b925..d5a3d2b4 100644 --- a/server/const.py +++ b/server/const.py @@ -107,8 +107,6 @@ def getSampleJsonAndModelIds(mode: RVCSampleMode): ("Amitaro_o", {"useIndex": False}), ("KikotoMahiro_o", {"useIndex": False}), ("TokinaShigure_o", {"useIndex": False}), - ("Amitaro_16k_o", {"useIndex": False}), - ("Amitaro_16k_nof0_o", {"useIndex": False}), ] elif mode == "testAll": return [ diff --git a/server/data/ModelSlot.py b/server/data/ModelSlot.py index 37196859..2eaca0fb 100644 --- a/server/data/ModelSlot.py +++ b/server/data/ModelSlot.py @@ -142,7 +142,7 @@ def loadSlotInfo(model_dir: str, slotIndex: int | StaticSlot) -> ModelSlots: jsonFile = os.path.join(slotDir, "params.json") if not os.path.exists(jsonFile): return ModelSlot() - jsonDict = json.load(open(os.path.join(slotDir, "params.json"))) + jsonDict = json.load(open(jsonFile, encoding="utf-8")) slotInfoKey = list(ModelSlot.__annotations__.keys()) slotInfo = ModelSlot(**{k: v for k, v in jsonDict.items() if k in slotInfoKey}) if slotInfo.voiceChangerType == "RVC":