portalniy-dev commited on
Commit
44b04ac
·
verified ·
1 Parent(s): 848776a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -23
app.py CHANGED
@@ -1,32 +1,38 @@
 
1
  import numpy as np
2
- from pydub import AudioSegment
3
- from matplotlib import pyplot as plt
4
  from pysstv.color import Robot36
5
- import gradio as gr
6
-
7
- def decode_sstv(audio_file):
8
- # Чтение аудиофайла
9
- audio = AudioSegment.from_file(audio_file)
10
- samples = np.array(audio.get_array_of_samples(), dtype=np.int16)
11
 
12
- # Декодирование SSTV сигнала
13
- sstv = Robot36(samples, sample_rate=audio.frame_rate)
14
- img = sstv.decode()
 
 
 
 
 
15
 
16
- # Отображение изображения
17
- plt.imshow(img)
18
- plt.axis('off')
19
- img_path = 'decoded_image.png'
20
- plt.savefig(img_path, bbox_inches='tight', pad_inches=0)
21
- return img_path
 
 
 
 
22
 
 
23
  iface = gr.Interface(
24
  fn=decode_sstv,
25
- inputs=gr.Audio(type="filepath", label="Upload SSTV Audio File"),
26
- outputs=gr.Image(label="Decoded Image"),
27
- title="SSTV Decoder",
28
- description="Upload an SSTV audio file to decode the image."
29
  )
30
 
31
- if __name__ == "__main__":
32
- iface.launch()
 
1
+ import gradio as gr
2
  import numpy as np
 
 
3
  from pysstv.color import Robot36
4
+ from pysstv.utils import load_wav
5
+ from io import BytesIO
6
+ import matplotlib.pyplot as plt
 
 
 
7
 
8
+ def decode_sstv(file):
9
+ try:
10
+ # Загрузка WAV файла
11
+ wav_data, sample_rate = load_wav(file.name)
12
+
13
+ # Используем декодер Robot36
14
+ sstv = Robot36(wav_data, sample_rate)
15
+ image = sstv.decode()
16
 
17
+ # Конвертируем изображение для отображения
18
+ fig, ax = plt.subplots()
19
+ ax.imshow(image)
20
+ ax.axis('off')
21
+ buf = BytesIO()
22
+ plt.savefig(buf, format="png")
23
+ buf.seek(0)
24
+ return buf
25
+ except Exception as e:
26
+ return f"Ошибка: {e}"
27
 
28
+ # Интерфейс Gradio
29
  iface = gr.Interface(
30
  fn=decode_sstv,
31
+ inputs=gr.File(label="Загрузите WAV файл (SSTV)"),
32
+ outputs=gr.Image(type="file", label="Декодированное изображение"),
33
+ title="SSTV Декодер",
34
+ description="Загрузите WAV файл с SSTV сигналом для декодирования изображения."
35
  )
36
 
37
+ # Запуск интерфейса
38
+ iface.launch()