Búsqueda por voz en Wikipedia usando Python

Todos los días, visitamos tantas aplicaciones, ya sean plataformas de mensajería como Messenger, Telegram o pedidos de productos en Amazon, Flipkart, o saber sobre el clima y la lista puede continuar. Y vemos que estos sitios web tienen su propio programa de software para iniciar conversaciones con seres humanos usando reglas o inteligencia artificial. Los usuarios interactúan con el programa de software a través de una interfaz conversacional a través de texto escrito o hablado. Esto puede ser referido como un asistente.

Ejemplo:

Entrada: qué es la codificación

Salida: What/If (estilizado como WHAT/ IF) es una miniserie de televisión web de suspenso estadounidense, creada por Mike Kelley, que se estrenó el 24 de mayo de 2019 en Netflix. La serie está protagonizada por Renée Zellweger, Jane Levy, Blake Jenner, Daniella Pineda, Keith Powers, Samantha Ware, Dave Annable, Saamer Usmani, John Clarence Stewart y Louis Herthum.

== Premisa ==
What/If es un thriller neo-noir que explora “los efectos dominó de lo que sucede cuando las personas aceptables comienzan a hacer cosas inaceptables.
Usuario:

Lo que necesitas saber ?

Se puede crear un asistente utilizando el procesamiento del lenguaje natural (NLP), uno de los campos más prometedores de la inteligencia artificial que utiliza lenguajes naturales para permitir las interacciones humanas con las máquinas.

Hay dos enfoques principales para la PNL:

  1. métodos basados ​​en reglas:
  2. Que sigan algunas reglas preespecificadas y respondan según esas reglas.

  3. métodos de estadística:
  4. es decir, métodos relacionados con el aprendizaje automático que aprenden por sí mismos según las entradas del usuario.

Y este artículo aprenderá cómo crear su propio asistente utilizando métodos estadísticos.

Para crear un asistente utilizaremos el lenguaje de programación Python, ya que cuenta con todos los módulos necesarios para construirlo. En segundo lugar, Python es fácil de entender, incluso si no tienes mucha experiencia con la programación.

Empecemos

Antes de entrar en el código real, debemos entender que este chatbot o asistente se basará en la voz, por lo que debemos importar los siguientes módulos.

  • pyttsx3:
  • Un paquete de python que admite motores comunes de texto a voz en Mac OS, Windows y Linux.

  • reconocimiento de voz:
  • Biblioteca para realizar el reconocimiento de voz, con soporte para varios motores y API, como CMU Sphinx, Microsoft Bing Voice Recognition, Google Cloud Speech API, etc.

  • Wolfram Alpha:
  • Biblioteca de soporte de Python para la inteligencia computacional WolframAlpha.

  • wikipedia:
  • La biblioteca de Python que facilita el acceso y el análisis de datos de Wikipedia.

Para instalar los módulos anteriores en su sistema, use lo siguiente:

pip install pyttsx3
pip install SpeechRecognition
pip install wolframalpha
pip install wikipedia

Creación de una cuenta de WolframAlpha

Dado que este chatbot utiliza la API de WolframAlpha para encontrar respuestas, el usuario debe crear una cuenta gratuita registrándose en . Siga los pasos necesarios para configurar una cuenta de estudiante que es gratuita y solo para uso personal. Genere su ID de aplicación y cópielo para futuras referencias.

Conceptos seguidos

  • Reconocimiento de voz:
  • El reconocimiento de voz es la capacidad de una máquina o programa para identificar palabras y frases en el lenguaje hablado y convertirlas a un formato legible por máquina.

  • TTS – texto a voz:
  • una forma de síntesis de voz que convierte texto en salida de voz hablada.

  • Integración del conocimiento computacional:
  • Integrando su bot con inteligencia de conocimiento computacional usando Wolfram|Alpha.

A continuación se muestra la implementación.

# Python package supporting common text-to-speech engines
import pyttsx3
  
# For understanding speech
import speech_recognition as sr
  
# For fetching the answers 
# to computational queries
import wolframalpha
  
# for fetching wikipedia articles
import wikipedia
  
  
# Function to search the query
# that is either entered or spoken
# by user
def search(query):
      
    # try is used for searching with wolframAlpha
    try:
          
        # Generate your App ID from WolframAlpha 
        app_id = "Your WolframAlpha App ID here"
        client = wolframalpha.Client(app_id)
        res = client.query(query)
        answer = next(res.results).text
        print(answer)
        SpeakText("Your answer is " + answer)
          
    # If the query cannot be searched using 
    # WolframAlpha then it is searched in
    # wikipedia
    except:
          
        query = query.split(' ') 
        query = " ".join(query[0:])
          
        SpeakText("I am searching for " + query)
        print(wikipedia.summary(query, sentences = 3))
        SpeakText(wikipedia.summary(query, 
                                      sentences = 3))
         
      
# Function to convert text to 
# speech 
def SpeakText(command): 
        
    # Initialize the engine 
    engine = pyttsx3.init() 
    engine.say(command)  
    engine.runAndWait()
  
      
# Driver's code
# input query from the user by 
# typing or by voice
query = input()
query = query.lower()
  
# if query is blank then user 
# is prompted to speak something.
if query == '': 
    r = sr.Recognizer()
  
    # uses the default microphone
    # as the source to record voice
    with sr.Microphone() as source:  
        print("Say Something ")
  
        # reduces the background disturbances
        # and noise for 2 seconds
        r.adjust_for_ambient_noise(source, 2)  
          
        # listening to source
        audio = r.listen(source)  
    try:
        speech = r.recognize_google(audio)
        search(speech)
  
    # Handling Exceptions if speech 
    # is not understood.
    except sr.UnknownValueError:
        print("Google Speech Recognition could not \
        understand audio")
  
    # Couldn't handle requests, occurs 
    # mainly because of network errors
    except sr.RequestError as e:  
        print("Could not request results from Google \
        Speech Recognition service;{0}".format(e))
else:
    search(query)
   

Producción:

python-assistant

Nota: También se genera la salida de voz del texto de salida.

Publicación traducida automáticamente

Artículo escrito por KanishkaLahori 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 *