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:
- Reconhecimento de Fala (Speech Recognition): Permite que os computadores entendam e transcrevam a fala humana em texto.
- Análise de Sentimento: Determina o sentimento expresso em textos, como positivo, negativo ou neutro.
- Extração de Informações: Identifica e extrai informações relevantes de textos, como entidades nomeadas, datas, números, etc.
- Tradução Automática: Traduz textos de uma língua para outra.
- Geração de Texto: Produz textos automaticamente com base em um conjunto de regras ou em modelos estatísticos.
- Sumarização de Texto: Resume textos longos em uma versão mais curta e informativa.
- 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:
- Reconhecimento de Voz em Tempo Real: Captura a entrada de áudio de microfones e a transcreve em tempo real.
- 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.
- Suporte a Múltiplos Idiomas: Reconhece e transcreve fala em vários idiomas.
- 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:
- Gravação de Áudio: Captura áudio de microfones e outras fontes de entrada de áudio.
- Reprodução de Áudio: Reproduz arquivos de áudio ou fluxos de áudio em tempo real.
- Processamento de Áudio: Suporta diversas operações de processamento de áudio, como filtragem, análise espectral e manipulação de sinais.
- Suporte a Diversos Formatos: Permite gravar e reproduzir áudio em diferentes formatos, como WAV, MP3 e FLAC.
- 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:
- Síntese de Fala: Converte texto em fala de maneira rápida e eficiente.
- Suporte a Múltiplas Plataformas: Funciona em diversas plataformas, incluindo Windows, macOS e Linux.
- Controle de Voz: Permite ajustar parâmetros como velocidade de fala, volume e voz utilizada.
- 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.
- 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!
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 LinkedIn: https://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