Python | Convertir imagen a texto y luego a voz

Nuestro objetivo es convertir una imagen de texto dada en una string de texto, guardarla en un archivo y escuchar lo que está escrito en la imagen a través del audio.

Para esto, necesitamos importar algunas Bibliotecas

  1. Pytesseract (Python-tesseract): es una herramienta de reconocimiento óptico de caracteres (OCR) para Python patrocinada por Google.
  2. pyttsx3: es una biblioteca de texto a voz multiplataforma fuera de línea
  3. Biblioteca de imágenes de Python (PIL): agrega capacidades de procesamiento de imágenes a su intérprete de Python
  4. Googletrans: es una biblioteca gratuita de python que implementa la API de Google Translate.

Ejemplos:


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..."

Código: código de Python para convertir texto a voz

# import the following libraries
# will convert the image to text string
import pytesseract      
  
# adds image processing capabilities
from PIL import Image    
  
 # converts the text to speech  
import pyttsx3           
  
#translates into the mentioned language
from googletrans import Translator      
  
 # opening an image from the source path
img = Image.open('text1.png')     
  
# describes image format in the output
print(img)                          
# path where the tesseract module is installed
pytesseract.pytesseract.tesseract_cmd ='C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'   
# converts the image to result and saves it into result variable
result = 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 language
k = p.translate(result,dest='german')      
print(k)
engine = pyttsx3.init()
  
# an audio will be played which speaks the test if pyttsx3 recognizes it
engine.say(k)                             
engine.runAndWait()

NOTA: Podemos convertir el texto a cualquier idioma deseado. Por ejemplo japonés, ruso, hindi. Pero la única condición es que googletrans reconozca el idioma de destino. Además, pyttsx3 solo hablará los idiomas que reconoce.

Publicación traducida automáticamente

Artículo escrito por KaranGupta5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *