¿Alguna desventaja de exportar un archivo de audio a doble velocidad y luego reproducir el motor del juego a media velocidad?

17

Quiero reducir el tamaño de archivo y la música de mi juego y SFX está ocupando una buena parte.

Si hago una canción o un efecto de sonido a 120bpm y luego aplico un tempo y doblar el tono usando un programa DAW o independiente, luego grabo el nuevo archivo de audio de doble velocidad, termina siendo la mitad del tamaño del archivo original (porque la longitud de la canción ahora es reducido a la mitad) Luego uso mi motor de juego (Unity) para reproducir el archivo de audio de 240bpm a media velocidad, por lo que ahora suena normal. Sin artefactos ni distorsiones.

Así que aquí está la pregunta: ¿estoy sacrificando algo como la potencia de procesamiento para jugar a media velocidad? Estoy cargando un archivo que es la mitad del tamaño, por lo que debe haber algún tipo de compensación en algún lugar, ¿verdad? Tengo la sensación de que nadie en su sano juicio haría esto, pero ¿por qué no?

William
fuente
1
¿Qué formato de audio estás usando?
Philipp
25
reinventará un esquema de compresión de audio con pérdida ineficiente. en su lugar, intente usar el códec Opus normalmente. es muy potente a bajas velocidades de bits, incluso adecuado para música a 64 kbps e incluso más pequeño para sonidos más simples.
Nombre para mostrar
8
Intente hacer esto con 100 veces la velocidad para lograr una compresión del 99%. Eso debería hacer evidente la pérdida de calidad.
usr

Respuestas:

45

Al crear un clip de audio con un alto BPM y luego reproducirlo a la mitad de velocidad, está reduciendo a la mitad la frecuencia de muestreo .

Puede lograr una reducción similar en el tamaño de los activos sin cambiar su flujo de trabajo o cualquier archivo de audio existente al reducir la frecuencia de muestreo en el inspector de AudioClip . También revise las diversas opciones de compresión en esa página, ya que todas tienen diferentes compensaciones de almacenamiento / calidad / CPU.

A menudo es mejor importar archivos de activos en su proyecto de unidad tal como están. Luego, Unity permite la configuración de ajustes de calidad independientes para cada objetivo de compilación.


"¿Estoy sacrificando algo ... para jugar a media velocidad?":

Si. Usted menciona la autoría en un tono alto para que suene normal en la reproducción. Al reducir el rango de frecuencias útiles durante la creación, esencialmente está comprimiendo su audio en un rango estrecho de artificialidad de valores, esto puede comprometer la calidad del sonido en la reproducción. Este efecto no siempre será evidente para el oyente.

Kelly Thomas
fuente
3
La disminución de la frecuencia de muestreo solo reduce la cantidad de frecuencias más altas disponibles debido a en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem . Nada que ver con la profundidad de bits, que controla el ruido de fondo. Ver también: xiph.org/video/vid1.shtml
小 太郎
77
Eliminará por completo las frecuencias más altas. Por ejemplo, una frecuencia de muestreo de 44.1 kHz solo tendrá frecuencias de hasta 22.05 kHz, pero si su frecuencia de muestreo es de 22 kHz, solo tendrá frecuencias de hasta 11 kHz.
小 太郎
2
Además, esto puede agregar costos de procesamiento de sonido innecesarios durante el tiempo de ejecución. Puede o no ser notable dependiendo del tamaño del archivo y la duración del audio.
user1306322
2
Me gustaría agregar a esto que si aún desea sacrificar la calidad para ganar tamaño de archivo, será mejor usar un algoritmo de compresión con pérdida como mp3 y luego ajustar la relación de compresión en consecuencia, este tipo de algoritmo también descartará algunas frecuencias , pero en teoría elegirá entre aquellos que son menos perceptibles por los humanos
yms
44
No solo perderá frecuencias superiores a 11 kHz, si no filtra a propósito las frecuencias más altas, estará sujeto a un alias por el cual las frecuencias más altas se interpretan como frecuencias más bajas. Esto dará como resultado que se escuchen frecuencias no deseadas y no deseadas. en.wikipedia.org/wiki/Aliasing
razethestray