VisionVoice/accessibility-assistant
0
1# -*- coding: utf-8 -*-2"""Assignment 4_Visual Assistance_with TTS.ipynb3 4Automatically generated by Colab.5 6Original file is located at7 https://colab.research.google.com/drive/1LBTUSQuENvlt7NtPgp_-3Rd0SLIxQooR8"""9 10import gradio as gr11from PIL import Image12from transformers import BlipProcessor, BlipForConditionalGeneration13from gtts import gTTS14 15# Load BLIP Vision-Language Model16processor = BlipProcessor.from_pretrained(17 "Salesforce/blip-image-captioning-base"18)19 20model = BlipForConditionalGeneration.from_pretrained(21 "Salesforce/blip-image-captioning-base"22)23 24# Main function: Image → Text → Speech25def describe_image(image):26 27 inputs = processor(image, return_tensors="pt")28 29 # Generate caption30 output = model.generate(**inputs, max_new_tokens=50)31 32 caption = processor.decode(33 output[0],34 skip_special_tokens=True35 )36 #ADD DISCLAIMER HERE (after caption is created)37 caption = "This is an AI-generated description and may not be fully accurate.\n\n" + caption38 39 # Convert text to speech using gTTS40 tts = gTTS(text=caption, lang="en")41 42 audio_path = "output.mp3"43 tts.save(audio_path)44 45 # Return both caption + audio file46 return caption, audio_path47 48 49# Gradio Interface (Text + Audio output)50demo = gr.Interface(51 fn=describe_image,52 inputs=gr.Image(type="pil"),53 outputs=[54 gr.Textbox(label="Image Description"),55 gr.Audio(label="Audio Description")56 ],57 title="VisionVoice Accessibility Assistant",58 description=(59 "Upload an image and receive an AI-generated description "60 "with text and spoken audio output to support accessibility."61 )62)63 64demo.launch()