| import os |
| from PIL import Image, ImageDraw, ImageFont |
| import gradio as gr |
| from helper import load_image_from_url, render_results_in_image |
| from helper import summarize_predictions_natural_language |
| from transformers import pipeline |
| from transformers.utils import logging |
| logging.set_verbosity_error() |
|
|
| from helper import ignore_warnings |
| ignore_warnings() |
|
|
|
|
|
|
|
|
| od_pipe = pipeline("object-detection", "facebook/detr-resnet-50") |
| tts_pipe = pipeline("text-to-speech", |
| model="kakao-enterprise/vits-ljs") |
|
|
|
|
| def get_pipeline_prediction(pil_image): |
| |
| pipeline_output = od_pipe(pil_image) |
| |
| processed_image = render_results_in_image(pil_image, |
| pipeline_output) |
| |
| text = summarize_predictions_natural_language(pipeline_output) |
| print(text) |
| narrated_text = tts_pipe(text) |
|
|
| |
| print(narrated_text["audio"][0]) |
| print (narrated_text["sampling_rate"]) |
| return processed_image, (narrated_text["sampling_rate"], narrated_text["audio"][0] ) |
| |
|
|
|
|
| demo = gr.Interface( |
| fn=get_pipeline_prediction, |
| inputs=gr.Image(label="Input image", |
| type="pil"), |
| outputs=[gr.Image(label="Output image with predicted instances", |
| type="pil"), gr.Audio(label="Narration", type="numpy", autoplay=True)] |
| |
| |
| ) |
|
|
| demo.launch(server_name="0.0.0.0", server_port=7860) |
|
|