add DiffSinger Community Vocoders link

This commit is contained in:
w-okada 2023-07-17 09:10:31 +09:00
parent 022fda0aa6
commit e6a3ae241d
6 changed files with 182 additions and 63 deletions

7
LICENSE-NOTICE Normal file
View File

@ -0,0 +1,7 @@
1. Diffusion SVC, DDSP SVC は vocodeer は DiffSinger Community Vocoders を使用しています。次のリンクからライセンスをご確認ください。
別のモデルを使用する場合は pretrain\\nsf_hifigan に設置してください。
https://openvpi.github.io/vocoders/
Diffusion SVC and DDSP SVC uses DiffSinger Community Vocoders. Please check the license from the following link.
Please place it on pretrain\\nsf_hifigan if you are using a different model.
https://openvpi.github.io/vocoders/

File diff suppressed because one or more lines are too long

View File

@ -22,6 +22,8 @@ export const OpenGetServerInformationDialogCheckbox = "open-get-server-informati
export const OpenGetClientInformationDialogCheckbox = "open-get-client-information-dialog-checkbox";
export const OpenTextInputDialogCheckbox = "open-text-input-dialog-checkbox";
export const OpenShowLicenseDialogCheckbox = "open-show-license-dialog-checkbox";
type Props = {
children: ReactNode;
};
@ -45,6 +47,7 @@ export type StateControls = {
showGetServerInformationCheckbox: StateControlCheckbox;
showGetClientInformationCheckbox: StateControlCheckbox;
showTextInputCheckbox: StateControlCheckbox;
showLicenseCheckbox: StateControlCheckbox;
};
type GuiStateAndMethod = {
@ -181,6 +184,7 @@ export const GuiStateProvider = ({ children }: Props) => {
const showGetClientInformationCheckbox = useStateControlCheckbox(OpenGetClientInformationDialogCheckbox);
const showTextInputCheckbox = useStateControlCheckbox(OpenTextInputDialogCheckbox);
const showLicenseCheckbox = useStateControlCheckbox(OpenShowLicenseDialogCheckbox);
useEffect(() => {
openServerControlCheckbox.updateState(true);
@ -202,6 +206,7 @@ export const GuiStateProvider = ({ children }: Props) => {
showGetClientInformationCheckbox.updateState(false);
showTextInputCheckbox.updateState(false);
showLicenseCheckbox.updateState(false);
}, []);
useEffect(() => {
@ -241,6 +246,7 @@ export const GuiStateProvider = ({ children }: Props) => {
showGetClientInformationCheckbox,
showTextInputCheckbox,
showLicenseCheckbox,
},
isConverting,
setIsConverting,

View File

@ -4,95 +4,112 @@ import { isDesktopApp } from "../../const";
import { useAppRoot } from "../../001_provider/001_AppRootProvider";
import { useMessageBuilder } from "../../hooks/useMessageBuilder";
export const StartingNoticeDialog = () => {
const guiState = useGuiState()
const { appGuiSettingState } = useAppRoot()
const guiState = useGuiState();
const { appGuiSettingState } = useAppRoot();
const messageBuilderState = useMessageBuilder()
const messageBuilderState = useMessageBuilder();
useMemo(() => {
messageBuilderState.setMessage(__filename, "support", { "ja": "支援", "en": "Donation" })
messageBuilderState.setMessage(__filename, "support_message_1", { "ja": "このソフトウェアを気に入ったら開発者にコーヒーをご馳走してあげよう。黄色いアイコンから。", "en": "This software is supported by donations. Thank you for your support!" })
messageBuilderState.setMessage(__filename, "support_message_2", { "ja": "コーヒーをご馳走する。", "en": "I will support a developer by buying coffee." })
messageBuilderState.setMessage(__filename, "directml_1", { "ja": "directML版は実験的バージョンです。以下の既知の問題があります。", "en": "DirectML version is an experimental version. There are the known issues as follows." })
messageBuilderState.setMessage(__filename, "directml_2", { "ja": "(1) 一部の設定変更を行うとgpuを使用していても変換処理が遅くなることが発生します。もしこの現象が発生したらGPUの値を-1にしてから再度0に戻してください。", "en": "(1) When some settings are changed, conversion process becomes slow even when using GPU. If this occurs, reset the GPU value to -1 and then back to 0." })
messageBuilderState.setMessage(__filename, "click_to_start", { "ja": "スタートボタンを押してください。", "en": "Click to start" })
messageBuilderState.setMessage(__filename, "start", { "ja": "スタート", "en": "start" })
}, [])
messageBuilderState.setMessage(__filename, "support", { ja: "支援", en: "Donation" });
messageBuilderState.setMessage(__filename, "support_message_1", { ja: "このソフトウェアを気に入ったら開発者にコーヒーをご馳走してあげよう。黄色いアイコンから。", en: "This software is supported by donations. Thank you for your support!" });
messageBuilderState.setMessage(__filename, "support_message_2", { ja: "コーヒーをご馳走する。", en: "I will support a developer by buying coffee." });
messageBuilderState.setMessage(__filename, "directml_1", { ja: "directML版は実験的バージョンです。以下の既知の問題があります。", en: "DirectML version is an experimental version. There are the known issues as follows." });
messageBuilderState.setMessage(__filename, "directml_2", {
ja: "(1) 一部の設定変更を行うとgpuを使用していても変換処理が遅くなることが発生します。もしこの現象が発生したらGPUの値を-1にしてから再度0に戻してください。",
en: "(1) When some settings are changed, conversion process becomes slow even when using GPU. If this occurs, reset the GPU value to -1 and then back to 0.",
});
messageBuilderState.setMessage(__filename, "click_to_start", { ja: "スタートボタンを押してください。", en: "Click to start" });
messageBuilderState.setMessage(__filename, "start", { ja: "スタート", en: "start" });
}, []);
const coffeeLink = useMemo(() => {
return isDesktopApp() ?
(
// @ts-ignore
<span className="link" onClick={() => { window.electronAPI.openBrowser("https://www.buymeacoffee.com/wokad") }}>
<img className="donate-img" src="./assets/buymeacoffee.png" /> {messageBuilderState.getMessage(__filename, "support_message_2")}
</span>
)
:
(
<a className="link" href="https://www.buymeacoffee.com/wokad" target="_blank" rel="noopener noreferrer">
<img className="donate-img" src="./assets/buymeacoffee.png" /> {messageBuilderState.getMessage(__filename, "support_message_2")}
</a>
)
}, [])
return isDesktopApp() ? (
// @ts-ignore
<span
className="link"
onClick={() => {
// @ts-ignore
window.electronAPI.openBrowser("https://www.buymeacoffee.com/wokad");
}}
>
<img className="donate-img" src="./assets/buymeacoffee.png" /> {messageBuilderState.getMessage(__filename, "support_message_2")}
</span>
) : (
<a className="link" href="https://www.buymeacoffee.com/wokad" target="_blank" rel="noopener noreferrer">
<img className="donate-img" src="./assets/buymeacoffee.png" /> {messageBuilderState.getMessage(__filename, "support_message_2")}
</a>
);
}, []);
const licenseNoticeLink = useMemo(() => {
return isDesktopApp() ? (
// @ts-ignore
<span
className="link"
onClick={() => {
// @ts-ignore
window.electronAPI.openBrowser("https://github.com/w-okada/voice-changer/blob/master/LICENSE-NOTICE");
}}
>
License Notice
</span>
) : (
<a className="link" href="https://github.com/w-okada/voice-changer/blob/master/LICENSE-NOTICE" target="_blank" rel="noopener noreferrer">
License Notice
</a>
);
}, []);
const dialog = useMemo(() => {
const closeButtonRow = (
<div className="body-row split-3-4-3 left-padding-1">
<div className="body-item-text">
</div>
<div className="body-item-text"></div>
<div className="body-button-container body-button-container-space-around">
<div className="body-button" onClick={() => { guiState.stateControls.showStartingNoticeCheckbox.updateState(false) }} >
<div
className="body-button"
onClick={() => {
guiState.stateControls.showStartingNoticeCheckbox.updateState(false);
}}
>
{messageBuilderState.getMessage(__filename, "start")}
</div>
</div>
<div className="body-item-text"></div>
</div>
)
);
const donationMessage = (
<div className="dialog-content-part">
<div>
{messageBuilderState.getMessage(__filename, "support_message_1")}
</div>
<div>
{coffeeLink}
</div>
<div>{messageBuilderState.getMessage(__filename, "support_message_1")}</div>
<div>{coffeeLink}</div>
</div>
)
);
const directMLMessage = (
<div className="dialog-content-part">
<div>
{messageBuilderState.getMessage(__filename, "directml_1")}
</div>
<div className="left-padding-1">
{messageBuilderState.getMessage(__filename, "directml_2")}
</div>
<div>{messageBuilderState.getMessage(__filename, "directml_1")}</div>
<div className="left-padding-1">{messageBuilderState.getMessage(__filename, "directml_2")}</div>
</div>
)
);
const licenseInfo = <div className="dialog-content-part">{licenseNoticeLink}</div>;
const clickToStartMessage = (
<div className="dialog-content-part">
<div>
{messageBuilderState.getMessage(__filename, "click_to_start")}
</div>
<div>{messageBuilderState.getMessage(__filename, "click_to_start")}</div>
</div>
)
const edition = appGuiSettingState.edition
);
const edition = appGuiSettingState.edition;
const content = (
<div className="body-row">
{donationMessage}
{edition.indexOf("onnxdirectML-cuda") >= 0 ? directMLMessage : <></>}
{licenseInfo}
{clickToStartMessage}
</div>
)
);
return (
<div className="dialog-frame">
@ -105,5 +122,4 @@ export const StartingNoticeDialog = () => {
);
}, [appGuiSettingState.edition]);
return dialog;
};

