Voice Biometrics API

Sobre o projeto

Este projeto consiste na implementação de uma API de reconhecimento biométrico por voz que se integra a um sistema de login já existente. Utilizando tecnologias modernas como SpeechBrain para o processamento de voz e FastAPI para a criação de endpoints rápidos e seguros, a solução permite que usuários cadastrem sua própria voz como uma forma única de identificação.

Tecnologias Utilizadas

Sobre o grupo

O grupo faz parte do SQUAD 5 da disciplina de Métodos de Desenvolvimento de Software, ministrada pela professora Carla Rocha, composto por estudantes que aplicam conceitos e metodologias de desenvolvimento em projetos reais. O grupo foca na utilização de tecnologias de ponta e boas práticas de programação, visando entregar uma nova maneira do usuário se autenticar em sistemas, utilizando sua própria voz como chave de acesso. Através do projeto de reconhecimento biométrico por voz, os alunos têm a oportunidade de aplicar seus conhecimentos, desenvolvendo habilidades técnicas e colaborativas essenciais para o mercado de trabalho.

Para Subir o Ambiente

(Instruções a serem adicionadas futuramente)

Arquitetura

Visão geral

A arquitetura do sistema de login com biometria por voz é composta por três camadas principais: apresentação, aplicação (lógica de negócios) e dados. A seguir, cada camada será detalhada com base no fluxo de autenticação e cadastro do sistema, incluindo diagramas ilustrativos para facilitar o entendimento.


Camada de Apresentação (Front-End)

Esta camada é responsável pela interface com o usuário, tanto para o processo de login quanto de cadastro. Ela interage com a camada de aplicação por meio de APIs REST seguras (HTTPS).

