diff --git a/client/demo/src/101_server_setting.tsx b/client/demo/src/101_server_setting.tsx
index 47fec51b..6e739580 100644
--- a/client/demo/src/101_server_setting.tsx
+++ b/client/demo/src/101_server_setting.tsx
@@ -1,4 +1,4 @@
-import { OnnxExecutionProvider, Protocol, Framework, fileSelector } from "@dannadori/voice-changer-client-js"
+import { OnnxExecutionProvider, Framework, fileSelector } from "@dannadori/voice-changer-client-js"
import React from "react"
import { useMemo } from "react"
import { ClientState } from "./hooks/useClient"
diff --git a/client/demo/src/104_convert_setting.tsx b/client/demo/src/104_convert_setting.tsx
index 4cbb35fd..200ffe57 100644
--- a/client/demo/src/104_convert_setting.tsx
+++ b/client/demo/src/104_convert_setting.tsx
@@ -1,5 +1,4 @@
-import { BufferSize } from "@dannadori/voice-changer-client-js"
-import React, { useMemo, useState } from "react"
+import React, { useMemo } from "react"
import { ClientState } from "./hooks/useClient"
export type UseConvertSettingProps = {
diff --git a/client/demo/src/105_advanced_setting.tsx b/client/demo/src/105_advanced_setting.tsx
index be13fd5f..28bd70c7 100644
--- a/client/demo/src/105_advanced_setting.tsx
+++ b/client/demo/src/105_advanced_setting.tsx
@@ -108,6 +108,20 @@ export const useAdvancedSetting = (props: UseAdvancedSettingProps): AdvancedSett
)
}, [props.clientState.serverSetting.setting.convertChunkNum, props.clientState.serverSetting.setConvertChunkNum])
+ const minConvertSizeRow = useMemo(() => {
+ return (
+
+
+
Min Convert Size(byte)
+
+ {
+ props.clientState.serverSetting.setMinConvertSize(Number(e.target.value))
+ }} />
+
+
+ )
+ }, [props.clientState.serverSetting.setting.minConvertSize, props.clientState.serverSetting.setMinConvertSize])
+
const crossFadeOverlapRateRow = useMemo(() => {
return (
@@ -240,6 +254,7 @@ export const useAdvancedSetting = (props: UseAdvancedSettingProps): AdvancedSett
{convertChunkNumRow}
+ {minConvertSizeRow}
{crossFadeOverlapRateRow}
{crossFadeOffsetRateRow}
{crossFadeEndRateRow}
@@ -251,7 +266,7 @@ export const useAdvancedSetting = (props: UseAdvancedSettingProps): AdvancedSett
>
)
- }, [showAdvancedSetting, mmvcServerUrlRow, protocolRow, sampleRateRow, bufferSizeRow, convertChunkNumRow, crossFadeOverlapRateRow, crossFadeOffsetRateRow, crossFadeEndRateRow, vfForceDisableRow, voiceChangeModeRow, workletSettingRow])
+ }, [showAdvancedSetting, mmvcServerUrlRow, protocolRow, sampleRateRow, bufferSizeRow, convertChunkNumRow, minConvertSizeRow, crossFadeOverlapRateRow, crossFadeOffsetRateRow, crossFadeEndRateRow, vfForceDisableRow, voiceChangeModeRow, workletSettingRow])
const advancedSetting = useMemo(() => {
diff --git a/client/demo/src/hooks/useServerSetting.ts b/client/demo/src/hooks/useServerSetting.ts
index f1ffac7a..59c98ff9 100644
--- a/client/demo/src/hooks/useServerSetting.ts
+++ b/client/demo/src/hooks/useServerSetting.ts
@@ -25,6 +25,7 @@ export type ServerSettingState = {
setSrcId: (num: number) => Promise
;
setDstId: (num: number) => Promise;
setConvertChunkNum: (num: number) => Promise;
+ setMinConvertSize: (num: number) => Promise
setGpu: (num: number) => Promise;
setCrossFadeOffsetRate: (num: number) => Promise;
setCrossFadeEndRate: (num: number) => Promise;
@@ -56,6 +57,7 @@ export const useServerSetting = (props: UseServerSettingProps): ServerSettingSta
_setSetting({
...settingRef.current,
convertChunkNum: res.convertChunkNum,
+ minConvertSize: res.minConvertSize,
srcId: res.srcId,
dstId: res.dstId,
gpu: res.gpu,
@@ -103,6 +105,13 @@ export const useServerSetting = (props: UseServerSettingProps): ServerSettingSta
}
}, [props.voiceChangerClient])
+ const setMinConvertSize = useMemo(() => {
+ return async (num: number) => {
+ return await _set_and_store(ServerSettingKey.minConvertSize, "" + num)
+ }
+ }, [props.voiceChangerClient])
+
+
const setGpu = useMemo(() => {
return async (num: number) => {
return await _set_and_store(ServerSettingKey.gpu, "" + num)
@@ -125,6 +134,8 @@ export const useServerSetting = (props: UseServerSettingProps): ServerSettingSta
}
}, [props.voiceChangerClient])
+
+
//////////////
// 操作
/////////////
@@ -218,6 +229,7 @@ export const useServerSetting = (props: UseServerSettingProps): ServerSettingSta
setSrcId,
setDstId,
setConvertChunkNum,
+ setMinConvertSize,
setGpu,
setCrossFadeOffsetRate,
setCrossFadeEndRate,
diff --git a/client/lib/src/const.ts b/client/lib/src/const.ts
index b20138fe..becbc567 100644
--- a/client/lib/src/const.ts
+++ b/client/lib/src/const.ts
@@ -7,6 +7,8 @@
// types
export type VoiceChangerServerSetting = {
convertChunkNum: number, // VITSに入力する変換サイズ。(入力データの2倍以上の大きさで指定。それより小さいものが指定された場合は、サーバ側で自動的に入力の2倍のサイズが設定される。)
+ minConvertSize: number, // この値より小さい場合にこの値に揃える。
+
srcId: number,
dstId: number,
gpu: number,
@@ -50,6 +52,7 @@ export type ServerInfo = {
pyTorchModelFile: string,
onnxModelFile: string,
convertChunkNum: number,
+ minConvertSize: number,
crossFadeOffsetRate: number,
crossFadeEndRate: number,
crossFadeOverlapRate: number,
@@ -111,6 +114,7 @@ export const ServerSettingKey = {
"srcId": "srcId",
"dstId": "dstId",
"convertChunkNum": "convertChunkNum",
+ "minConvertSize": "minConvertSize",
"gpu": "gpu",
"crossFadeOffsetRate": "crossFadeOffsetRate",
"crossFadeEndRate": "crossFadeEndRate",
@@ -123,6 +127,7 @@ export type ServerSettingKey = typeof ServerSettingKey[keyof typeof ServerSettin
// Defaults
export const DefaultVoiceChangerServerSetting: VoiceChangerServerSetting = {
convertChunkNum: 32, //(★1)
+ minConvertSize: 0,
srcId: 107,
dstId: 100,
gpu: 0,
diff --git a/server/voice_changer/VoiceChanger.py b/server/voice_changer/VoiceChanger.py
index aef7e56e..4c630423 100755
--- a/server/voice_changer/VoiceChanger.py
+++ b/server/voice_changer/VoiceChanger.py
@@ -26,12 +26,13 @@ class VocieChangerSettings():
crossFadeEndRate:float = 0.9
crossFadeOverlapRate:float = 0.9
convertChunkNum:int = 32
+ minConvertSize:int = 0
framework:str = "PyTorch" # PyTorch or ONNX
pyTorchModelFile:str = ""
onnxModelFile:str = ""
configFile:str = ""
# ↓mutableな物だけ列挙
- intData = ["gpu","srcId", "dstId", "convertChunkNum"]
+ intData = ["gpu","srcId", "dstId", "convertChunkNum", "minConvertSize"]
floatData = [ "crossFadeOffsetRate", "crossFadeEndRate", "crossFadeOverlapRate"]
strData = ["framework"]
@@ -298,8 +299,9 @@ class VoiceChanger():
if unpackedData.shape[0]*(1 + self.settings.crossFadeOverlapRate) + 1024 > convertSize:
convertSize = int(unpackedData.shape[0]*(1 + self.settings.crossFadeOverlapRate)) + 1024
-
- # print("convert Size", unpackedData.shape[0], unpackedData.shape[0]*(1 + self.settings.crossFadeOverlapRate), convertSize)
+ if convertSize < self.settings.minConvertSize:
+ convertSize = self.settings.minConvertSize
+ # print("convert Size", unpackedData.shape[0], unpackedData.shape[0]*(1 + self.settings.crossFadeOverlapRate), convertSize, self.settings.minConvertSize)
self._generate_strength(unpackedData)
data = self._generate_input(unpackedData, convertSize)