HERTZ es una estación de trabajo de audio digital basada en la web, pensada para limpiar y masterizar voces —especialmente de pódcast y palabra hablada— directamente en el navegador, sin enviar ningún archivo a un servidor. Toda la cadena de procesamiento se ejecuta en el equipo del usuario: la descodificación de formatos se apoya en la Web Audio API y la codificación final en FFmpeg.wasm, lo que elimina la latencia, el consumo de ancho de banda y los riesgos de privacidad asociados a subir audio sensible a la nube.
El flujo de trabajo se organiza en cuatro etapas. Primero, el sistema ingiere ficheros WAV, MP3, M4A y OGG y los convierte en un AudioBuffer de coma flotante de 32 bits. A continuación, una capa de edición no destructiva basada en Wavesurfer.js permite definir regiones de inicio y fin con precisión de muestra. El procesado digital de señal se ejecuta en un OfflineAudioContext, más rápido que en tiempo real, y aplica una cadena vocal fija: un filtro paso alto a 80 Hz con Q de 1,4 para eliminar ruidos subsónicos, un compresor de rodilla dura con umbral de -20 dB, relación 3,1:1 y ataque/liberación de 30/100 ms, y un limitador con normalización final a -3 dB de pico. Por último, el buffer resultante se transfiere al sistema de ficheros virtual de FFmpeg.wasm, que lo codifica en MP3 mediante LAME a 192 kbps VBR y entrega el Blob al navegador para su descarga.
La herramienta utiliza SharedArrayBuffer para habilitar el multihilo de FFmpeg.wasm, lo que obliga a servir las cabeceras Cross-Origin-Opener-Policy: same-origin y Cross-Origin-Embedder-Policy: require-corp; sin ellas, ffmpeg.wasm no inicializa. Para ejecutarla se necesita Node.js 18 o superior y un navegador moderno con soporte de WebAssembly (Chrome 90+, Firefox 90+, Safari 15+). El proyecto se instala con npm install y se inicia con npm run dev; la compilación con npm run build genera un bundle estático que debe servirse desde un servidor web compatible con dichas cabeceras, ya que no es posible abrir index.html directamente desde el sistema de ficheros.
