Integración con la API de Reconocimiento de Texto de Baidu AI

La plataforma de IA de Baidu ofrece una variedad de APIs, como reconocimiento facial, de texto y de voz, que facilitan la integración en aplicaciones. Para utilizar estos servicios, primero necesitas una cuenta de Baidu. Una vez registrado, accede a la plataforma de IA abierta de Baidu y crea una aplicación.

Dentro de la sección de reconocimiento de texto, es posible que debas iniciar sesión. Tras hacerlo, navega a tu consola, selecciona la opción de reconocimiento de texto y crea una nueva aplicación. Asigna un nombre y una descripción adecuados. Asegúrate de guardar los parámetros clave de la aplicación, ya que los necesitarás más adelante.

Reconocimiento General de Texto

Para comenzar, instala la biblioteca necesaria:


pip install baidu-aip

A continuación, se presenta un ejemplo de código que demuestra cómo realizar el reocnocimiento de texto en imágenes locales y remotas:


from aip import AipOcr

# Credenciales de la aplicación de Baidu AI
APP_ID = 'TU_APP_ID'
API_KEY = 'TU_API_KEY'
SECRET_KEY = 'TU_SECRET_KEY'

def inicializar_servicio_ocr():
    """ Inicializa el cliente del servicio de OCR. """
    cliente = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    return cliente

def leer_archivo_imagen(ruta_archivo):
    """ Lee el contenido binario de un archivo de imagen. """
    with open(ruta_archivo, 'rb') as archivo:
        return archivo.read()

if __name__ == '__main__':
    cliente_ocr = inicializar_servicio_ocr()
    
    # Reconocimiento en imagen local
    ruta_imagen_local = 'ruta/a/tu/imagen.png'
    contenido_imagen = leer_archivo_imagen(ruta_imagen_local)
    
    resultado_general = cliente_ocr.basicGeneral(contenido_imagen)
    resultado_preciso = cliente_ocr.basicAccurate(contenido_imagen)
    
    # Reconocimiento en imagen remota (URL)
    url_imagen_remota = 'https://ejemplo.com/imagen_remota.jpg'
    resultado_url = cliente_ocr.basicGeneralUrl(url_imagen_remota)
    
    print("Resultado del reconocimiento general:")
    print(resultado_general)
    
    print("\nTexto extraído del reconocimiento general:")
    if 'words_result' in resultado_general:
        for resultado in resultado_general['words_result']:
            print(resultado['words'])
            
    print("\nResultado del reconocimiento de alta precisión:")
    print(resultado_preciso)

    print("\nResultado del reconocimiento desde URL:")
    print(resultado_url)

Reconocimiento de Matrículas de Vehículos

Para el reconocimiento específico de matrículas, utiliza la siguiente función:


from aip import AipOcr

# Credenciales de la aplicación de Baidu AI
APP_ID = 'TU_APP_ID'
API_KEY = 'TU_API_KEY'
SECRET_KEY = 'TU_SECRET_KEY'

def inicializar_servicio_ocr():
    """ Inicializa el cliente del servicio de OCR. """
    cliente = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    return cliente

def leer_archivo_imagen(ruta_archivo):
    """ Lee el contenido binario de un archivo de imagen. """
    with open(ruta_archivo, 'rb') as archivo:
        return archivo.read()

if __name__ == '__main__':
    cliente_ocr = inicializar_servicio_ocr()
    
    ruta_imagen_matricula = 'ruta/a/tu/imagen_matricula.jpg'
    contenido_imagen_matricula = leer_archivo_imagen(ruta_imagen_matricula)
    
    # Opciones para el reconocimiento de matrículas
    opciones_matricula = {
        'multi_detect': True  # Permite detectar múltiples matrículas en una sola imagen
    }
    
    resultado_matricula = cliente_ocr.licensePlate(contenido_imagen_matricula, opciones_matricula)
    
    print("Resultado del reconocimiento de matrículas:")
    # print(resultado_matricula) # Descomentar para ver el resultado completo
    
    if 'words_result' in resultado_matricula:
        for item in resultado_matricula['words_result']:
            print(f"Matrícula detectada: {item['number']}")

