import tkinter as tk,
from tkinter import filedialog,
messagebox
from PIL import image
import pytesseract
import pyttsx3
#initialize TTS engine
engine=pyttsx3.init()
def extract_text_from_image(image_path):
try:
image=image.open(image_path)
text=pytesseract.image_to_string(image)
return text
except Exception as e:
return str(e)
def speak_text(text):
engine.say(text)
engine.runAndWait()
def open_image():
file_path=filedialog.askopenfilename(filetypes=[("image files","*.jpg*.jpeg*.png*.bmp*.tiff")])
if file_path:
extected_text=extract_text_from_image(file_path)
text_box
.delete
("1.0",tk
.END) text_box
.insert
(tk
.END,extracted_text
) speak_text(extracted_text)
#GUI Setup
app=tk.TK()
app.title("image to Speech Converter")
app.geometry("500*400")
btn=tk.Button(app,text="Select image",command=open_image,
font=("Arial",14)
text_box=tk.Text(app,wrap=tk.WORD,font=(Arial",12))
text_box.pack(expand=True,fill=tk.BOTH,padx=10,pady=10)
app.mainloop()
aW1wb3J0IHRraW50ZXIgYXMgdGssIApmcm9tIHRraW50ZXIgaW1wb3J0IGZpbGVkaWFsb2csCm1lc3NhZ2Vib3gKZnJvbSBQSUwgaW1wb3J0IGltYWdlCmltcG9ydCBweXRlc3NlcmFjdAppbXBvcnQgcHl0dHN4MwojaW5pdGlhbGl6ZSBUVFMgZW5naW5lCmVuZ2luZT1weXR0c3gzLmluaXQoKQpkZWYgZXh0cmFjdF90ZXh0X2Zyb21faW1hZ2UoaW1hZ2VfcGF0aCk6CiAgICB0cnk6CiAgICAgICAgaW1hZ2U9aW1hZ2Uub3BlbihpbWFnZV9wYXRoKQogICAgICAgIHRleHQ9cHl0ZXNzZXJhY3QuaW1hZ2VfdG9fc3RyaW5nKGltYWdlKQogICAgICAgIHJldHVybiB0ZXh0CiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgcmV0dXJuIHN0cihlKQogICAgZGVmIHNwZWFrX3RleHQodGV4dCk6CiAgICAgICAgZW5naW5lLnNheSh0ZXh0KQogICAgICAgIGVuZ2luZS5ydW5BbmRXYWl0KCkKICAgICAgICBkZWYgb3Blbl9pbWFnZSgpOgogICAgICAgICAgICBmaWxlX3BhdGg9ZmlsZWRpYWxvZy5hc2tvcGVuZmlsZW5hbWUoZmlsZXR5cGVzPVsoImltYWdlIGZpbGVzIiwiKi5qcGcqLmpwZWcqLnBuZyouYm1wKi50aWZmIildKQogICAgICAgICAgICBpZiBmaWxlX3BhdGg6CiAgICAgICAgICAgICAgICBleHRlY3RlZF90ZXh0PWV4dHJhY3RfdGV4dF9mcm9tX2ltYWdlKGZpbGVfcGF0aCkKICAgICAgICAgICAgICAgIHRleHRfYm94LmRlbGV0ZSgiMS4wIix0ay5FTkQpCiAgICAgICAgICAgICAgICB0ZXh0X2JveC5pbnNlcnQodGsuRU5ELGV4dHJhY3RlZF90ZXh0KQogICAgICAgICAgICAgICAgc3BlYWtfdGV4dChleHRyYWN0ZWRfdGV4dCkKICAgICAgICAgICAgICAgICNHVUkgU2V0dXAKICAgICAgICAgICAgICAgIGFwcD10ay5USygpCiAgICAgICAgICAgICAgICBhcHAudGl0bGUoImltYWdlIHRvIFNwZWVjaCBDb252ZXJ0ZXIiKQogICAgICAgICAgICAgICAgYXBwLmdlb21ldHJ5KCI1MDAqNDAwIikKICAgICAgICAgICAgICAgIGJ0bj10ay5CdXR0b24oYXBwLHRleHQ9IlNlbGVjdCBpbWFnZSIsY29tbWFuZD1vcGVuX2ltYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250PSgiQXJpYWwiLDE0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidG4ucGFjayhwYWR5PTIwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0X2JveD10ay5UZXh0KGFwcCx3cmFwPXRrLldPUkQsZm9udD0oQXJpYWwiLDEyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfYm94LnBhY2soZXhwYW5kPVRydWUsZmlsbD10ay5CT1RILHBhZHg9MTAscGFkeT0xMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcC5tYWlubG9vcCgpCg==
import tkinter as tk,
from tkinter import filedialog,
messagebox
from PIL import image
import pytesseract
import pyttsx3
#initialize TTS engine
engine=pyttsx3.init()
def extract_text_from_image(image_path):
try:
image=image.open(image_path)
text=pytesseract.image_to_string(image)
return text
except Exception as e:
return str(e)
def speak_text(text):
engine.say(text)
engine.runAndWait()
def open_image():
file_path=filedialog.askopenfilename(filetypes=[("image files","*.jpg*.jpeg*.png*.bmp*.tiff")])
if file_path:
extected_text=extract_text_from_image(file_path)
text_box.delete("1.0",tk.END)
text_box.insert(tk.END,extracted_text)
speak_text(extracted_text)
#GUI Setup
app=tk.TK()
app.title("image to Speech Converter")
app.geometry("500*400")
btn=tk.Button(app,text="Select image",command=open_image,
font=("Arial",14)
btn.pack(pady=20)
text_box=tk.Text(app,wrap=tk.WORD,font=(Arial",12))
text_box.pack(expand=True,fill=tk.BOTH,padx=10,pady=10)
app.mainloop()