Skip to content

abarchello/voice_recognition_2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Reconocimiento de Locutor (Data Driven)

Este proyecto implementa un sistema de reconocimiento de locutor utilizando técnicas de procesamiento de señales y aprendizaje automático Data Driven. Se basa en la extracción de características MFCC (Mel-Frequency Cepstral Coefficients) y el modelado mediante "Eigenvoices" (usando SVD/PCA).

🏗️ Arquitectura y Tecnologías

El proyecto sigue una arquitectura modular limpia:

  • Gestor de Paquetes: uv (Moderno, rápido, compatible con pip).
  • Lenguaje: Python 3.9+.
  • Librerías Clave:
    • librosa: Procesamiento de audio y extracción de features.
    • sounddevice: Grabación de audio en tiempo real.
    • scikit-learn: Algoritmos de ML (SVD, SVM, Pipeline).

🚀 Instalación

Este proyecto utiliza uv para una gestión de dependencias ultrarrápida.

  1. Instalar uv (si no lo tienes):

    # Windows (PowerShell)
    powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
    
    # macOS/Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Inicializar entorno y sincronizar: Sitúate en la carpeta raíz del proyecto (voice_recognition) y ejecuta:

    uv sync

    Esto creará el entorno virtual (.venv) e instalará todas las dependencias definidas en pyproject.toml.

🎮 Guía de Uso

Para ejecutar la aplicación de consola (CLI):

uv run src/main_cli.py

(Nota: uv run ejecuta el script dentro del entorno virtual automáticamente).

Flujo de Trabajo:

  1. [1] Grabar Muestras:

    • Selecciona la opción 1.
    • Introduce el nombre (ej. "juan").
    • Graba entre 5 y 10 muestras de tu voz diciendo frases diferentes.
    • Repite este paso para al menos 2 personas diferentes.
  2. [2] Entrenar Modelo:

    • Selecciona la opción 2.
    • El sistema leerá todos los audios en data/.
    • Extraerá MFCCs, aplicará SVD y entrenará el clasificador.
  3. [4] Test Live:

    • Selecciona la opción 4.
    • Habla al micrófono.
    • El sistema predecirá quién eres basándose en el "espacio de voces" aprendido.

🧠 Explicación Metodológica (Data Driven)

El sistema funciona imitando el proceso de audición y reconocimiento de patrones:

  1. Oído Digital (MFCC):

    • El audio crudo es solo presión de aire en el tiempo.
    • Usamos MFCC (Coeficientes Cepstrales en las Frecuencias de Mel) para imitar cómo el oído humano percibe el sonido (siendo más sensible a frecuencias bajas que altas).
    • Esto convierte 2 segundos de audio en una "huella digital" numérica compleja.
  2. Eigenvoices (SVD - Singular Value Decomposition):

    • Cada grabación es un vector de alta dimensión.
    • Usamos SVD (técnicamente Truncated SVD) para encontrar los patrones principales que diferencian una voz de otra.
    • Imagina que el SVD encuentra las "voces fundamentales" (Eigenvoices). Cualquier voz nueva se puede describir como una mezcla de estas voces fundamentales.
    • Esto reduce drásticamente el ruido y la cantidad de datos, dejando solo la esencia de la identidad del locutor.
  3. Clasificación:

    • Una vez reducida la voz a sus componentes principales, usamos un clasificador (SVM) para trazar fronteras matemáticas entre los diferentes usuarios en este espacio reducido.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages