Article image
Carlos Soares
Carlos Soares19/05/2024 10:53
Compartilhe

Processamento de Linguagem Natural (NLP) - Recriando J.A.R.V.I.S.

    O que é Processamento de Linguagem Natural (NLP)?

    O Processamento de Linguagem Natural (NLP) é uma subárea da inteligência artificial e da linguística computacional que estuda a interação entre computadores e seres humanos por meio da linguagem natural. Seu objetivo é permitir que computadores compreendam, interpretem e gerem linguagem humana de maneira inteligente.

    Funcionalidades do NLP:

    1. Reconhecimento de Fala (Speech Recognition): Permite que os computadores entendam e transcrevam a fala humana em texto.
    2. Análise de Sentimento: Determina o sentimento expresso em textos, como positivo, negativo ou neutro.
    3. Extração de Informações: Identifica e extrai informações relevantes de textos, como entidades nomeadas, datas, números, etc.
    4. Tradução Automática: Traduz textos de uma língua para outra.
    5. Geração de Texto: Produz textos automaticamente com base em um conjunto de regras ou em modelos estatísticos.
    6. Sumarização de Texto: Resume textos longos em uma versão mais curta e informativa.

    image

    - Biblioteca SpeechRecognition

    A biblioteca SpeechRecognition é uma ferramenta poderosa para realizar reconhecimento de fala em Python. Ela permite que os desenvolvedores capturem áudio de microfones, decodifiquem e transcrevam a fala em texto com grande precisão.

    Funcionalidades Principais:

    1. Reconhecimento de Voz em Tempo Real: Captura a entrada de áudio de microfones e a transcreve em tempo real.
    2. Suporte a Diversos Serviços de Reconhecimento de Fala: Integração com serviços populares de reconhecimento de fala, como Google Speech Recognition, IBM Speech to Text, entre outros.
    3. Suporte a Múltiplos Idiomas: Reconhece e transcreve fala em vários idiomas.
    4. Fácil Integração: Interface simples e intuitiva para integrar o reconhecimento de fala em projetos Python.

    Instalação:

    Para instalar a biblioteca SpeechRecognition, basta utilizar o pip, o gerenciador de pacotes do Python:

    pip install SpeechRecognition 
    

    - PyAudio

    PyAudio é uma biblioteca Python que fornece uma interface fácil de usar para a manipulação de fluxos de áudio. Com o PyAudio, os desenvolvedores podem gravar, reproduzir e processar áudio em tempo real de maneira eficiente. Esta biblioteca é especialmente útil para aplicações que envolvem processamento de sinais de áudio, como reconhecimento de fala, processamento de voz e análise de áudio.

    Funcionalidades Principais:

    1. Gravação de Áudio: Captura áudio de microfones e outras fontes de entrada de áudio.
    2. Reprodução de Áudio: Reproduz arquivos de áudio ou fluxos de áudio em tempo real.
    3. Processamento de Áudio: Suporta diversas operações de processamento de áudio, como filtragem, análise espectral e manipulação de sinais.
    4. Suporte a Diversos Formatos: Permite gravar e reproduzir áudio em diferentes formatos, como WAV, MP3 e FLAC.
    5. Baixa Latência: Possui suporte para baixa latência, garantindo uma resposta rápida em aplicações sensíveis ao tempo, como transmissão de áudio em tempo real.

    Instalação:

    Para instalar o PyAudio, é necessário ter o pacote portaudio pré-instalado no sistema. Em seguida, pode-se instalar o PyAudio utilizando o pip:

    pip install pyaudio 
    

    - Pyttsx3

    pyttsx3 é uma biblioteca de síntese de fala em Python que fornece uma interface simples para converter texto em fala. Com o pyttsx3, os desenvolvedores podem criar aplicativos que falam em várias vozes e em diferentes idiomas. Esta biblioteca é amplamente utilizada em aplicações que envolvem assistentes virtuais, aplicativos de acessibilidade e automação de tarefas baseadas em voz.

    Funcionalidades Principais:

    1. Síntese de Fala: Converte texto em fala de maneira rápida e eficiente.
    2. Suporte a Múltiplas Plataformas: Funciona em diversas plataformas, incluindo Windows, macOS e Linux.
    3. Controle de Voz: Permite ajustar parâmetros como velocidade de fala, volume e voz utilizada.
    4. Suporte a Várias Linguagens e Vozez: Oferece suporte a várias línguas e vozes, permitindo personalização conforme a preferência do usuário.
    5. Integração Simples: Interface fácil de usar para integrar a síntese de fala em projetos Python.

    Instalação:

    Para instalar o pyttsx3, basta utilizar o pip:

    pip install pyttsx3
    

    Exemplo de Uso:

    Este é um código Python que reconhece comandos de voz definidos pelo desenvolvedor que executam tarefas dentro de seus sistema operacional, como abrir um navegador, abrir o excel, word, paint, bloco de notas e todas as outras funcionalidades disponíveis no windows.

    Batizei este aplicativo como Jarvis, que é a IA assistente do Homem de Ferro, e para chamar seus comandos, o usuário deve dizer jarvis e o nome do comando.

    Neste código eu utilizei essas três bibliotecas e a partir de agora vamos destrinchando o código parte a parte para que futuramente você possa baixar este código e fazer os upgrades necessário para que este código se torne um dia tão boa quanto o Jarvis a IA do Homem de Ferro!

    image

    Para executar este algoritmo, é necessário instalar as seguintes bibliotecas Python:

    pip install speechRecognition 
    pip install pyaudio 
    pip install pyttsx3 
    

    Importações

    import speech_recognition as sr 
    import os import pyttsx3 
    

    Inicialização do Engine de Síntese de Fala

    O engine de síntese de fala é inicializado usando a biblioteca pyttsx3. Isso permite que o computador fale com o usuário.

    engine = pyttsx3.init() 
    

    Função para Falar

    Esta função recebe um texto como entrada e faz o computador falar esse texto.

    def falar(texto):
      engine.say(texto)
      engine.runAndWait()
    

    Função de Apresentação

    Uma função simples para apresentar o assistente ao usuário.

    def apresentacao():
      print("Iniciando o Sistema. Sistema 100% carregado e operando. Me chamo Jarvis.")
      falar("Iniciando o Sistema. Sistema 100% carregado e operando. Me chamo Jarvis.")
    

    Função para Ouvir e Reconhecer Fala

    Esta função habilita o microfone do usuário, aguarda o comando de voz e o reconhece usando a API do Google Speech Recognition (speech_recognition). Dependendo do comando reconhecido, o assistente executa uma ação correspondente, como abrir um aplicativo.

    def ouvir_microfone():
      microfone = sr.Recognizer()
    
      with sr.Microphone() as source:
          microfone.adjust_for_ambient_noise(source)
          print("Como posso te ajudar agora?")
          falar("Como posso te ajudar agora?")
          audio = microfone.listen(source)
    
      try:
          frase = microfone.recognize_google(audio, language='pt-BR')
    
          if "Jarvis navegador" in frase:
              os.system("start chrome.exe")
              falar("Abrindo o navegador")
              return False
          elif "Jarvis calculadora" in frase:
              os.system("start calc.exe")
              falar("Abrindo a calculadora")
              return False
          elif "Jarvis Paint" in frase:
              os.system("start mspaint.exe")
              falar("Abrindo o Paint")
              return False
          elif "Jarvis bloco de notas" in frase:
              os.system("start notepad.exe")
              falar("Abrindo o bloco de notas")
              return False
          elif "Jarvis Excel" in frase:
              os.system("start Excel.exe")
              falar("Abrindo o Excel")
              return False
          elif "Jarvis Word" in frase:
              os.system("start winword.exe")
              falar("Abrindo o Word")
              return False
          elif "Jarvis acessar CMD" in frase:
              os.system("start cmd.exe")
              falar("Abrindo o prompt de comando")
              return False
          elif "Jarvis desligar" in frase:
              falar("Desligando o sistema. Até logo.")
              os.system("exit")
              return True
          else:
              falar(f"O Comando {frase} não foi reconhecido, por favor tente novamente.")
              return False
    
      except sr.UnknownValueError:
          print("Não entendi, repita o que deseja.")
    

    Inicialização e Execução

    A função de apresentação é chamada para informar ao usuário que o assistente está pronto para ser utilizado. Em seguida, um loop infinito é iniciado para ouvir continuamente os comandos do usuário.

    apresentacao()
    while True:
      if ouvir_microfone():
          break
    

    Para finalizar, espero ter contribuído com a sua jornada e ter inspirado alguns a prosseguirem em sua jornada como programadores, pois quando criamos códigos que realmente fazem sentido em nossas vidas, parece que a bateria é totalmente recarregada e continuamos firmes em nossas jornada.

    Obs.: Já estou trabalhando em um código que junta esse primeiro código em uma IA e consegue me responder qualquer tipo de questão, sendo bem parecida com a siri ou alexa, porém seu nome é Jarvis. rs

    Vamos Disseminar os Conhecimentos e Transbordar Tudo o que Aprendemos!

    

    Segue o Link do meu LinkedInhttps://www.linkedin.com/in/carlos-cgs/

    Segue o link do meu GitHub com todo o código fonte deste projeto: https://github.com/Carlos-CGS/ProjetosPython/tree/main/Jarvis_Exemplo_PLN

    Compartilhe
    Comentários (1)

    DA

    Daniel Andrade - 19/05/2024 11:16

    Show de Bola Carlos.

    Estou me aventurando na linguagem Python e ver o que é possível realizar com esta linguagem de programação me deixa muito animado.

    Parabéns pelo trabalho.