Desarrollo de un Chatbot en Python con Síntesis de Voz y Lectura de Archivos

Informática3,12 KB

Implementación de un Asistente de Voz en Python

A continuación se presenta el código fuente en Python para implementar un asistente conversacional básico que utiliza la biblioteca pyttsx3 para la síntesis de voz, además de la lectura de archivos de texto externo para gestionar saludos, despedidas y respuestas interactivas.

Código Fuente del Chatbot

import random as rd
import pyttsx3

def llenar_lista(nombre):
    file = open(nombre, "r")
    listar = file.readlines()
    file.close()
    tmp = []
    for s in listar:
        sal = s.strip("\n")
        tmp.append(sal)
    listar = tmp
    return listar

saludos = []
saludos = llenar_lista("saludos.txt")
saludos = ["hi", 'hola', 'habla', 'holas', 'que tal', 'no tengo billete', 'que onda', 'holis', 'holiwis']
despedida = ['chao', 'bye', 'byes', 'hasta luego', 'hay los vidrios', 'topamos', 'hasta la vista baby', 'hablamos', 'posi', 'me la saco']
seguir = ['Y que mas ', 'Cuentame que deseas saber ', 'Que bien, que mas has hecho ?', 'continua', 'chuzo, en serio', 'mmm, en verdad', 'ya y?', 'prosigue']
articulos = ["y", "la", "las", "un", "en", "unos", "unas", "los", "lo", "el", "ellos", "eso", "esas", "esa", "esos", "de", "es"]
noentiendo = ["que hablas?", "explicate mejor", "queeeeeeeee?", "estas drogado, preguntame otra cosa", "habla bien flaco", "que tiro?"]

def Restaurant(lugar):
    if lugar == "cercano":
        print("Si  y son TELEPIZZA, KFC, CHOP CHOPS, MENESTRAS DEL NEGRO")
        engine.say("Si  y son TELEPIZZA, KFC, CHOP CHOPS, MENESTRAS DEL NEGRO")
        engine.runAndWait()
    elif lugar == "lejano":
        print("Si y son MC DONALD, WENDY'S, PIZZA ADICTA, BURGUER KING")
        engine.say("Si y son MC DONALD, WENDY'S, PIZZA ADICTA, BURGUER KING")
        engine.runAndWait()
    else:
        print("especifica lugar lejano o cercano")

engine = pyttsx3.init()
# engine.setProperty('voice', "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-MX_SABINA_11.0")
engine.setProperty('voice', "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-MX_SABINA_11.0")
engine.setProperty('rate', engine.getProperty('rate') - 10)

def hablar(engine, texto):
    engine.say(texto)
    engine.runAndWait()

hablar(engine, "Escriba su nombre")
nombre = raw_input("Escriba su nombre: ")
fin = 0
pregunta = 0

hablar(engine, "Bienvenido al chat " + nombre + " ")
a = raw_input("Bienvenido al chat " + nombre + " ")

while fin == 0:
    a = a.lower()

Características Principales del Script

  • Lectura de Archivos: La función llenar_lista permite cargar datos externos desde un archivo de texto como saludos.txt.
  • Síntesis de Voz: Configuración del motor pyttsx3 para reproducir respuestas en audio utilizando voces predeterminadas del sistema operativo.
  • Estructuras de Control: Uso de bucles while y condicionales if-elif-else para gestionar el flujo de la conversación y las recomendaciones de restaurantes.

Descargar

PDF Word HTML