Android Audio Latencia en Profundidad: está mejorando, sobre todo con el Nexus 5X Y 6P
Artículo Contenido
La latencia de audio se define como el tiempo de retardo que las experiencias de una señal a medida que pasa a través de un sistema. En un dispositivo móvil, esto es profundamente relacionada con el tiempo que tarda entre tocar en una pantalla y recibir retroalimentación de audio. Latencia de audio bajo puede ser la diferencia entre una experiencia de juego inmersiva y un desagradable, uno desconectado. Demasiado tiempo una latencia y un dispositivo pueden comenzar a sentirse extrañamente lag, incluso si cada animación visual es ágil y sensible. Es especialmente importante - esencial, incluso - para grabar y componer música, ya que la retroalimentación de audio lenta puede tirar fácilmente de incluso los mejores artistas y destruir su proceso creativo. Baja latencia es absolutamente fundamental en un sistema operativo moderno, y ha sido absolutamente terrible en Android.
Hay varias maneras de medir la latencia, y una muy útil y fácil de entender uno se llama latencia de ida y vuelta. Latencia de ida y vuelta se calcula mediante la introducción de una señal de audio en un dispositivo y midiendo la cantidad de tiempo que tarda la señal para salir de la salida. El Nexus One, por ejemplo, tuvo una latencia de ida y vuelta de hasta 350 milisegundos (ms). Para la comparación, el tiempo de reacción promedio de un ser humano a un estímulo de audio es de alrededor de 170 ms. En otras palabras, - mientras que, sin duda, poco práctica - un Nexus One hecho con el oído humano habría más de dos veces tan sensible como el Nexus One que hoy conocemos.
¿Cual es el problema?
Además de hacer todo el OS siente laggier y más lento para responder, la latencia de audio también era prohibitivo para muchas empresas a invertir el dinero y esfuerzo en traer cualquier tipo de aplicación de creación de música para Android. Muchos desarrolladores simplemente renunciaron a la idea de traer su aplicación de música para Android, algunos afirman que era simplemente "no es posible reproducir música en un teléfono Android." Mientras que puede haber sido un poco exagerado, lo hizo sin duda requiere más tiempo para codificar en un montón de funcionalidades de bajo nivel que fueron simplemente faltan en el kit de desarrollo de software de Android - e incluso después de todo ese trabajo, el resultado final aún estaba lejos de ser ideal y considerablemente peor que la experiencia en otras plataformas.
Por otra parte, iOS tenía todos los requisitos para un ecosistema de creación musical floreciente. Mientras que el éxito de la iPad fue sin duda un factor que contribuye de gran tamaño (ya componer música en una tableta es una experiencia incomparablemente mejor que en una pequeña pantalla del teléfono), simplemente no habría sido posible para iOS para alcanzar la popularidad que tiene hoy en el industria de la música, de no haber resuelto el problema de la latencia de audio primero.
Superpoderes, una empresa que fabrica un SDK de audio que funciona a través de múltiples plataformas, compilado datos tanto Google Play y la App Store, y llegaron a la conclusión de que, a pesar de que las aplicaciones de música solamente representaron el 3% de descargas de aplicaciones en iOS en el 1er trimestre de 2015, la Música App categoría fue la categoría tercera más alta de generación de ingresos en la App Store. En Google Play, la categoría Música está ni en las cinco principales categorías por descargas ni por ingresos. Debido a esto, la estimación superpoderes que muchos millones de dólares que podrían haber sido generados por 1 mil millones de usuarios de Android en su lugar se están quedando para Apple y los desarrolladores de iOS para agarrar.
Por desgracia, el IOS ha sido siempre muy por delante de Android en términos de latencia de audio. Incluso los dispositivos iOS como antiguo como el iPhone 4S (y mucho más) tienen niveles promedio de latencia de aproximadamente 7 ms. Eso es cincuenta veces menos que el promedio de latencia para los dispositivos Android en el 2011. Esa gran diferencia puede traducir fácilmente a una experiencia comparativamente horrible en Android, hasta el punto en que simplemente se convirtió en cómicamente malo. En el vídeo a continuación, se puede ver una comparación de dos aplicaciones del kit de batería que se ejecutan en tanto un iPad y tabletas Android en Ice Cream Sandwich. Escuche por el desfase entre el grifo en la pantalla y el sonido de la caja y platillos.
Es fácil ver cómo un largo rezago tal en la retroalimentación de audio puede paralizar cualquier esperanza que alguien pueda tener en el uso de Android para crear música. Considerando que es casi imposible de detectar una latencia de menos de 10 ms, un retraso de varias décimas de segundo es casi imposible no para escuchar. La lista de reproducción SoundCloud incrustado siguiente contiene cuatro pistas diferentes con diferentes retrasos entre una garrapata metrónomo y una nota del teclado, que van desde la ausencia de latencia en absoluto a las latencias de 5,8 ms, 108,8 ms (que era según se informa lo mejor para un dispositivo Android en el 2011), y 371,5 ms. Por mucho que lo intente, no puedo discernir cualquier diferencia entre la pista con el audio en tiempo real y el que tiene el retraso de 5,8 ms.
Pero ¿por qué hace exactamente iOS tienen tal ventaja injusta sobre Android? La razón tiene que ver con algo que Apple llama a su infraestructura "Core Audio". Básicamente, Core Audio está compuesto por un conjunto de marcos que permiten una gran cantidad de gastos generales involucrados en el procesamiento de audio que se acorte o se ha caído por completo. Core Audio en realidad ha existido por mucho más tiempo que el iPhone tiene: fue desarrollado inicialmente para OS X Panther, allá por el año 2003. Debido a esto, Apple fue capaz de tomar lo que ya tenía disponible en su sistema operativo de escritorio y portarlo a la primera versión del iPhone OS, como se le llamaba en aquel entonces.
Para su crédito, Google no han sido aflojando el ritmo tampoco. Las cosas han mejorado progresivamente en los últimos años, y el salto a Lollipop solo fue responsable de la roza latencia hasta en dos terceras partes. Un Nexus 4 corriendo Android 4.2.2 tuvo una latencia de audio estimada de unos 195 ms, y la actualización a la versión 5.1 que trajo abajo a sólo 58 ms.
Si bien esto era todavía no es suficiente para que coincida con iOS, la latencia de audio reducida en Lollipop fue suficiente para convencer a los principales desarrolladores como edjing a liberar sus aplicaciones de creación musical populares en Android. Aun así, los valores de latencia en el rango de 50 ms se sigue fácilmente detectadas por el oído humano, y todavía queda trabajo por hacer.
Los tiempos están cambiando'
Pero hay una luz al final del túnel, y la música a finales de los cables de los auriculares enredados. Después de haber logrado resultados prometedores con el lanzamiento de Lollipop, Google ha logrado reducir significativamente la latencia de nuevo en la melcocha. El Nexus 9 vio las mayores ganancias, al pasar de 32 ms en Android 5.1.1 a sólo 15 m en 6.0. El Nexus 5X y de la Nexus 6P ambos tienen niveles muy aceptables de 18 ms, y si usted tiene una mirada en Android.com, usted encontrará una colección de otros valores de latencia de ida y vuelta en varios dispositivos Nexus para varias versiones de Android .
Es interesante para probar la latencia de ida y vuelta en su propio dispositivo, y es realmente muy fácil de hacer por medio de una pequeña aplicación de código abierto realizada por superpoderes. Usted puede usar el enlace directo para descargar e instalar el archivo APK (o compilarlo desde el código fuente si usted es sospechoso) para hacer sus propias mediciones y compararlas con otros resultados. (Nota: en nuestras pruebas, los números dados por la aplicación fueron consistentemente más grande que los proporcionados por Google No estamos seguros de por qué esto es, pero usted debe tener esto en cuenta a la hora de probar la aplicación..) Superpoderes también entrar en mucho más detalle en su página web y romper cada paso que una señal de audio tiene que pasar por una prueba de latencia de ida y vuelta.
¿Cuándo es "bueno" lo suficientemente bueno?
La latencia de audio en Android ya ha caído hasta bien dentro de los niveles aceptables, y si la historia reciente es cualquier cosa ir cerca, que probablemente va a estar golpeando el valor objetivo de 10 ms para aplicaciones de audio profesional para el momento en Android N (? Turrón Nutella? ) lanza. Pero, ¿qué pasa después de eso? ¿Sigue siendo la pena invertir en continuar para reducir la latencia hasta, digamos, 5 ms, 1 ms, o incluso menos?
La respuesta corta - a diferencia de casi todas las demás compañías de especificaciones como para pelear por - es no. No al menos para casi cualquier aplicación que puede llegar a la meta es llegar a la latencia 0 ms: que simplemente no existe.
El hecho del asunto es que el sonido (junto con todo lo demás que conocemos en el Universo) se desplaza a una velocidad finita. En condiciones normales, una onda de sonido se propaga en alrededor de 340 metros (1100 pies) o por el aire en un solo segundo. Esto significa que incluso para los instrumentos físicos llanura de edad, existe una demora de audio entre el momento en que el instrumento se toca y el instante en que el sonido llega al oído del músico. Esto no se debe a alguna falla en diseño- del instrumento es sólo una simple consecuencia de las leyes de la física para una onda mecánica.
Para un violín - que se celebra a pocos pulgadas de distancia de la oreja del jugador - este retraso se traduce en alrededor de 0,5 ms, y para los instrumentos más grandes que se juegan más lejos (como un piano, guitarra o batería), esto puede llegar fácilmente 3 ms o más. Esto significa que para alguien como un pianista, tocando un piano digital directamente en sus auriculares a la latencia de audio cero sería efectivamente sentir como escuchar a sí mismos tocar el piano En el futuro.
Además de eso, hay un límite más allá del cual los seres humanos ya no pueden detectar latencia, y que el umbral es en realidad mucho mayor. Como regla general, comenzamos a percibir un sonido como algo separado (o en un sentido, para escuchar un eco) para latencias de más de 20 ms, y empezamos a "sentir" algún tipo de retraso o artefacto en alrededor de 12 ms. Incluso para los profesionales de la música, el límite por debajo del cual la latencia se vuelve completamente irrelevante, no es mucho menor.
En un estudio publicado por la Audio Engineering Society, los investigadores trataron de determinar la latencia más baja detectable por diferentes tipos de músicos. Básicamente, su objetivo era llevar a cabo una especie de prueba de latencia de ida y vuelta en los seres humanos: un músico podría cantar o tocar uno de los varios instrumentos eléctricos y el sonido se reproduce en sus auriculares con diferentes niveles de retardo de audio.
Lo que encontraron fue un conjunto de valores por debajo del cual se detectó ningún tipo de retraso o artefacto en absoluto. Con un nivel de confianza del 80%, este valor fue Al menos 28 ms para teclados, mientras que para los tambores, guitarras y bajo, que era 9 ms, 5 ms y 5 ms, respectivamente. Como era de esperar, el valor más bajo encontrado fue para las voces, donde los cantantes sólo comenzó a notar algunos artefactos leves en alrededor de 2 ms. (El estudio también encontró que el umbral para saxofones estaba en alrededor de 1 ms, pero ya que el tamaño de la muestra era pequeña y teniendo en cuenta que el sonido tarda por lo menos 2 ms para viajar desde el final de un saxofón de 25 pulgadas para el oído del saxofonista, investigadores concluyeron que se necesitan más datos para obtener un resultado preciso.)
Con estos datos, elaboramos otro gráfico para comparar estos valores con varios dispositivos Nexus que ejecutan diferentes versiones de Android, así como el iPhone 6, el aire 2 del iPad, y los tiempos de reacción humanos a diversos tipos de estímulos. Las líneas rojas y verdes de trazos representan los umbrales típicos para detectar retrasos de audio y para percibir defectos de audio, respectivamente. Siga adelante y haga clic en la imagen para verla más grande.
Si bien es claro que actualizaciones del sistema operativo juegan un papel importante (tal vez incluso el más importante), no todo lo que se puede atribuir al software por sí solo. Los dispositivos con hardware antiguo como el 2013 Nexus 7 todavía tienen una latencia de 55 ms, en comparación con los 15 m sobre el Nexus 9 - y sin embargo, ambos están ejecutando Android 6.0. Por otro lado, la nota 5 es más o menos a la par con el Nexus 5, a pesar de que las antiguas carreras Lollipop y éste se ejecuta la melcocha.
Conclusión
¿Qué podemos concluir de este largo análisis? En resumen, dos cosas. En primer lugar, si nos dejamos extrapolar de las recientes mejoras, Android es probable que a punto de golpear el objetivo ideal de 10 ms de latencia, que es el estándar para equipos de audio profesional. En segundo lugar, a menos que empecemos el desarrollo de auriculares para los murciélagos, no hay razón para tratar de reducir la latencia más allá de 5 ms o 2 ms en el mismo extremo.
Básicamente, si todo va bien, simplemente no existe el problema de la latencia de audio en Android por este tiempo el año que viene.
Este artículo se ha actualizado para aclarar que, en relación con los umbrales de percepción de retardo entre los diversos instrumentos, el nivel de confianza del 80% no fuera por el valor del punto de un determinado número de milisegundos, pero para el intervalo entre ese número y el infinito positivo.
- Fuente:
- Android.com,
- Superpoderes