CoolFace
Apppublic

mitudesk/uma_diffsvc

sourceHugging Faceapache-2.0updated 4y agoView on Hugging Face
0likes
flask_api.py55 linesDownload Raw Back to root
1import io2import logging3 4import librosa5import soundfile6from flask import Flask, request, send_file7from flask_cors import CORS8 9from infer_tools.infer_tool import Svc10from utils.hparams import hparams11 12app = Flask(__name__)13 14CORS(app)15 16logging.getLogger('numba').setLevel(logging.WARNING)17 18 19@app.route("/voiceChangeModel", methods=["POST"])20def voice_change_model():21    request_form = request.form22    wave_file = request.files.get("sample", None)23    # 变调信息24    f_pitch_change = float(request_form.get("fPitchChange", 0))25    # DAW所需的采样率26    daw_sample = int(float(request_form.get("sampleRate", 0)))27    speaker_id = int(float(request_form.get("sSpeakId", 0)))28    # http获得wav文件并转换29    input_wav_path = io.BytesIO(wave_file.read())30    # 模型推理31    _f0_tst, _f0_pred, _audio = model.infer(input_wav_path, key=f_pitch_change, acc=accelerate, use_pe=False,32                                            use_crepe=False)33    tar_audio = librosa.resample(_audio, hparams["audio_sample_rate"], daw_sample)34    # 返回音频35    out_wav_path = io.BytesIO()36    soundfile.write(out_wav_path, tar_audio, daw_sample, format="wav")37    out_wav_path.seek(0)38    return send_file(out_wav_path, download_name="temp.wav", as_attachment=True)39 40 41if __name__ == '__main__':42    # 工程文件夹名,训练时用的那个43    project_name = "firefox"44    model_path = f'./checkpoints/{project_name}/model_ckpt_steps_188000.ckpt'45    config_path = f'./checkpoints/{project_name}/config.yaml'46 47    # 加速倍数48    accelerate = 5049    hubert_gpu = True50 51    model = Svc(project_name, config_path, hubert_gpu, model_path)52 53    # 此处与vst插件对应,不建议更改54    app.run(port=6842, host="0.0.0.0", debug=False, threaded=False)55