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)