This commit is contained in:
wataru 2023-01-08 09:45:58 +09:00
parent 6f36783ab6
commit 8774fe1904
3 changed files with 13 additions and 12 deletions

View File

@ -26,15 +26,13 @@ class MMVC_Namespace(socketio.AsyncNamespace):
dstId = int(msg[2]) dstId = int(msg[2])
timestamp = int(msg[3]) timestamp = int(msg[3])
convertChunkNum = int(msg[4]) convertChunkNum = int(msg[4])
crossFadeLowerValue = msg[5] crossFadeLowerValue = float(msg[5])
crossFadeOffsetRate = msg[6] crossFadeOffsetRate = float(msg[6])
crossFadeEndRate = msg[7] crossFadeEndRate = float(msg[7])
data = msg[8] data = msg[8]
# print(srcId, dstId, timestamp, convertChunkNum, crossFadeLowerValue, crossFadeOffsetRate, crossFadeEndRate) # print(srcId, dstId, timestamp, convertChunkNum, crossFadeLowerValue, crossFadeOffsetRate, crossFadeEndRate)
unpackedData = np.array(struct.unpack( unpackedData = np.array(struct.unpack('<%sh' % (len(data) // struct.calcsize('<h')), data))
'<%sh' % (len(data) // struct.calcsize('<h')), data))
# audio1 = self.voiceChangerManager.changeVoice(
# gpu, srcId, dstId, timestamp, prefixChunkSize, unpackedData)
audio1 = self.voiceChangerManager.changeVoice( audio1 = self.voiceChangerManager.changeVoice(
gpu, srcId, dstId, timestamp, convertChunkNum, crossFadeLowerValue, crossFadeOffsetRate, crossFadeEndRate, unpackedData) gpu, srcId, dstId, timestamp, convertChunkNum, crossFadeLowerValue, crossFadeOffsetRate, crossFadeEndRate, unpackedData)

View File

@ -17,7 +17,7 @@ import onnxruntime
providers = ['OpenVINOExecutionProvider',"CUDAExecutionProvider","DmlExecutionProvider","CPUExecutionProvider"] providers = ['OpenVINOExecutionProvider',"CUDAExecutionProvider","DmlExecutionProvider","CPUExecutionProvider"]
class VoiceChanger(): class VoiceChanger():
def __init__(self, config, model=None, onnx_model=None): def __init__(self, config:str, model:str=None, onnx_model:str=None):
# 共通で使用する情報を収集 # 共通で使用する情報を収集
self.hps = utils.get_hparams_from_file(config) self.hps = utils.get_hparams_from_file(config)
self.gpu_num = torch.cuda.device_count() self.gpu_num = torch.cuda.device_count()
@ -90,9 +90,12 @@ class VoiceChanger():
self.onnx_session.set_providers(providers=[provider]) self.onnx_session.set_providers(providers=[provider])
print("ONNX_MDEOL: ", self.onnx_session.get_providers()) print("ONNX_MDEOL: ", self.onnx_session.get_providers())
return {"provider":self.onnx_session.get_providers()} return {"provider":self.onnx_session.get_providers()}
else:
return {"provider":""}
def _generate_strength(self, crossFadeOffsetRate, crossFadeEndRate, unpackedData): def _generate_strength(self, crossFadeOffsetRate:float, crossFadeEndRate:float, unpackedData):
if self.crossFadeOffsetRate != crossFadeOffsetRate or self.crossFadeEndRate != crossFadeEndRate or self.unpackedData_length != unpackedData.shape[0]: if self.crossFadeOffsetRate != crossFadeOffsetRate or self.crossFadeEndRate != crossFadeEndRate or self.unpackedData_length != unpackedData.shape[0]:
self.crossFadeOffsetRate = crossFadeOffsetRate self.crossFadeOffsetRate = crossFadeOffsetRate
@ -143,12 +146,12 @@ class VoiceChanger():
return data return data
def on_request(self, gpu, srcId, dstId, timestamp, convertChunkNum, crossFadeLowerValue, crossFadeOffsetRate, crossFadeEndRate, unpackedData): def on_request(self, gpu:int, srcId:int, dstId:int, timestamp:int, convertChunkNum:int, crossFadeLowerValue:float, crossFadeOffsetRate:float, crossFadeEndRate:float, unpackedData:any):
convertSize = convertChunkNum * 128 # 128sample/1chunk convertSize = convertChunkNum * 128 # 128sample/1chunk
if unpackedData.shape[0] * 2 > convertSize: if unpackedData.shape[0] * 2 > convertSize:
convertSize = unpackedData.shape[0] * 2 convertSize = unpackedData.shape[0] * 2
print("convert Size", convertChunkNum, convertSize) # print("convert Size", convertChunkNum, convertSize)
self._generate_strength(crossFadeOffsetRate, crossFadeEndRate, unpackedData) self._generate_strength(crossFadeOffsetRate, crossFadeEndRate, unpackedData)
data = self. _generate_input(unpackedData, convertSize, srcId) data = self. _generate_input(unpackedData, convertSize, srcId)

View File

@ -28,7 +28,7 @@ class VoiceChangerManager():
return {"error":"no voice changer"} return {"error":"no voice changer"}
def changeVoice(self, gpu, srcId, dstId, timestamp, convertChunkNum, crossFadeLowerValue, crossFadeOffsetRate, crossFadeEndRate, unpackedData): def changeVoice(self, gpu:int, srcId:int, dstId:int, timestamp:int, convertChunkNum:int, crossFadeLowerValue:float, crossFadeOffsetRate:float, crossFadeEndRate:float, unpackedData:any):
if hasattr(self, 'voiceChanger') == True: if hasattr(self, 'voiceChanger') == True:
return self.voiceChanger.on_request(gpu, srcId, dstId, timestamp, convertChunkNum, crossFadeLowerValue, crossFadeOffsetRate, crossFadeEndRate, unpackedData) return self.voiceChanger.on_request(gpu, srcId, dstId, timestamp, convertChunkNum, crossFadeLowerValue, crossFadeOffsetRate, crossFadeEndRate, unpackedData)
else: else: