MCP Audio Tweaker

Procesamiento y optimización de audio por lotes utilizando FFmpeg. Modifica la tasa de muestreo, el bitrate, el volumen, los canales y aplica efectos.

Documentación

MCP Audio Tweaker

Un servidor de Model Context Protocol (MCP) para procesamiento y optimización de audio por lotes usando FFmpeg. Este paquete proporciona modificaciones de audio basadas en parámetros, incluyendo conversión de frecuencia de muestreo, ajuste de bitrate, control de volumen, configuración de canales y efectos de audio.

Características

  • 🎵 Procesamiento de audio integral: Conversión de frecuencia de muestreo, ajuste de bitrate, control de volumen, configuración de canales
  • 🔧 Integración con FFmpeg: Aprovecha FFmpeg para un procesamiento de audio robusto y multiplataforma
  • 📦 Procesamiento por lotes: Procesa múltiples archivos de audio simultáneamente con gestión de cola
  • 🎯 Sistema de preajustes: Configuraciones predefinidas para casos de uso comunes (audio de juegos, procesamiento de voz, masterización de música)
  • 🎮 Audio de juegos optimizado: Preajustes especiales para desarrollo de juegos móviles, de escritorio y de consola
  • 🤖 Integración con ElevenLabs: Preajuste optimizado para la salida de voz IA de ElevenLabs
  • 🔍 Compatible con MCP: Integración completa con Claude Desktop y otros clientes MCP
  • ⚡ Procesamiento concurrente: Procesamiento eficiente basado en cola para operaciones de lotes grandes
  • 📊 Informes detallados: Resultados de procesamiento completos y manejo de errores

Instalación

npm install -g mcp-audio-tweaker

Requisitos previos

  • Node.js 18.0.0 o superior
  • FFmpeg instalado y disponible en el PATH del sistema

Instalación de FFmpeg

Windows:

# Using Chocolatey
choco install ffmpeg

# Using winget
winget install FFmpeg

macOS:

# Using Homebrew
brew install ffmpeg

Linux:

# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg

# CentOS/RHEL
sudo yum install ffmpeg

Inicio rápido

Integración MCP con Claude Desktop

Añade a tu configuración de Claude Desktop:

{
  "mcpServers": {
    "audio-tweaker": {
      "command": "npx",
      "args": ["-y", "mcp-audio-tweaker"],
      "env": {
        "AUDIO_TWEAKER_LOG_LEVEL": "info"
      }
    }
  }
}

Uso independiente

Verifica los requisitos del sistema:

mcp-audio-tweaker --standalone check

Procesa un solo archivo:

mcp-audio-tweaker --standalone process \
  --input input.wav \
  --output output.mp3 \
  --volume -3 \
  --sample-rate 44100 \
  --bitrate 192 \
  --normalize

Procesamiento por lotes con preajuste:

mcp-audio-tweaker --standalone batch \
  --input-dir ./audio/raw \
  --output-dir ./audio/processed \
  --preset game-audio-mobile

Lista los preajustes disponibles:

mcp-audio-tweaker --standalone presets

Herramientas MCP

process_audio_file

Procesa un solo archivo de audio con operaciones personalizadas.

Parámetros:

  • inputFile (string): Ruta al archivo de audio de entrada
  • outputFile (string): Ruta para el archivo de salida
  • operations (object): Operaciones de procesamiento de audio
  • overwrite (boolean): Si se deben sobrescribir archivos existentes

Ejemplo:

{
  "inputFile": "/path/to/input.wav",
  "outputFile": "/path/to/output.mp3",
  "operations": {
    "volume": {
      "adjust": -3,
      "normalize": true,
      "targetLUFS": -20
    },
    "format": {
      "sampleRate": 44100,
      "bitrate": 192,
      "channels": 2,
      "codec": "mp3"
    },
    "effects": {
      "fadeIn": 0.1,
      "fadeOut": 0.2
    }
  }
}

batch_process_audio

Procesa múltiples archivos de audio en un directorio.

Parámetros:

  • inputDirectory (string): Directorio que contiene los archivos de entrada
  • outputDirectory (string): Directorio para los archivos procesados
  • filePattern (string): Patrón glob para coincidencia de archivos
  • operations (object): Operaciones de procesamiento de audio
  • overwrite (boolean): Si se deben sobrescribir archivos existentes

apply_preset

Aplica un preajuste de procesamiento de audio predefinido.

Parámetros:

  • inputFile (string): Ruta al archivo de audio de entrada
  • outputFile (string): Ruta para el archivo de salida
  • preset (string): Nombre del preajuste a aplicar
  • overwrite (boolean): Si se deben sobrescribir archivos existentes

Preajustes disponibles:

  • game-audio-mobile: Optimizado para juegos móviles
  • game-audio-desktop: Alta calidad para juegos de escritorio
  • game-audio-console: Calidad premium para consolas
  • elevenLabs-optimize: Optimiza la salida de voz IA de ElevenLabs
  • voice-processing: Procesamiento general de voz y diálogos
  • music-mastering: Masterización de música de alta calidad
  • sfx-optimization: Efectos de sonido y audio ambiental

