sstv-decoder / app.py
portalniy-dev's picture
Update app.py
f114227 verified
Raw
History Blame Contribute Delete
1.22 kB
import numpy as np
from pydub import AudioSegment
from matplotlib import pyplot as plt
from pysstv.color import Robot36
import gradio as gr
def decode_sstv(audio_file):
# Чтение аудиофайла
audio = AudioSegment.from_file(audio_file)
samples = np.array(audio.get_array_of_samples(), dtype=np.int16)
# Декодирование SSTV сигнала с передачей numpy-массива
# На этот раз, создаем изображение после преобразования образца
sstv = Robot36(samples, samples_per_sec=audio.frame_rate, bits=16, color_depth=8)
sstv_img = sstv.decode()
img = np.array(sstv_img)
# Сохранение и отображение изображения
plt.imshow(img)
plt.axis('off')
img_path = 'decoded_image.png'
plt.savefig(img_path, bbox_inches='tight', pad_inches=0)
return img_path
iface = gr.Interface(
fn=decode_sstv,
inputs=gr.Audio(type="filepath", label="Upload SSTV Audio File"),
outputs=gr.Image(label="Decoded Image"),
title="SSTV Decoder",
description="Upload an SSTV audio file to decode the image."
)
if __name__ == "__main__":
iface.launch()