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 # Preprocess image28 inputs = processor(image, return_tensors="pt")29 30 # Generate caption31 output = model.generate(**inputs, max_new_tokens=50)32 33 caption = processor.decode(34 output[0],35 skip_special_tokens=True36 )37 38 # Convert text to speech using gTTS39 tts = gTTS(text=caption, lang="en")40 41 audio_path = "output.mp3"42 tts.save(audio_path)43 44 # Return both caption + audio file45 return caption, audio_path46 47 48# Gradio Interface (Text + Audio output)49demo = gr.Interface(50 fn=describe_image,51 inputs=gr.Image(type="pil"),52 outputs=[53 gr.Textbox(label="Image Description"),54 gr.Audio(label="Audio Description")55 ],56 title="VisionVoice Accessibility Assistant",57 description=(58 "Upload an image and receive an AI-generated description "59 "with text and spoken audio output to support accessibility."60 )61)62 63demo.launch()