实用篇 | 利用Flask+Postman为深度学习模型进行快速测试(超详细)

实用篇 | 利用Flask+Postman为深度学习模型进行快速测试(超详细)_第1张图片

利用Flask+Postman为深度学习模型进行快速测试,以及算法中的一些实例,以后会更新一些新的模板~~

#本文环境:服务器Ubuntu20.04(docker)

目录

1.下载postrman

2.编写flas的app文件

3.在postrman发送请求

4.实例

在服务器创建app.py文件

 在服务器运行app.py文件

 打开Win上的postman

输入刚运行提示的网址和端口​编辑

打开form-data,在Value出输入需要合成的文本

点击发送(Send)

参考文献


1.下载postrman

在win10上下载postrman

下载地址:Download Postman | Get Started for Free

下载后双击安装就可以啦~

2.编写flas的app文件

在服务器编写app.py文件

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "

Hello, World!

" app.run(host='0.0.0.0', port=1180) #默认端口号5000,如果运行api后出现404,可能是端口号被占用,改一下端口号就好啦~

运行后就就会出现

实用篇 | 利用Flask+Postman为深度学习模型进行快速测试(超详细)_第2张图片

3.在postrman发送请求

依次点击New->Collections->

输入网址后,点击Send发送,如图

实用篇 | 利用Flask+Postman为深度学习模型进行快速测试(超详细)_第3张图片

4.语音合成实例

在服务器创建app.py文件

# @ Date: 2023.12.04
# @ Elena

import sys
from flask import Flask, request, jsonify,render_template
from flask.views import MethodView
from flask_cors import CORS
import argparse
import base64
import librosa
import numpy as np
import matplotlib.pyplot as plt
import io
import logging

import soundfile
import torch

from flask import Flask, request, send_file,jsonify
from flask_cors import CORS
from flask.views import MethodView
import commons
import utils
from data_utils import TextAudioLoader, TextAudioCollate, TextAudioSpeakerLoader, TextAudioSpeakerCollate
from models import SynthesizerTrn
from text.symbols import symbols
from text import text_to_sequence
import langdetect

from scipy.io.wavfile import write
import re
from scipy import signal
import time
from inference import vcss

# check device
if torch.cuda.is_available() is True:
    device = "cuda:0"
else:
    device = "cpu"

 
def get_text(text, hps):
    text_norm = text_to_sequence(text, hps.data.text_cleaners)
    if hps.data.add_blank:
        text_norm = commons.intersperse(text_norm, 0)
    text_norm = torch.LongTensor(text_norm)
    return text_norm

app = Flask(__name__)
#CORS(app, resources={r'/*': {"origins": '*'}})

@app.route("/")
def index():
    return render_template('index.html')

@app.route('/test', methods=['GET','POST'])
def test():
    #if request.method == 'POST':
    # 请求用户输入的合成文本 
    text = request.form["text"]
    print('text:', text)

    
    fltstr = re.sub(r"[\[\]\(\)\{\}]", "", text)
    stn_tst = get_text(fltstr, hps)
    speed = 1
    output_dir = 'output'
    
    sid = 0
    start_time=time.time()
    with torch.no_grad():
        x_tst = stn_tst.to(device).unsqueeze(0)
        x_tst_lengths = torch.LongTensor([stn_tst.size(0)]).to(device)
        audio = net_g.infer(x_tst, x_tst_lengths, noise_scale=.667, noise_scale_w=0.8, length_scale=1 / speed)[0][
                0, 0].data.cpu().float().numpy()
    output = write(f'./{output_dir}/out.wav', hps.data.sampling_rate, audio)
    out_path = "./output/out.wav"


    return send_file(out_path,mimetype="audio/wav", as_attachment=True,download_name="out.wav")
    #return jsonify({'Input Text':text})


if __name__ == '__main__':

    path_to_config = "./config.json" 
    path_to_model = "./G_179000.pth"
    hps = utils.get_hparams_from_file(path_to_config)

    if "use_mel_posterior_encoder" in hps.model.keys() and hps.model.use_mel_posterior_encoder == True:
        print("Using mel posterior encoder for VITS2")
        posterior_channels = 80  # vits2
        hps.data.use_mel_posterior_encoder = True
    else:
        print("Using lin posterior encoder for VITS1")
        posterior_channels = hps.data.filter_length // 2 + 1
        hps.data.use_mel_posterior_encoder = False

    net_g = SynthesizerTrn(
        len(symbols),
        posterior_channels,
        hps.train.segment_size // hps.data.hop_length,
        n_speakers=hps.data.n_speakers, #- >0 for multi speaker
        **hps.model).to(device)
    _ = net_g.eval()

    _ = utils.load_checkpoint(path_to_model, net_g, None)

    app.run(port=6842, host="0.0.0.0", debug=True, threaded=False)

 在服务器运行app.py文件

python app.py

这里是我自己随便起的python名称 

实用篇 | 利用Flask+Postman为深度学习模型进行快速测试(超详细)_第4张图片 

 打开Win上的postman

  • 输入刚运行提示的网址和端口实用篇 | 利用Flask+Postman为深度学习模型进行快速测试(超详细)_第5张图片

  • 打开form-data,在Value出输入需要合成的文本

实用篇 | 利用Flask+Postman为深度学习模型进行快速测试(超详细)_第6张图片

  • 点击发送(Send)

实用篇 | 利用Flask+Postman为深度学习模型进行快速测试(超详细)_第7张图片

参考文献

【1】Templates — Flask Documentation (3.0.x) (palletsprojects.com) 

你可能感兴趣的:(-,实用篇,-,-,环境配置,-,flask,python,后端,人工智能算法快速演示)