- 📚 Contextualização do projeto
- 🛠️ Tecnologias/Ferramentas utilizadas
- 🖥️ Funcionamento do sistema
- 🔀 Arquitetura da aplicação
- 📁 Estrutura do projeto
- 📌 Como executar o projeto
- 🕵️ Dificuldades Encontradas
O projeto Speech Recognition - Whisper visa desenvolver um sistema de reconhecimento de fala em casa utilizando o modelo Whisper de última geração. O sistema será capaz de:
- Transcrever áudio em tempo real: O sistema transcreverá áudio de conversas, entrevistas, palestras e outros eventos em tempo real, com alta precisão.
- Controlar dispositivos domésticos inteligentes: O sistema poderá ser utilizado para controlar dispositivos domésticos inteligentes por voz, como luzes, TVs, ar-condicionado e muito mais.
- Realizar tarefas automatizadas: O sistema poderá ser utilizado para realizar tarefas automatizadas, como agendar compromissos, enviar mensagens de texto, tocar música e muito mais.
Whisper é um modelo de reconhecimento de fala desenvolvido pela OpenAI. Ele é capaz de transcrever e traduzir áudio com alta precisão. O modelo é treinado em uma grande quantidade de dados de áudio e texto, o que permite que ele funcione bem em uma variedade de idiomas e sotaques.
O backend da aplicação foi desenvolvido utilizando Python com diversas bibliotecas para gravação, reprodução e transcrição de áudio. As principais funcionalidades incluem a gravação de áudio, reprodução de áudio e transcrição de áudio utilizando o modelo Whisper.
- Gravação e Reprodução de Áudio: O arquivo
devices/mic_devices.py
contém a lógica para gravação e reprodução de áudio utilizando a bibliotecasounddevice
. - Transcrição de Áudio: O arquivo
speech_to_text/speech_recogntion.py
contém a lógica para transcrição de áudio utilizando o modelo Whisper.
O frontend foi construído para fornecer uma interface amigável ao usuário, permitindo que áudios sejam gravados e transcritos automaticamente. A estrutura utiliza HTML, CSS, JavaScript, e os scripts de comunicação com o backend são gerenciados pelo FastAPI.
- Estilos e Imagens: A pasta
public/css
contém os arquivos de estilo para o layout da aplicação, enquanto a pastapublic/images
armazena os recursos visuais. - Scripts: Os arquivos
scripts/script.js
escripts/check_api.js
são responsáveis pela lógica de interação com o backend e validações do frontend.
O sistema é baseado em uma arquitetura de microserviços, onde o backend se comunica com os serviços da AWS para análise e processamento dos documentos. O AWS Bedrock desempenha um papel central na geração dos resumos, enquanto Fitz lida com a leitura e extração dos textos dos documentos.
A estrutura do projeto é organizada da seguinte maneira:
.
├── .gitignore
├── controller/
│ └── transcribe_audio.py
├── devices/
│ └── mic_devices.py
├── env/
│ ├── install_whisper_ubuntu.sh
│ └── install_whisper_windows.sh
├── LICENSE
├── main.py
├── README.md
└── speech_to_text/
└── speech_recogntion.py
Para executar o projeto localmente, siga as instruções abaixo:
-
Clone o repositório:
git clone https://github.com/rafael-torres-nantes/AtHome-SpeechRecogntion-Whisper.git
-
Instale as dependências:
# Para Ubuntu bash env/install_whisper_ubuntu.sh # Para Windows bash env/install_whisper_windows.sh
-
Execute o script principal:
python main.py
Durante o desenvolvimento do projeto, algumas dificuldades foram enfrentadas, como:
- Integração com dispositivos de áudio: A configuração e utilização de diferentes dispositivos de áudio exigiu testes e ajustes para garantir a compatibilidade e funcionalidade do sistema.
- Transcrição de áudio: A implementação do modelo Whisper para transcrição de áudio exigiu ajustes para lidar com diferentes idiomas e sotaques.
- Gerenciamento de dependências: A instalação e configuração das dependências do projeto, especialmente em diferentes sistemas operacionais, foi um desafio contínuo.