Doubleupai commited on
Commit
0dead4a
·
verified ·
1 Parent(s): fd878f6

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +150 -0
app.py ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from pydub import AudioSegment
3
+ from ffmpy import FFmpeg
4
+ from PIL import Image
5
+ import torchvision.transforms as transforms
6
+ import torch
7
+ import numpy as np
8
+ import sympy as sp
9
+ import websockets
10
+ import asyncio
11
+ import tomlkit
12
+ import svgwrite
13
+ import sniffio
14
+ import shellingham
15
+ import semantic_version
16
+ import ruff
17
+ import python_multipart
18
+ import pygments
19
+ import pydantic_core
20
+ import orjson
21
+ import networkx as nx
22
+ import mdurl
23
+ import markupsafe
24
+ import h11
25
+ import fonttools
26
+ import exceptiongroup
27
+ import annotated_types
28
+ import aiofiles
29
+ import uvicorn
30
+ import pydantic
31
+ import markdown_it_py
32
+ import jinja2
33
+ import httpcore
34
+ import anyio
35
+ import starlette
36
+ import rich
37
+ import httpx
38
+ import typer
39
+ import safehttpx
40
+ import gradio_client
41
+ import fastapi
42
+
43
+ # Функция для обработки аудио
44
+ def process_audio(audio_file):
45
+ """
46
+ Обрабатывает аудиофайл: увеличивает громкость на 10 dB.
47
+ """
48
+ audio = AudioSegment.from_file(audio_file)
49
+ audio = audio + 10 # Увеличиваем громкость
50
+ output_file = "processed_audio.mp3"
51
+ audio.export(output_file, format="mp3")
52
+ return output_file
53
+
54
+ # Функция для обработки изображений
55
+ def process_image(image_file):
56
+ """
57
+ Обрабатывает изображение: изменяет яркость.
58
+ """
59
+ image = Image.open(image_file)
60
+ transform = transforms.ToTensor()
61
+ tensor_image = transform(image)
62
+ tensor_image = tensor_image * 0.5 # Уменьшаем яркость
63
+ image = transforms.ToPILImage()(tensor_image)
64
+ output_file = "processed_image.png"
65
+ image.save(output_file)
66
+ return output_file
67
+
68
+ # Функция для решения математического уравнения с использованием sympy
69
+ def solve_equation(equation):
70
+ """
71
+ Решает математическое уравнение с помощью sympy.
72
+ """
73
+ x = sp.symbols('x')
74
+ solution = sp.solve(equation, x)
75
+ return str(solution)
76
+
77
+ # Функция для создания графа с использованием networkx
78
+ def create_graph():
79
+ """
80
+ Создает и визуализирует простой граф с помощью networkx.
81
+ """
82
+ G = nx.Graph()
83
+ G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 1)])
84
+ pos = nx.spring_layout(G)
85
+ nx.draw(G, pos, with_labels=True)
86
+ output_file = "graph.png"
87
+ plt.savefig(output_file)
88
+ return output_file
89
+
90
+ # Функция для генерации SVG с использованием svgwrite
91
+ def generate_svg():
92
+ """
93
+ Генерирует простой SVG файл с помощью svgwrite.
94
+ """
95
+ dwg = svgwrite.Drawing('test.svg', profile='tiny')
96
+ dwg.add(dwg.line((0, 0), (100, 100), stroke=svgwrite.rgb(10, 10, 16, '%')))
97
+ dwg.add(dwg.text('Hello, SVG!', insert=(10, 20)))
98
+ dwg.save()
99
+ return 'test.svg'
100
+
101
+ # Создание интерфейсов Gradio
102
+ audio_interface = gr.Interface(
103
+ fn=process_audio,
104
+ inputs=gr.Audio(type="filepath"),
105
+ outputs=gr.Audio(type="filepath"),
106
+ title="Обработка аудио",
107
+ description="Увеличиваем громкость аудио на 10 dB."
108
+ )
109
+
110
+ image_interface = gr.Interface(
111
+ fn=process_image,
112
+ inputs=gr.Image(type="filepath"),
113
+ outputs=gr.Image(type="filepath"),
114
+ title="Обработка изображений",
115
+ description="Изменяем яркость изображения."
116
+ )
117
+
118
+ equation_interface = gr.Interface(
119
+ fn=solve_equation,
120
+ inputs=gr.Textbox(label="Введите уравнение (например, x**2 - 4)"),
121
+ outputs=gr.Textbox(label="Решение"),
122
+ title="Решение уравнений",
123
+ description="Решает математические уравнения с помощью sympy."
124
+ )
125
+
126
+ graph_interface = gr.Interface(
127
+ fn=create_graph,
128
+ inputs=None,
129
+ outputs=gr.Image(type="filepath"),
130
+ title="Генерация графа",
131
+ description="Создает и визуализирует простой граф с помощью networkx."
132
+ )
133
+
134
+ svg_interface = gr.Interface(
135
+ fn=generate_svg,
136
+ inputs=None,
137
+ outputs=gr.File(label="SVG файл"),
138
+ title="Генерация SVG",
139
+ description="Генерирует простой SVG файл с помощью svgwrite."
140
+ )
141
+
142
+ # Объединение интерфейсов в одно приложение
143
+ app = gr.TabbedInterface(
144
+ [audio_interface, image_interface, equation_interface, graph_interface, svg_interface],
145
+ ["Обработка аудио", "Обработка изображений", "Решение уравнений", "Генерация графа", "Генерация SVG"]
146
+ )
147
+
148
+ # Запуск приложения
149
+ if __name__ == "__main__":
150
+ app.launch()