View File

@ -1,19 +1,22 @@
import React from "react";
import { useGuiState } from "./001_GuiStateProvider";
import { TextInputDialog } from "./911_TextInputDialog";
import { ShowLicenseDialog } from "./912_ShowLicenseDialog";
export const Dialogs2 = () => {
const guiState = useGuiState()
const guiState = useGuiState();
const dialogs = (
<div>
{guiState.stateControls.showTextInputCheckbox.trigger}
{guiState.stateControls.showLicenseCheckbox.trigger}
<div className="dialog-container2" id="dialog2">
{guiState.stateControls.showTextInputCheckbox.trigger}
<TextInputDialog></TextInputDialog>
{guiState.stateControls.showLicenseCheckbox.trigger}
<ShowLicenseDialog />
</div>
</div>
);
return dialogs
}
return dialogs;
};

View File

@ -0,0 +1,76 @@
////// Currently not used /////////
import React, { useMemo } from "react";
import { useGuiState } from "./001_GuiStateProvider";
import { isDesktopApp } from "../../const";
import { useMessageBuilder } from "../../hooks/useMessageBuilder";
export const ShowLicenseDialog = () => {
const guiState = useGuiState();
const messageBuilderState = useMessageBuilder();
useMemo(() => {
messageBuilderState.setMessage(__filename, "nsf_hifigan1", {
ja: "Diffusion SVC, DDSP SVCはvocodeerはDiffSinger Community Vocodersを使用しています。次のリンクからライセンスをご確認ください。",
en: "Diffusion SVC and DDSP SVC uses DiffSinger Community Vocoders. Please check the license from the following link.",
});
messageBuilderState.setMessage(__filename, "nsf_hifigan2", { ja: "別のモデルを使用する場合はpretrain\\nsf_hifiganに設置してください。", en: "Please place it on pretrain\\nsf_hifigan if you are using a different model." });
}, []);
const hifiGanLink = useMemo(() => {
return isDesktopApp() ? (
// @ts-ignore
<span
className="link"
onClick={() => {
// @ts-ignore
window.electronAPI.openBrowser("https://openvpi.github.io/vocoders/");
}}
>
license
</span>
) : (
<a className="link" href="https://openvpi.github.io/vocoders/" target="_blank" rel="noopener noreferrer">
license
</a>
);
}, []);
const dialog = useMemo(() => {
const hifiganMessage = (
<div className="dialog-content-part">
<div>{messageBuilderState.getMessage(__filename, "nsf_hifigan1")}</div>
<div>{messageBuilderState.getMessage(__filename, "nsf_hifigan2")}</div>
<div>{hifiGanLink}</div>
</div>
);
const buttonsRow = (
<div className="body-row split-3-4-3 left-padding-1">
<div className="body-item-text"></div>
<div className="body-button-container body-button-container-space-around">
<div
className="body-button"
onClick={() => {
guiState.stateControls.showLicenseCheckbox.updateState(false);
}}
>
close
</div>
</div>
<div className="body-item-text"></div>
</div>
);
return (
<div className="dialog-frame">
<div className="dialog-title">Input Dialog</div>
<div className="dialog-content">
<div className="body-row">{hifiganMessage}</div>
{buttonsRow}
</div>
</div>
);
}, [guiState.textInputResolve]);
return dialog;
};