主要改动
这个模型是mossformer2,原来是一个说话人分离模型,在训练过程中,发现模型在说话人分离的同时具备很强的降噪效果,现在把降噪模型分离出来。
建议使用GPU进行推理,经过测试,GPU的推理速度是CPU的数十倍。
代码范例
import onnx
import onnxruntime as ort
import numpy as np
import soundfile as sf
def save_result(est_source):
signal = est_source[0, :, 0]
signal = signal / np.abs(signal).max() * 0.5
signal = signal[np.newaxis, :]
output = (signal * 32768).astype(np.int16).tobytes()
save_file = f'output_spk0.wav'
sf.write(save_file, np.frombuffer(output, dtype=np.int16), 16000)
onnx_model_path = 'simple_model.onnx'
onnx_model = onnx.load(onnx_model_path)
onnx.checker.check_model(onnx_model)
ort_session = ort.InferenceSession(onnx_model_path)
input_data,sr = sf.read('output_16000.wav')
input_data = np.expand_dims(input_data, axis=0).astype(np.float32)
input_name = ort_session.get_inputs()[0].name
outputs = ort_session.run(None, {input_name: input_data})
output_data = outputs[0]
print(output_data.shape)
save_result(output_data)
相关论文以及引用信息
Zhao, Shengkui and Ma, Bin et al, “MossFormer2: Combining Transformer and RNN-Free Recurrent Network for Enhanced Time-Domain Monaural Speech Separation”, submitting to ICASSP 2024.
评论