mirror of
https://github.com/w-okada/voice-changer.git
synced 2025-02-02 16:23:58 +03:00
WIP: DDSP
This commit is contained in:
parent
0723913a3b
commit
1d91356268
@ -118,25 +118,26 @@
|
||||
],
|
||||
"speakerSetting": [
|
||||
{
|
||||
"name": "dstId2",
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"selectableIds": [1, 2]
|
||||
"dstIdDisplayType": "ddspsvc",
|
||||
"staticIds": [1]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tune",
|
||||
"options": {}
|
||||
},
|
||||
{
|
||||
"name": "indexRatio",
|
||||
"options": {}
|
||||
},
|
||||
{
|
||||
"name": "silentThreshold",
|
||||
"options": {}
|
||||
},
|
||||
{
|
||||
"name": "enableEnhancer",
|
||||
"name": "diffEnablerRow",
|
||||
"options": {}
|
||||
},
|
||||
{
|
||||
"name": "diffSettingRow",
|
||||
"options": {}
|
||||
}
|
||||
],
|
||||
|
@ -105,7 +105,8 @@
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"showF0": false,
|
||||
"useServerInfo": false
|
||||
"useServerInfo": false,
|
||||
"dstIdDisplayType": "MMVCv13"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -113,7 +113,8 @@
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"showF0": true,
|
||||
"useServerInfo": false
|
||||
"useServerInfo": false,
|
||||
"dstIdDisplayType": "MMVCv15"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -133,8 +133,8 @@
|
||||
{
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"showF0": true,
|
||||
"useServerInfo": false
|
||||
"dstIdDisplayType": "ddspsvc",
|
||||
"staticIds": [1]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -103,7 +103,8 @@
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"showF0": false,
|
||||
"useServerInfo": true
|
||||
"useServerInfo": true,
|
||||
"dstIdDisplayType": "sovitsvc40"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -103,7 +103,8 @@
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"showF0": false,
|
||||
"useServerInfo": true
|
||||
"useServerInfo": true,
|
||||
"dstIdDisplayType": "sovitsvc40v2"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
35
client/demo/dist/index.js
vendored
35
client/demo/dist/index.js
vendored
File diff suppressed because one or more lines are too long
@ -118,25 +118,26 @@
|
||||
],
|
||||
"speakerSetting": [
|
||||
{
|
||||
"name": "dstId2",
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"selectableIds": [1, 2]
|
||||
"dstIdDisplayType": "ddspsvc",
|
||||
"staticIds": [1]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tune",
|
||||
"options": {}
|
||||
},
|
||||
{
|
||||
"name": "indexRatio",
|
||||
"options": {}
|
||||
},
|
||||
{
|
||||
"name": "silentThreshold",
|
||||
"options": {}
|
||||
},
|
||||
{
|
||||
"name": "enableEnhancer",
|
||||
"name": "diffEnablerRow",
|
||||
"options": {}
|
||||
},
|
||||
{
|
||||
"name": "diffSettingRow",
|
||||
"options": {}
|
||||
}
|
||||
],
|
||||
|
@ -105,7 +105,8 @@
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"showF0": false,
|
||||
"useServerInfo": false
|
||||
"useServerInfo": false,
|
||||
"dstIdDisplayType": "MMVCv13"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -113,7 +113,8 @@
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"showF0": true,
|
||||
"useServerInfo": false
|
||||
"useServerInfo": false,
|
||||
"dstIdDisplayType": "MMVCv15"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -133,8 +133,8 @@
|
||||
{
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"showF0": true,
|
||||
"useServerInfo": false
|
||||
"dstIdDisplayType": "ddspsvc",
|
||||
"staticIds": [1]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -103,7 +103,8 @@
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"showF0": false,
|
||||
"useServerInfo": true
|
||||
"useServerInfo": true,
|
||||
"dstIdDisplayType": "sovitsvc40"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -103,7 +103,8 @@
|
||||
"name": "dstId",
|
||||
"options": {
|
||||
"showF0": false,
|
||||
"useServerInfo": true
|
||||
"useServerInfo": true,
|
||||
"dstIdDisplayType": "sovitsvc40v2"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -35,11 +35,8 @@ import { TrancateNumTresholdRow, TrancateNumTresholdRowProps } from "./component
|
||||
import { IndexRatioRow, IndexRatioRowProps } from "./components/609_IndexRatioRow"
|
||||
import { RVCQualityRow, RVCQualityRowProps } from "./components/810_RVCQualityRow"
|
||||
import { ModelSamplingRateRow, ModelSamplingRateRowProps } from "./components/303_ModelSamplingRateRow"
|
||||
// import { OnnxExportRow, OnnxExportRowProps } from "./components/304_OnnxExportRow"
|
||||
import { EnableEnhancerRow, EnableEnhancerRowProps } from "./components/610_EnableEnhancerRow"
|
||||
import { DstIdRow2, DstIdRow2Props } from "./components/602v2_DstIdRow2"
|
||||
import { SilenceFrontRow, SilenceFrontRowProps } from "./components/812_SilenceFrontRow"
|
||||
// import { ModelSwitchRow, ModelSwitchRowProps } from "./components/204_ModelSwitchRow"
|
||||
import { ONNXExportRow, ONNXExportRowProps } from "./components/205_ONNXExportRow"
|
||||
import { ONNXExecutorRow, ONNXExecutorRowProps } from "./components/206_ONNXExecutorRow"
|
||||
import { MergeLabRow, MergeLabRowProps } from "./components/a01_MergeLab.Row"
|
||||
@ -53,6 +50,8 @@ import { ModelUploaderRowv2, ModelUploaderRowv2Props } from "./components/301_Mo
|
||||
import { CorrespondenceSelectRow2, CorrespondenceSelectRow2Props } from "./components/301-g_CorrespondenceSelectRow2"
|
||||
import { ModelSlotRow2, ModelSlotRow2Props } from "./components/301-h_ModelSlotRowv2"
|
||||
import { DefaultTuneRow2, DefaultTuneRow2Props } from "./components/301-i_DefaultTuneRowv2"
|
||||
import { DiffEnablerRow, DiffEnablerRowProps } from "./components/611_DiffEnablerRow"
|
||||
import { DiffSettingRow, DiffSettingRowProps } from "./components/612_DiffSettingRow"
|
||||
|
||||
export const catalog: { [key: string]: (props: any) => JSX.Element } = {}
|
||||
|
||||
@ -115,7 +114,8 @@ const initialize = () => {
|
||||
addToCatalog("noiseScale", (props: NoiseScaleRowProps) => { return <NoiseScaleRow {...props} /> })
|
||||
addToCatalog("silentThreshold", (props: SilentThresholdRowProps) => { return <SilentThresholdRow {...props} /> })
|
||||
addToCatalog("indexRatio", (props: IndexRatioRowProps) => { return <IndexRatioRow {...props} /> })
|
||||
addToCatalog("enableEnhancer", (props: EnableEnhancerRowProps) => { return <EnableEnhancerRow {...props} /> })
|
||||
addToCatalog("diffEnablerRow", (props: DiffEnablerRowProps) => { return <DiffEnablerRow {...props} /> })
|
||||
addToCatalog("diffSettingRow", (props: DiffSettingRowProps) => { return <DiffSettingRow {...props} /> })
|
||||
|
||||
|
||||
|
||||
|
@ -9,6 +9,14 @@ export const PerformanceRow = (_props: PerformanceRowProps) => {
|
||||
const [showPerformanceDetail, setShowPerformanceDetail] = useState<boolean>(false)
|
||||
|
||||
const performanceRow = useMemo(() => {
|
||||
if (appState.serverSetting.serverSetting.enableServerAudio) {
|
||||
return (
|
||||
<div className="body-row split-3-7 left-padding-1 guided">
|
||||
<div className="body-item-title left-padding-1">monitor:</div>
|
||||
<div className="body-item-text">server device mode. refer console.</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
const performanceDetailLabel = showPerformanceDetail ? "[pre, main, post] <<" : "more >>"
|
||||
const performanceData = showPerformanceDetail ? `[${appState.performance.preprocessTime}, ${appState.performance.mainprocessTime},${appState.performance.postprocessTime}]` : ""
|
||||
return (
|
||||
|
@ -9,7 +9,7 @@ export const AnalyzerRow = (_props: AnalyzerRowProps) => {
|
||||
const analyzerRow = useMemo(() => {
|
||||
return (
|
||||
<div className="body-row split-3-7 left-padding-1 guided">
|
||||
<div className="body-item-title left-padding-1 ">Analyzer(Experimental)</div>
|
||||
<div className="body-item-title left-padding-1 ">Analyzer</div>
|
||||
<div className="body-button-container">
|
||||
</div>
|
||||
</div>
|
||||
|
@ -5,20 +5,27 @@ import { ServerInfoSoVitsSVC } from "@dannadori/voice-changer-client-js";
|
||||
export type DstIdRowProps = {
|
||||
showF0: boolean
|
||||
useServerInfo: boolean
|
||||
dstIdDisplayType: DstIdDisplayType
|
||||
staticIds: number[]
|
||||
}
|
||||
|
||||
export const DstIdDisplayType = {
|
||||
"MMVCv13": "MMVCv13",
|
||||
"MMVCv15": "MMVCv15",
|
||||
"sovitsvc40": "sovitsvc40",
|
||||
"sovitsvc40v2": "sovitsvc40v2",
|
||||
"rvc": "rvc",
|
||||
"ddspsvc": "ddspsvc",
|
||||
} as const
|
||||
export type DstIdDisplayType = typeof DstIdDisplayType[keyof typeof DstIdDisplayType]
|
||||
|
||||
export const DstIdRow = (props: DstIdRowProps) => {
|
||||
const appState = useAppState()
|
||||
|
||||
const dstIdRow = useMemo(() => {
|
||||
if (!props.showF0 && !props.useServerInfo) {
|
||||
// mmvc v.1.3ではない
|
||||
// noop
|
||||
} else {
|
||||
// mmvc v.1.3ではない
|
||||
if (props.dstIdDisplayType != "MMVCv13") {
|
||||
return <></>
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="body-row split-3-2-1-4 left-padding-1 guided">
|
||||
<div className="body-item-title left-padding-1">Destination Speaker Id</div>
|
||||
@ -42,11 +49,7 @@ export const DstIdRow = (props: DstIdRowProps) => {
|
||||
}, [appState.serverSetting.serverSetting, appState.clientSetting.clientSetting.speakers, appState.serverSetting.updateServerSettings])
|
||||
|
||||
const dstIdRowWithF0 = useMemo(() => {
|
||||
if (props.showF0) {
|
||||
// mmvc v.15
|
||||
// noop
|
||||
} else {
|
||||
// mmvc v.1.5ではない
|
||||
if (props.dstIdDisplayType != "MMVCv15") {
|
||||
return <></>
|
||||
}
|
||||
|
||||
@ -79,11 +82,7 @@ export const DstIdRow = (props: DstIdRowProps) => {
|
||||
}, [appState.serverSetting.serverSetting, appState.serverSetting.updateServerSettings, appState.clientSetting.clientSetting.correspondences])
|
||||
|
||||
const dstIdRowFromServer = useMemo(() => {
|
||||
if (props.useServerInfo) {
|
||||
// not mmvc v1.3 or v.15
|
||||
// noop
|
||||
} else {
|
||||
// mmvc v1.3 or v.15
|
||||
if (props.dstIdDisplayType != "sovitsvc40" && props.dstIdDisplayType != "sovitsvc40v2") {
|
||||
return <></>
|
||||
}
|
||||
|
||||
@ -118,11 +117,50 @@ export const DstIdRow = (props: DstIdRowProps) => {
|
||||
)
|
||||
}, [appState.serverSetting.serverSetting, appState.serverSetting.updateServerSettings, appState.clientSetting.clientSetting.correspondences])
|
||||
|
||||
const dstIdRowStatic = useMemo(() => {
|
||||
if (props.dstIdDisplayType != "rvc" && props.dstIdDisplayType != "ddspsvc") {
|
||||
return <></>
|
||||
}
|
||||
|
||||
// const settings = appState.serverSetting.serverSetting as ServerInfoSoVitsSVC
|
||||
// const speakers = settings.speakers
|
||||
// if (!speakers) {
|
||||
// return <></>
|
||||
// }
|
||||
|
||||
const currentValue = Object.values(props.staticIds).includes(appState.serverSetting.serverSetting.dstId) ? appState.serverSetting.serverSetting.dstId : -1
|
||||
|
||||
return (
|
||||
<div className="body-row split-3-2-1-4 left-padding-1 guided">
|
||||
<div className="body-item-title left-padding-1">Destination Speaker Id</div>
|
||||
<div className="body-select-container">
|
||||
<select className="body-select" value={currentValue} onChange={(e) => {
|
||||
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, dstId: Number(e.target.value) })
|
||||
|
||||
}}>
|
||||
<option key="unknown" value={0}>default(0)</option>
|
||||
{
|
||||
Object.keys(props.staticIds).map(x => {
|
||||
return <option key={x} value={x}>{x}</option>
|
||||
})
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
<div className="body-item-text">
|
||||
</div>
|
||||
<div className="body-item-text"></div>
|
||||
</div>
|
||||
)
|
||||
}, [appState.serverSetting.serverSetting, appState.serverSetting.updateServerSettings])
|
||||
|
||||
|
||||
|
||||
return (
|
||||
<>
|
||||
{dstIdRow}
|
||||
{dstIdRowWithF0}
|
||||
{dstIdRowFromServer}
|
||||
{dstIdRowStatic}
|
||||
</>
|
||||
)
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
import React, { useMemo } from "react"
|
||||
import { useAppState } from "../../../001_provider/001_AppStateProvider"
|
||||
|
||||
export type EnableEnhancerRowProps = {
|
||||
}
|
||||
|
||||
export const EnableEnhancerRow = (_props: EnableEnhancerRowProps) => {
|
||||
const appState = useAppState()
|
||||
|
||||
const clusterRatioRow = useMemo(() => {
|
||||
return (
|
||||
<>
|
||||
<div className="body-row split-3-7 left-padding-1 guided">
|
||||
<div className="body-item-title left-padding-1 ">Enhancer</div>
|
||||
<div className="body-input-container">
|
||||
<select value={appState.serverSetting.serverSetting.enableEnhancer} onChange={(e) => {
|
||||
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, enableEnhancer: Number(e.target.value) })
|
||||
}}>
|
||||
<option value="0" >disable</option>
|
||||
<option value="1" >enable</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{/* <div className="body-row split-3-3-4 left-padding-1 guided">
|
||||
<div className="body-item-title left-padding-1 ">Enhancer Tune</div>
|
||||
<div>
|
||||
<input type="range" className="body-item-input-slider" min="0" max="10" step="1" value={appState.serverSetting.serverSetting.enhancerTune || 0} onChange={(e) => {
|
||||
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, enhancerTune: Number(e.target.value) })
|
||||
}}></input>
|
||||
<span className="body-item-input-slider-val">{appState.serverSetting.serverSetting.enhancerTune}</span>
|
||||
</div>
|
||||
<div className="body-button-container">
|
||||
</div>
|
||||
</div> */}
|
||||
</>
|
||||
)
|
||||
}, [
|
||||
appState.serverSetting.serverSetting,
|
||||
appState.serverSetting.updateServerSettings
|
||||
])
|
||||
|
||||
return clusterRatioRow
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,46 @@
|
||||
import React, { useMemo } from "react"
|
||||
import { useAppState } from "../../../001_provider/001_AppStateProvider"
|
||||
|
||||
export type DiffEnablerRowProps = {
|
||||
}
|
||||
|
||||
export const DiffEnablerRow = (_props: DiffEnablerRowProps) => {
|
||||
const appState = useAppState()
|
||||
|
||||
const diffEnablerRow = useMemo(() => {
|
||||
|
||||
|
||||
return (
|
||||
<div className="body-row split-3-2-2-2-1 left-padding-1 guided">
|
||||
<div className="body-item-title left-padding-1 ">DDSP Setting</div>
|
||||
<div>
|
||||
<input type="checkbox" checked={appState.serverSetting.serverSetting.useEnhancer == 1} onChange={(e) => {
|
||||
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, useEnhancer: e.target.checked ? 1 : 0 })
|
||||
}} /> Enhancer
|
||||
</div>
|
||||
<div>
|
||||
<input type="checkbox" checked={appState.serverSetting.serverSetting.useDiff == 1} onChange={(e) => {
|
||||
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, useDiff: e.target.checked ? 1 : 0 })
|
||||
}} /> Diff
|
||||
</div>
|
||||
<div>
|
||||
<input type="checkbox" checked={appState.serverSetting.serverSetting.useDiffDpm == 1} onChange={(e) => {
|
||||
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, useDiffDpm: e.target.checked ? 1 : 0 })
|
||||
}} /> DiffDpm
|
||||
</div>
|
||||
<div>
|
||||
<input type="checkbox" checked={appState.serverSetting.serverSetting.useDiffSilence == 1} onChange={(e) => {
|
||||
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, useDiffSilence: e.target.checked ? 1 : 0 })
|
||||
}} /> Silence
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}, [
|
||||
appState.serverSetting.serverSetting,
|
||||
appState.serverSetting.updateServerSettings
|
||||
])
|
||||
|
||||
return diffEnablerRow
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,42 @@
|
||||
import React, { useMemo } from "react"
|
||||
import { useAppState } from "../../../001_provider/001_AppStateProvider"
|
||||
|
||||
export type DiffSettingRowProps = {
|
||||
}
|
||||
|
||||
export const DiffSettingRow = (_props: DiffSettingRowProps) => {
|
||||
const appState = useAppState()
|
||||
|
||||
const diffSettingRow = useMemo(() => {
|
||||
|
||||
|
||||
return (
|
||||
<div className="body-row split-3-2-2-3 left-padding-1 guided">
|
||||
<div className="body-item-title left-padding-1 ">Diff Setting</div>
|
||||
<div>
|
||||
<span className="body-item-input-slider-label">Acc</span>
|
||||
<input type="range" className="body-item-input-slider" min="1" max="20" step="1" value={appState.serverSetting.serverSetting.diffAcc} onChange={(e) => {
|
||||
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, diffAcc: Number(e.target.value) })
|
||||
}}></input>
|
||||
<span className="body-item-input-slider-val">{appState.serverSetting.serverSetting.diffAcc}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span className="body-item-input-slider-label">kstep</span>
|
||||
<input type="range" className="body-item-input-slider" min="21" max="300" step="1" value={appState.serverSetting.serverSetting.kStep} onChange={(e) => {
|
||||
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, kStep: Number(e.target.value) })
|
||||
}}></input>
|
||||
<span className="body-item-input-slider-val">{appState.serverSetting.serverSetting.kStep}</span>
|
||||
</div>
|
||||
<div className="body-button-container">
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}, [
|
||||
appState.serverSetting.serverSetting,
|
||||
appState.serverSetting.updateServerSettings
|
||||
])
|
||||
|
||||
return diffSettingRow
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ export const InputChunkNumRow = (props: InputChunkNumRowProps) => {
|
||||
nums = props.nums
|
||||
}
|
||||
return (
|
||||
<div className="body-row split-3-2-1-4 left-padding-1 guided">
|
||||
<div className="body-row split-3-2-2-3 left-padding-1 guided">
|
||||
<div className="body-item-title left-padding-1">Input Chunk Num(128sample/chunk)</div>
|
||||
<div className="body-input-container">
|
||||
<select className="body-select" value={appState.workletNodeSetting.workletNodeSetting.inputChunkNum} onChange={(e) => {
|
||||
@ -33,7 +33,9 @@ export const InputChunkNumRow = (props: InputChunkNumRowProps) => {
|
||||
<div className="body-item-text">
|
||||
<div>buff: {(appState.workletNodeSetting.workletNodeSetting.inputChunkNum * 128 * 1000 / 48000).toFixed(1)}ms</div>
|
||||
</div>
|
||||
<div className="body-item-text"></div>
|
||||
<div className="body-item-text">
|
||||
<div>sample: {(appState.workletNodeSetting.workletNodeSetting.inputChunkNum * 128)}</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
)
|
||||
|
@ -151,7 +151,20 @@ body {
|
||||
width: 40%;
|
||||
}
|
||||
}
|
||||
|
||||
.split-5-5 {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
margin: 1px 0px 1px 0px;
|
||||
& > div:nth-child(1) {
|
||||
left: 0px;
|
||||
width: 50%;
|
||||
}
|
||||
& > div:nth-child(2) {
|
||||
left: 50%;
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
.split-4-6 {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
|
@ -105,11 +105,16 @@ export const ServerSettingKey = {
|
||||
"silenceFront": "silenceFront",
|
||||
"modelSlotIndex": "modelSlotIndex",
|
||||
|
||||
"enableEnhancer": "enableEnhancer",
|
||||
"enhancerTune": "enhancerTune",
|
||||
"useEnhancer": "useEnhancer",
|
||||
"useDiff": "useDiff",
|
||||
"useDiffDpm": "useDiffDpm",
|
||||
"useDiffSilence": "useDiffSilence",
|
||||
"diffAcc": "diffAcc",
|
||||
"diffSpkId": "diffSpkId",
|
||||
"kStep": "kStep",
|
||||
"threshold": "threshold",
|
||||
|
||||
"inputSampleRate": "inputSampleRate",
|
||||
|
||||
"enableDirectML": "enableDirectML",
|
||||
} as const
|
||||
export type ServerSettingKey = typeof ServerSettingKey[keyof typeof ServerSettingKey]
|
||||
@ -155,8 +160,14 @@ export type VoiceChangerServerSetting = {
|
||||
modelSamplingRate: ModelSamplingRate // 32000,40000,48000
|
||||
modelSlotIndex: number,
|
||||
|
||||
enableEnhancer: number // DDSP-SVC
|
||||
enhancerTune: number // DDSP-SVC
|
||||
useEnhancer: number// DDSP-SVC
|
||||
useDiff: number// DDSP-SVC
|
||||
useDiffDpm: number// DDSP-SVC
|
||||
useDiffSilence: number// DDSP-SVC
|
||||
diffAcc: number// DDSP-SVC
|
||||
diffSpkId: number// DDSP-SVC
|
||||
kStep: number// DDSP-SVC
|
||||
threshold: number// DDSP-SVC
|
||||
|
||||
inputSampleRate: InputSampleRate
|
||||
enableDirectML: number
|
||||
@ -243,8 +254,14 @@ export const DefaultServerSetting: ServerInfo = {
|
||||
silenceFront: 1,
|
||||
modelSlotIndex: 0,
|
||||
|
||||
enableEnhancer: 0,
|
||||
enhancerTune: 0,
|
||||
useEnhancer: 0,
|
||||
useDiff: 1,
|
||||
useDiffDpm: 0,
|
||||
useDiffSilence: 0,
|
||||
diffAcc: 20,
|
||||
diffSpkId: 1,
|
||||
kStep: 120,
|
||||
threshold: -45,
|
||||
|
||||
enableDirectML: 0,
|
||||
//
|
||||
@ -276,7 +293,7 @@ export const DefaultServerSetting_so_vits_svc_40v2: ServerInfo = {
|
||||
}
|
||||
|
||||
export const DefaultServerSetting_DDSP_SVC: ServerInfo = {
|
||||
...DefaultServerSetting, dstId: 1, tran: 10, extraConvertSize: 1024 * 32, clusterInferRatio: 0.1, enableEnhancer: 1
|
||||
...DefaultServerSetting, dstId: 1, tran: 10, extraConvertSize: 1024 * 32
|
||||
}
|
||||
|
||||
|
||||
|
@ -177,12 +177,12 @@ class DDSP_SVC:
|
||||
_audio, _model_sr = self.svc_model.infer(
|
||||
input_wav,
|
||||
self.svc_model.args.data.sampling_rate,
|
||||
spk_id=1,
|
||||
threhold=-45,
|
||||
spk_id=self.settings.dstId,
|
||||
threhold=self.settings.threshold,
|
||||
pitch_adjust=self.settings.tran,
|
||||
use_spk_mix=False,
|
||||
spk_mix_dict=None,
|
||||
use_enhancer=False,
|
||||
use_enhancer=True if self.settings.useEnhancer == 1 else False,
|
||||
pitch_extractor_type=self.settings.f0Detector,
|
||||
f0_min=50,
|
||||
f0_max=1100,
|
||||
@ -190,12 +190,14 @@ class DDSP_SVC:
|
||||
safe_prefix_pad_length=self.settings.extraConvertSize
|
||||
/ self.svc_model.args.data.sampling_rate,
|
||||
diff_model=self.diff_model,
|
||||
diff_acc=20, # TBD なにこれ?
|
||||
diff_spk_id=1,
|
||||
diff_use=True,
|
||||
diff_use_dpm=False, # TBD なにこれ?
|
||||
k_step=120, # TBD なにこれ?
|
||||
diff_silence=False, # TBD なにこれ?
|
||||
diff_acc=self.settings.diffAcc, # TBD なにこれ?
|
||||
diff_spk_id=self.settings.diffSpkId,
|
||||
diff_use=True if self.settings.useDiff == 1 else False,
|
||||
diff_use_dpm=True if self.settings.useDiffDpm == 1 else False, # TBD なにこれ?
|
||||
k_step=self.settings.kStep, # TBD なにこれ?
|
||||
diff_silence=True
|
||||
if self.settings.useDiffSilence == 1
|
||||
else False, # TBD なにこれ?
|
||||
)
|
||||
|
||||
return _audio.cpu().numpy() * 32768.0
|
||||
|
@ -13,8 +13,14 @@ class DDSP_SVCSettings:
|
||||
silentThreshold: float = 0.00001
|
||||
extraConvertSize: int = 1024 * 32
|
||||
|
||||
enableEnhancer: int = 0
|
||||
enhancerTune: int = 0
|
||||
useEnhancer: int = 0
|
||||
useDiff: int = 1
|
||||
useDiffDpm: int = 0
|
||||
useDiffSilence: int = 0
|
||||
diffAcc: int = 20
|
||||
diffSpkId: int = 1
|
||||
kStep: int = 120
|
||||
threshold: int = -45
|
||||
|
||||
framework: str = "PyTorch" # PyTorch or ONNX
|
||||
pyTorchModelFile: str = ""
|
||||
@ -30,8 +36,13 @@ class DDSP_SVCSettings:
|
||||
"dstId",
|
||||
"tran",
|
||||
"extraConvertSize",
|
||||
"enableEnhancer",
|
||||
"enhancerTune",
|
||||
"useEnhancer",
|
||||
"useDiff",
|
||||
"useDiffDpm",
|
||||
"useDiffSilence",
|
||||
"diffAcc",
|
||||
"diffSpkId",
|
||||
"kStep",
|
||||
]
|
||||
floatData = ["silentThreshold"]
|
||||
strData = ["framework", "f0Detector"]
|
||||
|
@ -125,6 +125,7 @@ def serverLocal(_vc):
|
||||
|
||||
audio_input_stream = None
|
||||
audio_output_stream = None
|
||||
showPerformanceTime = 0
|
||||
while True:
|
||||
if (
|
||||
vc.settings.enableServerAudio == 0
|
||||
@ -165,19 +166,23 @@ def serverLocal(_vc):
|
||||
currentOutputSampleRate,
|
||||
currentOutputBufferSize,
|
||||
)
|
||||
|
||||
in_wav = audio_input_stream.read(
|
||||
vc.settings.serverReadChunkSize * 128, exception_on_overflow=False
|
||||
sampleNum = vc.settings.serverReadChunkSize * 128
|
||||
in_wav = audio_input_stream.read(sampleNum, exception_on_overflow=False)
|
||||
readNum = len(in_wav) // struct.calcsize("<h")
|
||||
unpackedData = np.array(struct.unpack("<%sh" % readNum, in_wav)).astype(
|
||||
np.int16
|
||||
)
|
||||
unpackedData = np.array(
|
||||
struct.unpack("<%sh" % (len(in_wav) // struct.calcsize("<h")), in_wav)
|
||||
).astype(np.int16)
|
||||
with Timer("all_inference_time") as t:
|
||||
out_wav, times = vc.on_request(unpackedData)
|
||||
all_inference_time = t.secs
|
||||
performance = [all_inference_time] + times
|
||||
performance = [round(x, 2) * 1000 for x in performance]
|
||||
performance = [round(x * 1000) for x in performance]
|
||||
vc.settings.performance = performance
|
||||
currentTime = time.time()
|
||||
if currentTime - showPerformanceTime > 5:
|
||||
print(sampleNum, readNum, performance)
|
||||
showPerformanceTime = currentTime
|
||||
|
||||
audio_output_stream.write(out_wav.tobytes())
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user