/Study-SpeechRecognition-Whisper

🎙️Speech Recognition using Whisper: Documenta o projeto de reconhecimento de fala em casa utilizando o modelo Whisper.

Primary LanguagePythonMIT LicenseMIT

🎙️ Study - Speech Recognition using Whisper

👨‍💻 Projeto desenvolvido por:

Rafael Torres Nantes

Índice

📚 Contextualização do projeto

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.

Sobre o Whisper

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.

🛠️ Tecnologias/Ferramentas utilizadas

🖥️ Funcionamento do sistema

🧩 Parte 1 - Backend

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 biblioteca sounddevice.
  • 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.

🎨 Parte 2 - Frontend

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 pasta public/images armazena os recursos visuais.
  • Scripts: Os arquivos scripts/script.js e scripts/check_api.js são responsáveis pela lógica de interação com o backend e validações do frontend.

🔀 Arquitetura da aplicação

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.

📁 Estrutura do projeto

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

📌 Como executar o projeto

Para executar o projeto localmente, siga as instruções abaixo:

  1. Clone o repositório:

    git clone https://github.com/rafael-torres-nantes/AtHome-SpeechRecogntion-Whisper.git
  2. Instale as dependências:

    # Para Ubuntu
    bash env/install_whisper_ubuntu.sh
    
    # Para Windows
    bash env/install_whisper_windows.sh
  3. Execute o script principal:

    python main.py

🕵️ Dificuldades Encontradas

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.