Python | Convert image to text and then to speech - GeeksforGeeks

09 Sep, 2019
Our goal is to convert a given text image into a string of text, saving it to a file and to hear what is written in the image through audio.
For this, we need to import some Libraries
Pytesseract(Python-tesseract) : It is an optical character recognition (OCR) tool for python sponsored by google.pyttsx3 : It is an offline cross-platform Text-to-Speech libraryPython Imaging Library (PIL) : It adds image processing capabilities to your Python interpreterGoogletrans : It is a free python library that implements the Google Translate API.
Pytesseract(Python-tesseract) : It is an optical character recognition (OCR) tool for python sponsored by google.
pyttsx3 : It is an offline cross-platform Text-to-Speech library
Python Imaging Library (PIL) : It adds image processing capabilities to your Python interpreter
Googletrans : It is a free python library that implements the Google Translate API.
Examples:

Input : We Have an image with some text 

Output: THE TEXT FROM THE IMAGE IS EXTRACTED AND A VOICE WILL SPEAK THE TEXT
      

          This is the first line of
           this text example.

          This is the second line
           of the same text.

       Translated(src=en, dest=de, text=Dies ist die erste Zeile von

           Dieses Textbeispiel.

            Dies ist die zweite Zeile
            desselben Textes., pronunciation=None, extra_data="{'translat..."

Code : Python code to convert text to speech
# import the following libraries# will convert the image to text stringimport pytesseract        # adds image processing capabilitiesfrom PIL import Image       # converts the text to speech  import pyttsx3             #translates into the mentioned languagefrom googletrans import Translator         # opening an image from the source pathimg = Image.open('text1.png')       # describes image format in the outputprint(img)                          # path where the tesseract module is installedpytesseract.pytesseract.tesseract_cmd ='C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'   # converts the image to result and saves it into result variableresult = pytesseract.image_to_string(img)   # write text in a text file and save it to source path   with open('abc.txt',mode ='w') as file:                            file.write(result)                 print(result)                   p = Translator()                      # translates the text into german languagek = p.translate(result,dest='german')      print(k)engine = pyttsx3.init()  # an audio will be played which speaks the test if pyttsx3 recognizes itengine.say(k)                             engine.runAndWait()
NOTE : We can convert the text into any desired language. For Example Japanese, Russian, Hindi. But the only condition is that the googletrans should recognize the destination language. Also, pyttsx3 will speak only the languages which are recognized by it.
Machine Learning
Python
Machine Learning
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Introduction to Recurrent Neural Network
Support Vector Machine Algorithm
Intuition of Adam Optimizer
CNN | Introduction to Pooling Layer
Convolutional Neural Network (CNN) in Machine Learning
Read JSON file using Python
Adding new column to existing DataFrame in Pandas
Python map() function
How to get column names in Pandas dataframe