image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Carlos CGS
Carlos CGS19/05/2024 10:53
Compartilhe

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

  • #Python

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.