Traducción de Inglés a Chino con Cuatro Líneas de Código

La traducción de texto se puede lograr fácilmente con la biblioteca translate. Instálala primero:


pip install translate

Ejemplo de trdaucción:


from translate import Translator

# Configura el traductor para traducir de inglés a chino
traductor_en_a_zh = Translator(to_lang='chinese', from_lang='english')

texto_a_traducir = 'good morning'
traduccion = traductor_en_a_zh.translate(texto_a_traducir)

print(f"Original: {texto_a_traducir}")
print(f"Traducción: {traduccion}")

Traducción de Inglés a Chino con Reproducción Automática de Audio

Para combinar traducción y síntesis de voz, necesitarás las bibilotecas baidu-aip y translate. Asegúrate de tenerlas instaladas:


pip install baidu-aip translate

El siguiente código traduce un texto del inglés al chino y luego utiliza la API de voz de Baidu para reproducir la traducción:


import os
import time
from translate import Translator
from aip import AipSpeech

# Credenciales para la API de Síntesis de Voz de Baidu AI
APP_ID_SPEECH = 'TU_APP_ID_SPEECH'
API_KEY_SPEECH = 'TU_API_KEY_SPEECH'
SECRET_KEY_SPEECH = 'TU_SECRET_KEY_SPEECH'

def inicializar_servicio_sintesis_voz():
    """ Inicializa el cliente del servicio de síntesis de voz. """
    cliente_voz = AipSpeech(APP_ID_SPEECH, API_KEY_SPEECH, SECRET_KEY_SPEECH)
    return cliente_voz

if __name__ == '__main__':
    cliente_voz = inicializar_servicio_sintesis_voz()
    
    # Configura el traductor para traducir de chino a inglés (o el idioma de origen deseado)
    traductor = Translator(from_lang='chinese', to_lang='english')
    
    texto_original = 'hello, how do I get to West Street?'
    texto_traducido_a_ingles = traductor.translate(texto_original)
    
    # Parámetros para la síntesis de voz
    opciones_sintesis = {
        'vol': 5,  # Volumen (0-15)
        'pit': 5,  # Tono (0-9)
        'spd': 4,  # Velocidad (0-9)
        'per': 0,  # Voz: 0=femenina, 1=masculina, 3=emocional (personaje A), 4=emocional (personaje B)
    }
    
    # Sintetiza la voz del texto traducido
    resultado_sintesis = cliente_voz.synthesis(texto_traducido_a_ingles, 'en', 1, opciones_sintesis)
    
    # Guarda el audio si la síntesis fue exitosa
    if not isinstance(resultado_sintesis, dict):
        ruta_archivo_audio = 'audio_traducido.mp3'
        with open(ruta_archivo_audio, 'wb') as f:
            f.write(resultado_sintesis)
        
        print(f"Texto original: {texto_original}")
        print(f"Texto traducido a inglés: {texto_traducido_a_ingles}")
        print(f"Audio guardado en: {ruta_archivo_audio}")
        
        # Reproduce el archivo de audio
        os.system(f'start {ruta_archivo_audio}') # En Windows, 'start' funciona para reproducir
        
        # Espera a que termine la reproducción y cierra el reproductor (ejemplo básico para Windows Media Player)
        time.sleep(5) # Ajusta este tiempo según la duración del audio
        # os.system('taskkill /F /IM wmplayer.exe') # Cierra el reproductor si es necesario (puede no funcionar siempre)
    else:
        print("Error durante la síntesis de voz:")
        print(resultado_sintesis)

Etiquetas: Baidu AI OCR Reconocimiento de Texto Reconocimiento de Matrículas Traducción

Publicado el 7-29 22:27