list_presets

Lista todos los preajustes disponibles con descripciones.

Parámetros:

  • category (string, opcional): Filtrar por categoría (game, voice, music, effects)

get_queue_status

Obtiene el estado actual de la cola de procesamiento de audio.

Operaciones de audio

Operaciones de volumen

{
  "volume": {
    "adjust": -3,          // Volume adjustment in dB (-60 to +20)
    "normalize": true,     // Apply loudness normalization
    "targetLUFS": -23      // Target LUFS for normalization
  }
}

Operaciones de formato

{
  "format": {
    "sampleRate": 44100,   // Sample rate (8000, 16000, 22050, 44100, 48000, 96000, 192000)
    "bitrate": 192,        // Bitrate in kbps (64-320)
    "channels": 2,         // Channel count (1, 2, 6, 8)
    "codec": "mp3"         // Codec (pcm, mp3, aac, vorbis, flac)
  }
}

Operaciones de efectos

{
  "effects": {
    "fadeIn": 0.1,         // Fade in duration in seconds
    "fadeOut": 0.2,        // Fade out duration in seconds
    "trim": {              // Trim audio
      "start": 1.0,        // Start time in seconds
      "end": 30.0          // End time in seconds
    },
    "loop": {              // Loop audio
      "enabled": true,
      "count": 3           // Number of loops
    }
  }
}

Ejemplos de uso con Claude Desktop

Optimizar salida de voz de ElevenLabs

@audio-tweaker Apply the elevenLabs-optimize preset to the file /audio/voice-output.wav and save it as /audio/optimized-voice.mp3

Procesamiento por lotes de audio de juegos

@audio-tweaker Process all WAV files in /game-assets/audio/raw/ using the game-audio-mobile preset and save them to /game-assets/audio/mobile/

Procesamiento de voz personalizado

@audio-tweaker Process /recordings/dialogue.wav with the following operations: normalize audio to -20 LUFS, convert to 22kHz mono MP3 at 128kbps, add 0.05s fade in and 0.1s fade out, and save as /processed/dialogue.mp3

Verificar estado del procesamiento de audio

@audio-tweaker What's the current status of the audio processing queue?

Integración de flujo de trabajo

Flujo de trabajo de desarrollo de juegos

  1. Generar voz IA con ElevenLabs
  2. Optimizar con MCP Audio Tweaker: Aplicar el preajuste elevenLabs-optimize
  3. Procesamiento específico de plataforma: Usar los preajustes game-audio-mobile, game-audio-desktop o game-audio-console
  4. Integración: Importar el audio optimizado al motor del juego

Flujo de trabajo de producción musical

  1. Grabar/Importar audio
  2. Masterizar con Audio Tweaker: Aplicar el preajuste music-mastering
  3. Optimización de plataforma: Crear versiones específicas para cada plataforma
  4. Distribución: Exportar en los formatos requeridos

Configuración

Variables de entorno

  • AUDIO_TWEAKER_LOG_LEVEL: Establecer nivel de registro (debug, info, warn, error)
  • FFMPEG_PATH: Ruta personalizada del binario de FFmpeg (opcional)

Configuración avanzada

El paquete admite configuraciones avanzadas de FFmpeg mediante el paso directo de parámetros. Consulta la documentación de FFmpeg para opciones adicionales.

Manejo de errores

El paquete proporciona un manejo de errores completo con códigos de error específicos:

  • FILE_NOT_FOUND: El archivo de entrada no existe
  • FFMPEG_NOT_FOUND: FFmpeg no está instalado o no está en el PATH
  • INVALID_PARAMETERS: Falló la validación de los parámetros de procesamiento
  • OUTPUT_WRITE_FAILED: No se puede escribir en la ubicación de salida
  • PROCESSING_FAILED: Falló el procesamiento de FFmpeg
  • PRESET_NOT_FOUND: El preajuste solicitado no existe

Rendimiento

  • Procesamiento concurrente: 2 operaciones concurrentes por defecto (configurable)
  • Gestión de cola: Cola de procesamiento eficiente con capacidades de pausa/reanudación
  • Eficiente en memoria: Transmite datos de audio sin cargar archivos completos en memoria
  • Multiplataforma: Optimizado para Windows, macOS y Linux

Formatos compatibles

Formatos de entrada: MP3, WAV, OGG, FLAC, M4A, AAC Formatos de salida: MP3, WAV, OGG, FLAC, M4A, AAC

Desarrollo

Compilación desde el código fuente

git clone https://github.com/your-org/mcp-audio-tweaker.git
cd mcp-audio-tweaker
npm install
npm run build

Ejecución de pruebas

npm test
npm run test:coverage
npm run test:ffmpeg

Contribuciones

  1. Haz un fork del repositorio
  2. Crea una rama de características
  3. Realiza tus cambios
  4. Añade pruebas para la nueva funcionalidad
  5. Envía un pull request

Documentación completa

Este README proporciona una visión general rápida. Para documentación completa:

🚀 Primeros pasos

🔧 Soporte y solución de problemas

Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles.

Soporte

Agradecimientos