Funcionalidades:

  • Exibição de telas de login, cadastro e confirmação.
  • Captura de dados do usuário (login, senha, e-mail, voz).
  • Envio e recepção de dados via chamadas REST.
  • Gravação da voz do usuário para biometria.

  • Tecnologias utilizadas:
  • Frameworks web responsivos (HTML5/CSS/JavaScript/ReactJs).
  • Acesso ao microfone via Web API (WebRTC).
  • Comunicação com a API backend via HTTPS.

  • Fluxo de autenticação

    Camada de Aplicação (Lógica de Negócios / Back-End)

    Essa camada centraliza toda a lógica de negócio da autenticação e cadastro com biometria por voz. A aplicação será desenvolvida em Python, com integração de inteligência artificial para o reconhecimento de voz.

    Funções no Login:

  • Recebe login e senha do front-end via /authenticate.
  • Valida as credenciais com o banco de dados.
  • Retorna a frase previamente cadastrada para validação de voz.
  • Recebe e processa o áudio via /verify, comparando com os dados biométricos.
  • Controla o número de tentativas e responde com sucesso ou falha.

  • Funções no Cadastro:
  • Recebe os dados iniciais para criar o usuário.
  • Envia e valida o e-mail de confirmação.
  • Gera e aloca frase aleatória para biometria.
  • Recebe e armazena a amostra de voz.
  • Finaliza o cadastro com criptografia de senha e persistência dos dados.

  • Integrações:
  • APIs REST para comunicação com o front-end.
  • Bibliotecas de IA/Reconhecimento de voz (ex: SpeechRecognition, WebRTC, pyttsx3).
  • Segurança com bcrypt e controle de tentativas.

  • Fluxo de cadastro

    Camada de Dados (Banco de Dados)

    A camada de dados é responsável pelo armazenamento seguro e estruturado das informações dos usuários e suas amostras biométricas.

    Estrutura Armazenada:

  • Dados cadastrais do usuário (nome, e-mail, senha com hash).
  • Frases de autenticação vocal geradas por IA.
  • Amostras de áudio biométrico processadas.
  • Histórico de tentativas de login biométrico.

  • Banco Utilizado:
  • Oracle Database.
  • Dados organizados por tabelas de usuários, frases, amostras biométricas e auditoria.

  • Segurança:
  • Armazenamento de senhas com hash (bcrypt).
  • Dados biométricos protegidos contra acesso indevido.
  • Políticas de bloqueio após múltiplas tentativas de autenticação falha.
  • Documentação do Projeto

    1. Introdução

    1.1 Objetivo

    Esse documento especifica os requisitos para o desenvolvimento do projeto de Biometria Vocal, parte da disciplina de Métodos de Desenvolvimento de Software 2025.1. O objetivo do projeto é permitir o login de um usuário em um determinado site/serviço através do sistema de reconhecimento biométrico por voz.


    1.2 Escopo

  • Disponibilza uma forma de login/cadastro com email/senha antes do cadastro e autenticação da voz.
  • O sistema deve ser capaz de reconhecer a voz do usuário e compará-la com a amostra armazenada.
  • O sistema deve ser capaz de gerar uma frase aleatória para o usuário repetir durante o cadastro.

  • 1.3 Tecnologias Utilizadas

  • Frontend: HTML, CSS, TailwindCSS, JavaScript, ReactJs
  • Backend: Python, SpeechBrain
  • API: FastAPI
  • Banco de dados: Oracle Database


  • 2. Descrição

    2.1 Visão geral do sistema

    Na etapa de login, o usuário insere suas credenciais e, após validação inicial, recebe uma frase que deve ser repetida com a voz. Essa gravação é analisada por algoritmos de inteligência artificial que comparam a amostra vocal recebida com o modelo biométrico previamente armazenado. Já no processo de cadastro, o sistema gera uma frase aleatória que o usuário deve gravar, associando essa amostra ao seu perfil para uso futuro na autenticação. Essa arquitetura oferece uma autenticação em duas etapas mais robusta, sem depender exclusivamente de senhas, e reforça a segurança utilizando características únicas da voz de cada indivíduo.


    2.2 Objetivos do Usuário

  • Realizar o cadastro de forma simples e segura, fornecendo dados básicos, confirmando seu e-mail e gravando uma frase para registro da biometria de voz.
  • Autenticar-se com maior segurança, combinando login e senha com verificação de identidade por meio da voz.
  • Proteger seu acesso com uma camada biométrica única, difícil de ser reproduzida por terceiros, reduzindo riscos de invasão e fraude.
  • Ter uma experiência fluida, com respostas rápidas do sistema, orientações claras e um fluxo intuitivo, tanto no cadastro quanto no login.


  • 3. Requisitos Funcionais

    3.1 Épico – Cadastro e Autenticação por Voz

    Features:

  • Gravação de áudio via Front-end:
  • Captura da voz do usuário por microfone.

  • Envio de áudio para o Backend:
  • Envio via API segura; suporte a formatos como .wav, .mp3.

  • Extração de características vocais:
  • Processamento do áudio e geração de embeddings vocais.

  • Armazenamento de dados biométricos:
  • Armazena os dados de voz e compara com padrão já registrado.



    3.2 Épico – Interface do Usuário (Front-End Web)

    Features:

  • Tela de login/input de voz:
  • Exibição de interface com botão para gravação.

  • Feedback visual:
  • Exibição do resultado (autenticado ou não).

  • Interface responsiva:
  • Layout adaptado a diferentes dispositivos, simples e leve.



    3.3 Épico – Infraestrutura e Integração

    Features:

  • API REST para comunicação:
  • Endpoints POST/GET para integração entre front e back.

  • Banco de dados do backend:
  • CRUD básico com autenticação e armazenamento dos usuários.

  • Execução local e isolada:
  • Backend executado de forma segura (por exemplo, via contêiner).



    3.4 Épico – Segurança e Validação da Segurança

    Features:

  • Validação de voz:
  • Comparação entre áudio atual e padrão armazenado.

  • Controle de erros:
  • Mensagens claras como "usuário não encontrado" ou "áudio inválido".



    4. Requisitos Não-Funcionais

  • Desempenho: autenticação em poucos segundos.
  • Precisão: reconhecimento com mais de 90% de acurácia.
  • Segurança dos dados: uso de criptografia para proteger os dados biométricos.
  • Compatibilidade com navegadores: funcionamento nos principais browsers.
  • Portabilidade/Acessibilidade: suporte multiplataforma e recursos acessíveis.
  • Qualidade do áudio: captação clara e limpa.
  • Modularidade: sistema dividido em módulos independentes.
  • Licenciamento: uso de bibliotecas open source com licença MIT, GPL, Apache, etc.

  • 4.1 Usabilidade

  • Interface simples, intuitiva e responsiva
  • Feedback visual e auditivo amigável
  • Fluxo claro de login/autenticação com mensagens orientativas


  • 5. Story Map do Usuário

    O mapa abaixo divide os requisitos em épicos e features, com a previsão de histórias de usuários.


    Protótipo

    Protótipo de baixa fidelidade

    Protótipo de baixa fidelidade desenvolvido com o objetivo de apresentar a interface do sistema e as funcionalidades principais.



    Protótipo de alta fidelidade

    Protótipo de alta fidelidade do sistema de reconhecimento biométrico por voz, feito no Figma.


    Colaboradores do Projeto

    Nome GitHub
    Douglas WilsonDodgelinhass
    Daniel Telesdtdanielteles
    José JoaquimJoaquim-SNeto
    Luan Viníciusluannvi
    Matheus Lemesmatheuslemesam
    Paulo HenriquePauloswimming
    Paulo NeryPnery2004
    Rafael Barbosarafaelbdmelo117