¿Cómo puedo estar seguro de sox no realiza difuminado automático sin conocer la versión más reciente?

StackOverflow https://stackoverflow.com/questions/1768077

  •  21-09-2019
  •  | 
  •  

Pregunta

Estoy usando sox volver a muestrear el audio antes de introducirlo a nuestro sistema de detección del habla, pero he golpeado una pega con la versión 14.3 de Medias añadiendo difuminado automático de forma predeterminada para la operación de remuestreo, que no queremos.

Esto no sería un problema si sabíamos que estábamos siempre mediante sox ≥ 14,3, ya que podíamos usar la nueva bandera -D para desactivarlo:

sox original.wav -Dr 8000 new.wav

Sin embargo, no podemos garantizar que vamos a utilizar Medias ≥ 14,3 por lo que necesita alguna manera de especificar el indicador -D si es necesario, pero se deja fuera de otro modo (como él los errores cuando no lo reconoce).

¿Alguna idea?

¿Fue útil?

Solución

Lo primero que pensé es sólo algo como:

# assume -D flag is available to disable automatic dithering
sox original.wav -Dr 8000 new.wav
# if -D flag isn't available (sox < 14.3), then dithering isn't automatic
if [$? -ne 0]; then
   sox original.wav -r 8000 new.wav
fi

Como comprobar los números de versión parecía que probablemente sería un dolor y no muy a prueba de futuro.

La única desventaja principal es que si hay algún otro error, la operación se intentó dos veces.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top