Uma assistente virtual em pequena escala estilo "Google Assistant¨, "Siri" e "Alexa".
Esse projeto será meu TCC, no qual pretendo implementar sistemas de busca por voz, controle de dispositivos físicos e muito mais!
- SpeechRecognition - Para transcrição de audio em texto
- PyAudio - Para manipulação de áudio/dispositivos de áudio
- gTTS - Para geração de audio para resposta
- Playsound - Para reproduzir a voz da AI
- NLTK - Para processamento de linguagem natural
- OpenAi - Para perguntas a inteligência GPT-3 da OpenAI
Para rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu .env (que podem ser encontradas no arquivo .env.example
)
OPENAI_SECRET_KEY
OPENAI_ORGANIZATION_ID
Para rodar o projeto, você deve ter o Python 3.10+ instalado em sua maquina! Para verificar se o Python está instalado e qual é a versão instalada, use o comando python -V
.
Também é necessário você criar um arquivo chamado database.db
, que é um banco SQLite para o gerenciamento dos eventos
Primeiramente, clone o projeto.
git clone git@github.com:vmarinho22/kelly-assistant.git
Entre no diretório do projeto.
cd kelly-assistant
Instale o pipenv (O pipenv é um gerenciador de dependências do Python).
pip install pipenv
Após a instalação do pipenv, inicie o ambiente virtual do mesmo.
pipenv shell
Então, instale as dependências do projeto.
pipenv install --all
Por fim, execute o arquivo main.py
.
python main.py
Pronto! Agora a Kelly Assistant está rodando e escutando seus comandos!
Comando | Descrição | Exemplo de voz |
---|---|---|
hora |
Comando voltado para receber o horário atual | "Que horas são?" |
data |
Comando voltado para receber a data atual | "Que dia é hoje?" |
temperatura |
Comando voltado para receber a temperatura atual | "Qual a temperatura atual?" |
* |
Caso não seja encontrado nenhum acima, a AI irá perguntar a API da OpenAI e trará a resposta (similar ao ChatGPT) | "Por que os pássaros voam?" |
Novos comandos serão adicionados ao decorrer do desenvolvimento desse projeto(inclusive, caso tenha sugestões, mande em uma issue ou PR 😊 )
Nesse projeto utilizamos o Pytest
para criar nossos testes unitários, onde em cada pasta você encontrará uma pasta /tests
, e dentro dela estará cada teste referente a pasta pai!
Para rodar os testes primeiro deve instalar as dependências com o Pipenv
(conforme guia acima), e rodar o comando abaixo:
python -m pytest