Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from PIL import Image | |
| import os | |
| from ocr_tamil.ocr import OCR | |
| from deep_translator import GoogleTranslator | |
| # Load OCR models | |
| ocr_detect = OCR(detect=True, enable_cuda=False) | |
| ocr_recognize = OCR(detect=False, enable_cuda=False) | |
| # Language code mapping | |
| lang_codes = { | |
| 'English': 'en', | |
| 'Kannada': 'kn', | |
| 'Tamil': 'ta', | |
| 'Telugu': 'te', | |
| 'Hindi': 'hi', | |
| 'Malayalam': 'ml', | |
| 'Marathi': 'mr', | |
| 'Bengali': 'bn', | |
| 'Gujarati': 'gu', | |
| 'Urdu': 'ur', | |
| } | |
| # Prediction function | |
| def predict(image_path, target_language): | |
| try: | |
| texts = ocr_detect.predict(image_path) | |
| texts = [" ".join(texts[0])] | |
| detected_text = texts[0] | |
| translated_text = GoogleTranslator(source='auto', target=target_language).translate(detected_text) | |
| return detected_text, translated_text | |
| except Exception as e: | |
| return f"Error: {str(e)}", "" | |
| # Streamlit UI | |
| st.title("Tamil OCR + Translation") | |
| uploaded_file = st.file_uploader("Upload a Tamil handwritten image", type=["jpg", "jpeg", "png"]) | |
| target_lang_name = st.selectbox("Target Language", list(lang_codes.keys())) | |
| if uploaded_file: | |
| image = Image.open(uploaded_file) | |
| st.image(image, caption="Uploaded Image", use_column_width=True) | |
| image_path = "uploaded_image.jpg" | |
| image.save(image_path) | |
| if st.button("Submit"): | |
| detected, translated = predict(image_path, lang_codes[target_lang_name]) | |
| st.success("Detected Text:") | |
| st.write(detected) | |
| st.success("Translated Text:") | |
| st.write(translated) | |