Felguk commited on
Commit
4401426
·
verified ·
1 Parent(s): 1c38456

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -88
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
  import PyPDF2
4
- from PIL import Image, ImageFont, ImageDraw
5
  import cv2
6
  import numpy as np
7
  from pydub import AudioSegment
@@ -187,65 +187,14 @@ def resize_image(image, width: int, height: int):
187
  resized_img.save(tmp_file.name)
188
  return tmp_file.name
189
 
190
- # Функция для конвертации аудио
191
- def convert_audio(file, target_format: str):
192
- if file is None:
193
- return "Файл не загружен."
194
-
195
- audio = AudioSegment.from_file(file.name)
196
-
197
- # Сохраняем аудио в новом формате
198
- with tempfile.NamedTemporaryFile(delete=False, suffix=f".{target_format.lower()}") as tmp_file:
199
- audio.export(tmp_file.name, format=target_format)
200
- return tmp_file.name
201
-
202
  # Функция для перевода текста
203
  def translate_text(text: str, target_language: str):
204
  translator = Translator()
205
- translation = translator.translate(text, dest=target_language)
206
- return translation.text
207
-
208
- # Функция для обрезки видео
209
- def trim_video(file, start_time: float, end_time: float):
210
- if file is None:
211
- return "Файл не загружен."
212
-
213
- cap = cv2.VideoCapture(file.name)
214
- fps = cap.get(cv2.CAP_PROP_FPS)
215
- width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
216
- height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
217
-
218
- # Создаем объект для записи видео
219
- output_path = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4").name
220
- fourcc = cv2.VideoWriter_fourcc(*'mp4v')
221
- out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
222
-
223
- # Обрезка видео
224
- cap.set(cv2.CAP_PROP_POS_MSEC, start_time * 1000)
225
- while cap.isOpened():
226
- ret, frame = cap.read()
227
- if not ret or cap.get(cv2.CAP_PROP_POS_MSEC) >= end_time * 1000:
228
- break
229
- out.write(frame)
230
-
231
- cap.release()
232
- out.release()
233
- return output_path
234
-
235
- # Функция для объединения PDF-файлов
236
- def merge_pdfs(files):
237
- if not files:
238
- return "Файлы не загружены."
239
-
240
- merger = PyPDF2.PdfMerger()
241
- for file in files:
242
- merger.append(file.name)
243
-
244
- # Сохраняем объединенный PDF во временный файл
245
- output_path = tempfile.NamedTemporaryFile(delete=False, suffix=".pdf").name
246
- merger.write(output_path)
247
- merger.close()
248
- return output_path
249
 
250
  # Создание интерфейса
251
  with gr.Blocks() as demo:
@@ -311,19 +260,6 @@ with gr.Blocks() as demo:
311
  resized_image_output = gr.Image(label="Результат", type="filepath")
312
  resize_button.click(fn=resize_image, inputs=[image_input, width_input, height_input], outputs=resized_image_output)
313
 
314
- # Вкладка Felguk-AudioConverter
315
- with gr.Tab("Felguk-AudioConverter"):
316
- gr.Markdown("## Felguk-AudioConverter: Конвертация аудиофайлов")
317
- audio_input = gr.File(label="Загрузите аудиофайл", file_types=[".mp3", ".wav"])
318
- target_format_input = gr.Dropdown(
319
- choices=["mp3", "wav", "ogg"],
320
- label="Выберите формат для конвертации",
321
- value="mp3"
322
- )
323
- convert_button = gr.Button("Конвертировать")
324
- converted_audio_output = gr.Audio(label="Результат")
325
- convert_button.click(fn=convert_audio, inputs=[audio_input, target_format_input], outputs=converted_audio_output)
326
-
327
  # Вкладка Felguk-TextTranslator
328
  with gr.Tab("Felguk-TextTranslator"):
329
  gr.Markdown("## Felguk-TextTranslator: Перевод текста")
@@ -337,24 +273,6 @@ with gr.Blocks() as demo:
337
  translated_text_output = gr.Textbox(label="Результат", interactive=False)
338
  translate_button.click(fn=translate_text, inputs=[text_input, target_language_input], outputs=translated_text_output)
339
 
340
- # Вкладка Felguk-VideoTrimmer
341
- with gr.Tab("Felguk-VideoTrimmer"):
342
- gr.Markdown("## Felguk-VideoTrimmer: Обрезка видеофайлов")
343
- video_input = gr.File(label="Загрузите видеофайл", file_types=[".mp4", ".avi"])
344
- start_time_input = gr.Number(label="Начало обрезки (сек)", value=0)
345
- end_time_input = gr.Number(label="Конец обрезки (сек)", value=10)
346
- trim_button = gr.Button("Обрезать видео")
347
- trimmed_video_output = gr.Video(label="Результат")
348
- trim_button.click(fn=trim_video, inputs=[video_input, start_time_input, end_time_input], outputs=trimmed_video_output)
349
-
350
- # Вкладка Felguk-PDFMerger
351
- with gr.Tab("Felguk-PDFMerger"):
352
- gr.Markdown("## Felguk-PDFMerger: Объединение PDF-файлов")
353
- pdf_files_input = gr.Files(label="Загрузите PDF-файлы", file_types=[".pdf"])
354
- merge_button = gr.Button("Объединить PDF")
355
- merged_pdf_output = gr.File(label="Результат")
356
- merge_button.click(fn=merge_pdfs, inputs=pdf_files_input, outputs=merged_pdf_output)
357
-
358
  # Интерфейс чата
359
  chat_interface = gr.ChatInterface(
360
  respond,
 
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
  import PyPDF2
4
+ from PIL import Image
5
  import cv2
6
  import numpy as np
7
  from pydub import AudioSegment
 
187
  resized_img.save(tmp_file.name)
188
  return tmp_file.name
189
 
 
 
 
 
 
 
 
 
 
 
 
 
190
  # Функция для перевода текста
191
  def translate_text(text: str, target_language: str):
192
  translator = Translator()
193
+ try:
194
+ translation = translator.translate(text, dest=target_language)
195
+ return translation.text
196
+ except Exception as e:
197
+ return f"Ошибка перевода: {str(e)}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
 
199
  # Создание интерфейса
200
  with gr.Blocks() as demo:
 
260
  resized_image_output = gr.Image(label="Результат", type="filepath")
261
  resize_button.click(fn=resize_image, inputs=[image_input, width_input, height_input], outputs=resized_image_output)
262
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  # Вкладка Felguk-TextTranslator
264
  with gr.Tab("Felguk-TextTranslator"):
265
  gr.Markdown("## Felguk-TextTranslator: Перевод текста")
 
273
  translated_text_output = gr.Textbox(label="Результат", interactive=False)
274
  translate_button.click(fn=translate_text, inputs=[text_input, target_language_input], outputs=translated_text_output)
275
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
276
  # Интерфейс чата
277
  chat_interface = gr.ChatInterface(
278
  respond,