Sox cómo normalizar el volumen de varios archivos de audio (Sonido, Diseño De Sonido, Efectos De Sonido, Normalizar)

ALTN preguntó.

Estoy tratando de integrar múltiples efectos de sonido (46 archivos), y múltiples archivos de música de fondo (7 archivos) en un juego iOS que estoy desarrollando actualmente. Los niveles de volumen de mis activos de audio descargados no están bien proporcionados. Al no tener ninguna experiencia previa con el diseño de sonido, google me señaló la normalización a través de sox.

He aprendido soxrealiza la normalización, pero no da los resultados deseados, ya que se basa en la normalización del nivel de pico en lugar del nivel medio RMS (todos esos son términos nuevos y ambiguos para mí). También parece que hay bastantes otros efectos de manipulación del nivel de volumen como compand, loudness, gain y otros… pero no estoy muy seguro de cuál se adapta mejor a mis necesidades. Mis archivos de audio son wav o mp3, algunos son estéreo (2 canales) otros son mono canal, y me gustaría convertir todos los archivos a wav, mono canal antes de «normalizar» su volumen.

Mi pregunta es ¿cuál sería un buen comando sox (o secuencia de comandos) para lograr lo que he descrito anteriormente? un ejemplo aplicado a un solo archivo sería perfecto… Luego puedo escribir un script para replicarlo en todos mis archivos.

PD: No espero una fórmula mágica automatizada que ajuste perfectamente el volumen de todos mis archivos de audio, sólo espero una conversión automatizada aceptable de la mayoría de los archivos, y si algunos siguen siendo desproporcionados, puedo ajustarlos individualmente. También estoy abierto a sugerencias de otras herramientas para MacOS o linux.

Comentarios

  • superuser.com/questions/323119/… parece ser un buen post para ti , no conozco sox pero ffmpeg es enorme , el comando loudnorm se parece un poco a lo que necesitas. –  > Por JSmith.
  • ¡Gracias por el enlace, parece interesante! Como ya he dicho, no soy un ingeniero de diseño de sonido, y tengo una vaga familiaridad con los términos técnicos de sonido. Lo que quiero básicamente es un nivel de volumen general que suene igual al oído humano para todos los archivos de audio. De hecho, después de repensar un poco, en realidad podría necesitar la normalización de los picos para los efectos de sonido (clips cortos con menos de un segundo para la mayoría de los archivos) y, probablemente, como usted acaba de señalar «compresión y masterización» para los recursos musicales de fondo más largos. Voy a cavar en su enlace y ffmpeg y publicar mis conclusiones más tarde hoy. –  > Por ALTN.
  • Terminé procesando todos los archivos individualmente usando sox… revisar los documentos de ffmpeg y familiarizarme con los conceptos de diseño de sonido y los términos técnicos me habría llevado más tiempo del que puedo permitirme. Gracias por la sugerencia 🙂 –  > Por ALTN.
  • de nada 🙂 –  > Por JSmith.
1 respuestas
Simon Bosley

Normalizar tu audio probablemente no tendrá el efecto deseado que estás tratando de lograr.

Probablemente lo que quieres hacer es cargar todo tu audio en una aplicación de software, donde puedes mezclar los niveles relativos de los archivos de audio para que suenen bien en relación con los demás.

Si normalizas todo el audio, el crujido del paquete en el suelo sonará con un nivel similar al del motor de la moto, lo que por supuesto no es deseable.

Yo sugeriría cargar las muestras en un DAW (como Pro Tools, Logic, etc.) y luego establecer los niveles relativos de los efectos juntos, y luego hacerlos rebotar a ese nivel. Sé que es más trabajo, pero a la larga sonará mejor.

Una vez desarrollé un juego de clones de invasores del espacio multiplataforma, y fui un paso más allá y utilicé una herramienta de software intermedio de audio para juegos independiente de la plataforma llamada FMOD. Puedes mezclar el audio en tiempo real mientras pruebas tu juego, ¡muy bueno! Merece la pena aprenderlo, ya que se está haciendo muy popular.

Comentarios

  • Gracias por las sugerencias @Simon, FMOD parece interesante pero me gustaría haberlo conocido antes. La última vez que mencioné que me decanté por ajustar el volumen de mis archivos de forma individual, lo que después de más pruebas resultó ser insatisfactorio, el ajuste manual seguía y seguía y estaba tomando demasiado tiempo. Terminé creando un script basado en java que lee un conjunto de parámetros de un archivo json y luego genera la salida directamente en mi proyecto ios donde puedo probar los sonidos ajustados directamente desde el juego. Voy a compartir un enlace a la repo git de la secuencia de comandos tan pronto como se libera a escribir documentos y hacerlo más genérico. –  > Por ALTN.
  • ¡Lo siento @ALTN he llegado un poco tarde a la fiesta! Parece que has establecido un buen flujo de trabajo, así que es genial. FMOD podría ser excesivo si se trata de un juego realmente sencillo. A mí me llevó una semana de tutoriales ponerme al día como usuario, sin ni siquiera mirar la parte de la programación. Si el audio del juego es algo que vas a revisar, ¡vale la pena la inversión! –  > Por Simon Bosley.
  • Esta es una buena respuesta si los niveles de audio no se pueden cambiar en una etapa posterior. Si se puede pueden, entonces normalizar los archivos es probablemente la mejor manera. (No sé casi nada de diseño de juegos) –  > Por Marc W.
  • @SimonBosley el concepto de mi juego es bastante simple, en realidad es un juego de puzzle 2D con bastantes animaciones y efectos especiales. Sin embargo, no hay audio posicional ni nada del otro mundo en términos de sonido, sólo música de fondo y algunos efectos de sonido. Estoy seguro de que tu respuesta será muy útil para la gente que está trabajando en cosas más complejas, incluyéndome a mí mismo en futuros proyectos, pero por ahora me quedo con mi script, que es perfecto para mis necesidades actuales… ¡ojalá tuviera suficientes reps para upvote! –  > Por ALTN.