Spaces:
Configuration error
Configuration error
import streamlit as st | |
import pandas as pd | |
import numpy as np | |
import matplotlib.pyplot as plt | |
import json | |
import tempfile | |
import shutil | |
temp_dir = tempfile.mkdtemp() | |
global ckpt_temp_file | |
global audio_temp_file | |
global config_temp_file | |
################################################### | |
from utils.hparams import hparams | |
from preprocessing.data_gen_utils import get_pitch_parselmouth,get_pitch_crepe | |
import numpy as np | |
import matplotlib.pyplot as plt | |
import IPython.display as ipd | |
import utils | |
import librosa | |
import torchcrepe | |
from infer import * | |
import logging | |
from infer_tools.infer_tool import * | |
import io | |
clip_completed = False | |
def render_audio(ckpt_temp_file, config_temp_file, audio_temp_file, title): | |
logging.getLogger('numba').setLevel(logging.WARNING) | |
title = int(title) | |
project_name = "Unnamed" | |
model_path = ckpt_temp_file | |
config_path= config_temp_file | |
hubert_gpu=True | |
svc_model = Svc(project_name,config_path,hubert_gpu, model_path) | |
print('model loaded') | |
wav_fn = audio_temp_file | |
demoaudio, sr = librosa.load(wav_fn) | |
key = title # 音高调整,支持正负(半音) | |
# 加速倍数 | |
pndm_speedup = 20 | |
wav_gen='queeeeee.wav'#直接改后缀可以保存不同格式音频,如flac可无损压缩 | |
f0_tst, f0_pred, audio = run_clip(svc_model,file_path=wav_fn, key=key, acc=pndm_speedup, use_crepe=True, use_pe=True, thre=0.05, | |
use_gt_mel=False, add_noise_step=500,project_name=project_name,out_path=wav_gen) | |
clip_completed = True | |
if clip_completed: | |
# If the 'run_clip' function has completed, use the st.audio function to show an audio player for the file stored in the 'wav_gen' variable | |
st.audio(wav_gen) | |
####################################################### | |
st.set_page_config( | |
page_title="DiffSVC Render", | |
page_icon="🧊", | |
initial_sidebar_state="expanded", | |
) | |
############ | |
st.title('DIFF-SVC Render') | |
###CKPT LOADER | |
ckpt = st.file_uploader("Choose your CKPT", type= 'ckpt') | |
# Check if user uploaded a CKPT file | |
if ckpt is not None: | |
#TEMP FUNCTION | |
with tempfile.NamedTemporaryFile(mode="wb", suffix='.ckpt', delete=False) as temp: | |
# Get the file contents as bytes | |
bytes_data = ckpt.getvalue() | |
# Write the bytes to the temporary file | |
temp.write(bytes_data) | |
ckpt_temp_file = temp.name | |
# Print the temporary file name | |
print(temp.name) | |
###CONFIG LOADER | |
config = st.file_uploader("Choose your config", type= 'yaml') | |
if config is not None: | |
#TEMP FUNCTION | |
with tempfile.NamedTemporaryFile(mode="wb", suffix='.yaml', delete=False) as temp: | |
# Get the file contents as bytes | |
bytes_data = config.getvalue() | |
# Write the bytes to the temporary file | |
temp.write(bytes_data) | |
config_temp_file = temp.name | |
# Print the temporary file name | |
print(temp.name) | |
##WAV LOADER | |
audio = st.file_uploader("Choose your audio", type= 'wav' or 'mp3') | |
if audio is not None: | |
#TEMP FUNCTION | |
with tempfile.NamedTemporaryFile(mode="wb", suffix='.wav', delete=False) as temp: | |
# Get the file contents as bytes | |
bytes_data = audio.getvalue() | |
# Write the bytes to the temporary file | |
temp.write(bytes_data) | |
audio_temp_file = temp.name | |
# Print the temporary file name | |
print(temp.name) | |
title = st.text_input('Key', '0') | |
gflag = st.slider('Gender Flag', 0.80, 1.20, 1.00) | |
###DOWNLOAD | |
st.button('Render', on_click=render_audio(ckpt_temp_file, config_temp_file, audio_temp_file, title)) |