Cómo volver a muestrear FLAC de alta resolución en Linux

Imagen destacada de hi-res Flac Sox Resample 00

Los archivos FLAC de alta resolución son uno de los máximos exponentes de la experiencia de audio Hi-Fi. Sin embargo, si ripeas tu CD a archivos FLAC, puedes encontrar que a menudo son difíciles de reproducir fuera del equipo para el que fueron creados. Este puede ser un problema para los usuarios que poseen pistas de audio de alta resolución pero no tienen las herramientas para reproducirlas adecuadamente.

Una forma de solucionar esto es usar sox para volver a muestrear tus archivos FLAC de alta resolución. Este tutorial enseña lo básico de sox y cómo usarlo para volver a muestrear archivos FLAC en Linux.

Consejos: si estás confundido sobre los diferentes formatos de audio, consulta esta guía para entender las diferencias entre MP3, AAC, FLAC y muchos otros formatos.

Tabla de Contenidos

  • ¿Qué es Sox y cómo funciona el re-muestreo?
  • Volver a muestrear un archivo FLAC de alta resolución usando sox
  • Automatizando el proceso de re-muestreo
  • Preguntas frecuentes

¿Qué es Sox y cómo funciona el re-muestreo?

En su núcleo, sox es un programa de procesamiento de audio de línea de comandos. A diferencia de Audacity, te permite manipular archivos de audio directamente desde tu terminal. Esto hace que sox sea útil para aquellos que desean hacer ediciones simples o automatizar una tarea de audio compleja.

Pantalla de ayuda de Sox de alta resolución Flac Resample 02

El re-muestreo, por otro lado, es el proceso de usar algoritmos complejos para transformar una señal de alta fidelidad a una de menor calidad. Este enfoque mantiene la calidad de una pista de audio mientras reduce la cantidad de datos que almacenas en tu computadora.

Además de eso, el re-muestreo también te permite reproducir tus archivos FLAC de alta resolución en dispositivos de gama baja. Por ejemplo, un iPod Video Rockbox, mostrará retrasos y tartamudeos al reproducir un archivo de audio de 24 bits.

Pantalla de carga de Rockbox de alta resolución Flac Resample 04

Alternativa: además de sox, también puedes usar flac2all para transcodificar archivos FLAC a otros formatos de audio modernos.

Volver a muestrear un archivo FLAC de alta resolución usando sox

Nota: los pasos a continuación son para Ubuntu, pero el uso sigue siendo el mismo independientemente de la distribución de Linux que estés utilizando.

El primer paso para volver a muestrear archivos FLAC es instalar tanto la utilidad sox como sus dependencias. Ejecuta el siguiente comando en Debian y Ubuntu:

sudo apt install sox flac ffmpeg

Instalando Sox de alta resolución Flac Resample 05

Verifica si está instalado correctamente: sox --version.

Verificando la versión de Sox de alta resolución Flac Resample 06

Encuentra tanto la profundidad de bits como la frecuencia de muestreo de tu archivo FLAC utilizando el programa incorporado file para imprimir estos detalles en la terminal:

file sample.flac

En mi caso, mi archivo FLAC tiene una profundidad de bits de 24 bits y una frecuencia de muestreo de 96 kHz.

Verificando la profundidad de bits y frecuencia de muestreo del Flac de alta resolución 07

Encontrando la tasa de re-muestreo adecuada para sox

Encuentra la tasa de re-muestreo adecuada para tu archivo FLAC. La regla general en el re-muestreo es que la tasa de re-muestreo objetivo debe ser divisible entre la frecuencia de muestreo original entre 2 o 4.

Frecuencias de muestreo divisibles de alta resolución Flac Sox Resample 08

Solo deberías volver a muestrear un archivo FLAC de 192 kHz a 96 o 48 kHz para asegurar que el algoritmo de re-muestreo pueda transformar la señal original con la menor distorsión posible.

Optimizando el re-muestreo en tu archivo FLAC de alta resolución

Una vez que sepas la tasa de re-muestreo adecuada para usar, puedes ejecutar sox para volver a muestrear tu archivo FLAC. En mi caso, estoy volviendo a muestrear un archivo de 96 kHz, así que estoy ejecutando el siguiente comando:

sox -S sample.flac -b 16 resample.flac rate -v -L 48000 dither
  • La bandera -b le dice a sox que establezca una nueva profundidad de bits para el archivo de salida. Por ejemplo, un valor de 16 establecerá la nueva profundidad de bits en 16 bits.
  • Por otro lado, la opción rate le dice a sox que establezca una nueva frecuencia de muestreo para el archivo de salida.
  • La bandera -v obliga a sox a usar el algoritmo de re-muestreo “Muy Alta Calidad”.
  • La bandera -L también obliga a sox a usar una respuesta de “Fase Lineal” durante el re-muestreo. Este es un filtro que intenta neutralizar cualquier “eco de señal” en el archivo FLAC.
  • Por último, la opción dither genera una pequeña cantidad de ruido en toda la pista. Esto sirve como una máscara que ocultará cualquier imperfección en el proceso de re-muestreo.

Trabajo de re-muestreo único de alta resolución Flac Sox Resample 09

Automatizando el proceso de re-muestreo

Si bien es posible usar sox por cada archivo, también es posible automatizar todo el proceso usando el shell. (Consulta la guía para principiantes sobre scripting en shell). Esto es útil si pretendes volver a muestrear un álbum completo de pistas FLAC de alta resolución.

Una de las formas más rápidas de automatizar el proceso de re-muestreo es usar un bucle for en Bash. Por ejemplo, puedes ejecutar las siguientes líneas de código para volver a muestrear toda una carpeta de archivos FLAC:

mkdir -p ./flac-dir/resample && cd ./flac-dir  
for flac in *.flac; do sox -S "${flac}" -b 16 resample/"${flac}" rate -v -L 48000 dither; done

El primer comando creará la carpeta de salida para los nuevos archivos FLAC así como cambiará el directorio de trabajo actual. El segundo comando hará un bucle a través de cada archivo en la carpeta actual y lo volverá a muestrear usando sox.

Trabajo de re-muestreo de bucle de alta resolución Flac Sox Resample 10

Preguntas frecuentes

¿Es posible volver a muestrear un archivo MP3 usando sox?

El comando rate para sox no funciona con formatos con pérdida, por lo que no se puede usar para volver a muestrear un archivo MP3.

Estoy recibiendo un error de “sin controlador para el tipo de archivo detectado”. ¿Está roto sox?

¡No! Esto sucede siempre que sox no puede leer y decodificar tu archivo FLAC de alta resolución. Las causas más comunes de este problema son una biblioteca del sistema faltante y un flag del compilador ausente.

Para solucionar la biblioteca del sistema faltante, ejecuta el siguiente comando: sudo apt install libsox-fmt-all. Corregir el flag del compilador faltante requerirá que desinstales el paquete sox actual y lo compiles desde la fuente.

Sox está informando que mi archivo FLAC de alta resolución está distorsionado. ¿Falló mi re-muestreo?

Es normal que un archivo FLAC de alta resolución distorsione durante un re-muestreo, ya que el proceso de re-muestreo omitirá la mayor parte de los datos de frecuencia más alta e inaudibles de un archivo FLAC.

A pesar de esto, aún es posible indicarle a sox que compense la posible distorsión durante el re-muestreo. Para hacer esto, añade la bandera -G a tu comando sox: sox -S sample.flac -G -b 16 resample.flac rate -v -L 48000 dither.

Créditos de la imagen: Unsplash. Todas las alteraciones y capturas de pantalla por Ramces Red.