File size: 3,807 Bytes
3b87861
c451602
1e14657
4cad25d
1e14657
 
3b87861
c451602
 
 
1e14657
 
 
 
 
 
 
 
 
 
 
 
 
4cad25d
 
630c584
 
4cad25d
630c584
8a8ce66
 
157537f
 
 
 
 
 
 
0c3cdf9
157537f
9b1c0bb
 
40ea73f
 
1e14657
dfa4c0a
12e6a54
4cad25d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9f8a098
4cad25d
 
 
157537f
 
 
 
 
 
 
 
9b1c0bb
 
 
 
7c905f1
9b1c0bb
 
d9217c2
3b87861
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import gradio as gr
import hashlib
import tempfile
import requests
from TTS.utils.manage import ModelManager
from TTS.utils.synthesizer import Synthesizer
def fx(x:str):
    hash=hashlib.md5()
    hash.update(x.encode(encoding='utf-8'))
    return hash.hexdigest()
    
manager = ModelManager()
model_path, config_path, model_item = manager.download_model("tts_models/zh-CN/baker/tacotron2-DDC-GST")
synthesizer = Synthesizer(
    model_path, config_path, None, None, None,
)


def inference(text: str):
    wavs = synthesizer.tts(text)
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as fp:
        synthesizer.save_wav(wavs, fp)
        return fp.name

def fx_m(s:str):
    headers= {"Content-Type": "application/json"}
    url="https://m-formatter.azurewebsites.net/api/v2"
    data={'code':s,'resultType':'text'}
    respose=requests.post(url,json=data,headers=headers)
    ms=respose.json()
    return ms['result']

def fx_dax(s:str):
    url="https://www.daxformatter.com/"
    data = {"embed":"1","l":"short","fx":s}
    ct=requests.post(url = url,data = data)
    html=ct.text
    s1=html.split('<div class="result">')[1]
    s2='<div class="result">'+s1.split('<a href')[0]+'<a href="https://pbihub.cn/users/44" target="_top"><img src="https://pbihub.cn/uploads/avatars/44_1536391253.jpg?imageView2/1/w/380/h/380" alt="万剑归宗" class="badge" width="380" height="380"></a>'
    return s2
    
def fx_datatable(s:str):
    a=exec(s)
    return a 
        
demo=gr.Blocks()
with demo:
    with gr.Tabs():
        with gr.TabItem("测试1"):
            with gr.Column():
                text_input=gr.Textbox(placeholder='请输入测试字符串',label="请输入需要MD5加密的测试内容")
                text_output=gr.Textbox(label="输出",visible=False)
                text_input.change(fn=lambda visible: gr.update(visible=True), inputs=text_input, outputs=text_output)
                bb_button=gr.Button("运行")
                bb_button.click(fx, inputs=text_input, outputs=text_output,api_name='md5')
            with gr.Column():
                gr.Markdown("# TTS文本字符串转语音合成训练")
                TTS_input=gr.Textbox(label="输入文本",default="你好吗?我很好。") 
                TTS_button=gr.Button("合成")
                TTS_button.click(inference, inputs=TTS_input, outputs=gr.Audio(label="输出合成结果"),api_name='tts')
        with gr.TabItem("M-Formatter"):
            gr.Markdown("# PowerQuery M语言脚本格式化测试")
            M_input=gr.Textbox(label="请填写需要格式化的M脚本",default="let a=1,b=2 in a+b",lines=18)
            M_output=gr.Textbox(label="格式化结果",lines=50) 
            M_button=gr.Button("开始格式化>>")
            M_button.click(fx_m, inputs=M_input, outputs=M_output,api_name='M')
            
        with gr.TabItem("DAX-Formatter"):
            gr.Markdown("# DAX表达式格式化测试")
            with gr.Row():
                DAX_input=gr.Textbox(label="请填写需要格式化的DAX表达式",default="扯淡=CALCULATE(VALUES('价格表'[单价]),FILTER('价格表','价格表'[产品]='销售表'[产品]))",lines=28)
                DAX_button=gr.Button("格式化>>")
                DAX_output=gr.HTML(label="DAX表达式格式化结果") 
                DAX_button.click(fx_dax, inputs=DAX_input, outputs=DAX_output,api_name='DAX')

        with gr.TabItem("Python-Execute"):
            gr.Markdown("# Python脚本测试")
            d_input=gr.Textbox(label="请填写需要datatable库处理的脚本",lines=18)
            d_output=gr.Dataframe(label="输出>") 
            d_button=gr.Button("开始编译>>")
            d_button.click(fx_datatable, inputs=d_input, outputs=d_output,api_name='datatable')
demo.launch()