Todos os dias, visitamos tantos aplicativos, seja plataformas de mensagens como Messenger, Telegram ou pedidos de produtos na Amazon, Flipkart, ou saber sobre o tempo e a lista pode continuar. E vemos que esses sites possuem seu próprio programa de software para iniciar conversas com seres humanos por meio de regras ou inteligência artificial. Os usuários interagem com o programa de software por meio de uma interface de conversação por meio de texto escrito ou falado. Isso pode ser referido como um assistente.

Exemplo:

Entrada: o que é codificação

Resultado: What / If (estilizado como WHAT / IF) é uma minissérie americana de suspense para televisão na web, criada por Mike Kelley, que estreou em 24 de maio de 2019, no Netflix. A série é estrelada por Renée Zellweger, Jane Levy, Blake Jenner, Daniella Pineda, Keith Powers, Samantha Ware, Dave Annable, Saamer Usmani, John Clarence Stewart e Louis Herthum.

== Premissa ==
What / If é um thriller neo-noir que explora “os efeitos em cascata do que acontece quando pessoas aceitáveis ​​começam a fazer coisas inaceitáveis.
Do utilizador:



O que você precisa saber ?

Um assistente pode ser feito usando o Processamento de Linguagem Natural (PNL), um dos campos mais promissores da inteligência artificial que usa linguagens naturais para permitir as interações humanas com as máquinas.

Existem duas abordagens principais para a PNL:

  1. métodos baseados em regras:
  2. Que seguem algumas regras pré-especificadas e respondem de acordo com essas regras.
  3. Métodos estatísticos:
  4. ou seja, métodos relacionados ao machine learning que aprendem por conta própria de acordo com as entradas do usuário.

E este artigo aprenderá como criar seu próprio assistente usando métodos estatísticos.

Para criar um assistente, usaremos a linguagem de programação Python, pois contém todos os módulos necessários para sua construção. Em segundo lugar, Python é fácil de entender, mesmo se você não tiver muita experiência em programação.

Vamos começar

Antes de entrar no código real, precisamos entender que este chatbot ou assistente será baseado em voz, então precisamos importar os módulos a seguir.



  • pyttsx3:
  • Um pacote python que oferece suporte a motores de texto para voz comuns no Mac OS, Windows e Linux.
  • reconhecimento de fala:
  • Biblioteca para realização de reconhecimento de fala, com suporte para diversos engines e APIs, como CMU Sphinx, Microsoft Bing Voice Recognition, Google Cloud Speech API etc.
  • wolframalpha:
  • Biblioteca de suporte do Python para inteligência computacional WolframAlpha.
  • wikipedia:
  • Biblioteca Python que facilita o acesso e a análise de dados da Wikipedia.

Para instalar os módulos acima em seu sistema, use o seguinte:

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

Criação de uma conta WolframAlpha

Visto que este chatbot usa WolframAlpha API para encontrar respostas, o usuário deve criar uma conta gratuita inscrevendo-se em . Siga as etapas necessárias para configurar uma conta de aluno que seja gratuita e apenas para uso pessoal. Gere seu app-id e copie-o para referência futura.

Conceitos Seguidos

  • Reconhecimento de fala:
  • O reconhecimento de voz é a capacidade de uma máquina ou programa de identificar palavras e frases na linguagem falada e convertê-las em um formato legível por máquina.
  • TTS - texto para fala:
  • uma forma de síntese de voz que converte texto em saída de voz falada.
  • Integração de conhecimento computacional:
  • Integrando seu bot com inteligência de conhecimento computacional usando Wolfram | Alpha.

Abaixo está a implementação.

import pyttsx3 
import speech_recognition as sr 
import wolframalpha 
import wikipedia 
  
  
def search(query): 
      
    
    try: 
        
        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) 
          
    
    
    
    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)) 
         
      
def SpeakText(command):  
        
    
    engine = pyttsx3.init()  
    engine.say(command)   
    engine.runAndWait() 
  
      
query = input() 
query = query.lower() 
if query == '':  
    r = sr.Recognizer() 
  
    
    
    with sr.Microphone() as source:   
        print("Say Something ") 
      r.adjust_for_ambient_noise(source, 2)   
        
        audio = r.listen(source)   
    try: 
        speech = r.recognize_google(audio) 
        search(speech) 
  
    
    
    except sr.UnknownValueError: 
        print("Google Speech Recognition could not \ 
        understand audio") 
  
    
    
    except sr.RequestError as e:   
        print("Could not request results from Google \ 
        Speech Recognition service;{0}".format(e)) 
else: 
    search(query) 
   

Resultado:

assistente python

Nota: A saída de voz do texto de saída também é gerada.