Skip to content

Integrar whisper.cpp para optimizar transcripción de audio #1

Description

@Charly-bite

Verificación e Integración de whisper.cpp

Objetivo

Verificar la instalación de whisper.cpp y optimizar el sistema de transcripción actual reemplazando OpenAI Whisper con whisper.cpp para mejor rendimiento.

Estado Actual

El proyecto utiliza OpenAI Whisper en agents/processing_agent.py con las siguientes características:

  • Modelo base de Whisper
  • Transcripción con parámetros optimizados
  • Soporte multiidioma (español/inglés)
  • Detección automática de idioma

Tareas de Verificación

1. Verificar Instalación de whisper.cpp

Crear script para verificar si whisper.cpp está correctamente instalado:

# Verificar binario principal
which whisper
whisper --help

# Verificar modelos disponibles
ls ~/.cache/whisper/ || ls /usr/local/share/whisper/

# Probar transcripción básica
whisper test_audio.wav --language es --output_format txt

2. Script de Verificación Python

import subprocess
import os
from pathlib import Path

def verify_whisper_cpp():
    try:
        # Verificar comando whisper
        result = subprocess.run(['whisper', '--help'], 
                              capture_output=True, text=True)
        if result.returncode == 0:
            print("✅ whisper.cpp instalado correctamente")
            return True
    except FileNotFoundError:
        print("❌ whisper.cpp no encontrado en PATH")
        return False

3. Migración del ProcessingAgent

Modificaciones Propuestas:

  • Mantener compatibilidad con OpenAI Whisper como fallback
  • Implementar wrapper para whisper.cpp
  • Optimizar parámetros para mejor rendimiento
  • Añadir soporte para transcripción en tiempo real

Nuevos Parámetros:

class WhisperCppProcessor:
    def __init__(self):
        self.whisper_binary = "whisper"
        self.model_path = "~/.cache/whisper/"
        self.temp_dir = "temp_audio/"
        
    def transcribe_with_cpp(self, audio_file, language="es"):
        cmd = [
            self.whisper_binary,
            str(audio_file),
            "--language", language,
            "--output_format", "json",
            "--model", "base",
            "--threads", "4",
            "--processors", "1"
        ]
        # Ejecutar y procesar resultado

4. Optimizaciones Adicionales

Transcripción en Tiempo Real:

  • Implementar streaming con chunks de audio
  • Procesamiento por segmentos de 30 segundos
  • Buffer circular para audio continuo

Mejoras de Rendimiento:

  • Usar modelos cuantizados (q4_0, q5_0)
  • Optimizar threads según CPU disponible
  • Implementar caché de modelos

5. Pruebas de Verificación

Test de Instalación:

def test_whisper_cpp_installation():
    # 1. Verificar binario
    # 2. Verificar modelos
    # 3. Transcripción de prueba
    # 4. Comparar rendimiento vs OpenAI Whisper

Test de Rendimiento:

  • Medir tiempo de transcripción
  • Comparar calidad de transcripción
  • Verificar uso de CPU/memoria

Archivos a Modificar

  1. agents/processing_agent.py - Integrar whisper.cpp
  2. test_whisper_cpp.py - Nuevo script de verificación
  3. config/audio_settings.yaml - Añadir configuración whisper.cpp
  4. requirements.txt - Documentar dependencias

Configuración Recomendada

whisper_cpp_settings:
  binary_path: "whisper"
  model_size: "base"
  threads: 4
  language_detection: true
  real_time_processing: false
  quantization: "q4_0"
  fallback_to_openai: true

Criterios de Éxito

  • whisper.cpp verificado e instalado
  • Transcripción funcional con whisper.cpp
  • Rendimiento mejorado vs OpenAI Whisper
  • Compatibilidad mantenida con código existente
  • Documentación actualizada

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions