Android Audio Latency In-Depth: ça va mieux, surtout avec le Nexus 5x et 6P
Contenu de l'Article
Latence audio est définie comme le temps de retard que subit un signal qui passe dans un système. Sur un appareil mobile, cela est profondément liée à combien de temps il prend entre tapant sur un écran et recevoir des commentaires audio. Faible latence audio peut être la différence entre une expérience de jeu immersive et une désagréable déconnectés l'un,. Trop longtemps une latence et un dispositif peuvent se sentir étrangement commencent lag, même si chaque animation visuelle est vif et réactif. Il est particulièrement important - essentiel, même - pour l'enregistrement et composer de la musique, des commentaires audio depuis lente peut facilement se débarrasser de même les meilleurs artistes et de détruire leur processus créatif. Faible latence est absolument fondamentale dans un système d'exploitation moderne, et ça a été absolument terrible sur Android.
Il ya plusieurs façons de mesurer la latence, et un très utile et facile à comprendre l'un est appelé latence aller-retour. Latence aller-retour est calculé par la saisie d'un signal audio dans un dispositif et en mesurant la quantité de temps qu'il faut au signal pour sortir la sortie. Le Nexus One, par exemple, avait une latence aller-retour d'autant que 350 millisecondes (ms). A titre de comparaison, la durée de réaction moyenne d'un être humain à un stimulus audio est d'environ 170 ms. En d'autres mots, - tout incontestablement pratique - un Nexus One fait avec des oreilles humaines serait plus de deux fois aussi sensible que le Nexus One que nous connaissons aujourd'hui.
Quel est le problème?
En plus de rendre l'ensemble OS sentir laggier et plus lents à réagir, la latence audio est également prohibitif pour de nombreuses entreprises à investir de l'argent et d'efforts à apporter tout type d'application de création musicale à Android. Beaucoup de développeurs ont simplement abandonné sur l'idée d'apporter leur application musicale pour Android, avec certains affirmant qu'il était tout simplement «pas possible de jouer de la musique sur un téléphone Android." Bien que cela puisse avoir été un peu exagéré, il ne nécessite aucun doute plus de temps pour coder en lots de fonctionnalités de bas niveau qui ont été tout simplement absents de Kit de développement logiciel Android - et même après tout ce travail, le résultat final était encore loin d'être idéale et bien pire que l'expérience sur d'autres plates-formes.
D'autre part, iOS avait toutes les exigences d'un écosystème de la création musicale florissante. Alors que le succès de l'iPad était sans doute un grand facteur contributif (depuis composer de la musique sur une tablette est incomparablement meilleure expérience que sur un petit écran de téléphone), il ne serait tout simplement pas été possible pour iOS pour atteindre la popularité qu'il a aujourd'hui dans le industrie de la musique si elle n'a pas résolu la question de la latence audio en premier.
Surpuissant, une entreprise qui fabrique un SDK audio qui fonctionne sur de multiples plateformes, compilé des données à la fois Google Play et l'App Store et a conclu que, même si les applications de musique ne représentaient que 3% des téléchargements d'applications sur iOS au 1er trimestre de 2015, la Musique catégorie app était la catégorie troisième rang de génération de revenus dans l'App Store. Sur Google Play, la catégorie de musique est ni dans les cinq principales catégories de téléchargements, ni par les recettes. Pour cette raison, estimation superpowered que plusieurs millions de dollars qui auraient pu être générés par 1 milliard d'utilisateurs d'Android sont plutôt laissés pour Apple et les développeurs iOS à saisir.
Malheureusement, iOS a toujours été en avance sur Android en termes de latence audio. Même les appareils iOS aussi vieux que l'iPhone 4S (et beaucoup plus) ont des niveaux de latence moyenne d'environ 7 ms. Voilà cinquante fois moins que la latence moyenne pour les appareils Android en 2011. Ce beaucoup de différence peut facilement se traduire par une expérience relativement horribles sur Android, au point où il est tout simplement devenu comiquement mauvais. Dans la vidéo ci-dessous, vous pouvez voir une comparaison de deux applications de kit de batterie fonctionnant à la fois sur un iPad et une tablette Android sur Ice Cream Sandwich. Écouter pour le décalage entre le tap sur l'écran et le son de la caisse claire et cymbales.
Il est facile de voir comment un si long retard dans le retour audio peut paralyser tout espoir que quelqu'un pourrait avoir à utiliser Android pour créer de la musique. Considérant qu'il est presque impossible de détecter une latence de moins de 10 ms, un retard de plusieurs dixièmes de seconde est presque impossible ne pas entendre. La playlist SoundCloud intégré ci-dessous contient quatre pistes différentes avec des retards variant entre une tique métronome et une note de clavier, allant de l'absence de latence à tous de latences de 5,8 ms, 108,8 ms (ce qui aurait été le meilleur pour un appareil Android en 2011), et 371,5 ms. Aussi dur que je tente, je ne peux pas discerner une différence entre la piste avec l'audio en temps réel et celui avec le retard de 5,8 ms.
Mais pourquoi exactement ne iOS ont un tel avantage injuste sur Android? La raison a à voir avec quelque chose d'Apple appelle son infrastructure "Core Audio". Fondamentalement, Core Audio est composé d'un ensemble de cadres qui permettent beaucoup de frais généraux impliqués dans le traitement audio de raccourcir ou abandonné entièrement. Core Audio a réellement été autour pendant beaucoup plus longtemps que l'iPhone a: il a été initialement développé pour Mac OS X Panther, le chemin du retour en 2003. Pour cette raison, Apple a été en mesure de prendre ce qu'il avait déjà disponibles sur son système d'exploitation de bureau et le port qu'il au cours de la première version de l'iPhone OS, comme on l'appelait à l'époque.
À leur crédit, Google n'a pas été relâchement soit. Les choses ont progressivement améliorée au fil des ans, et le saut pour Lollipop seule était responsable pour avoir cinglé latence jusqu'à deux tiers. Un Nexus 4 exécutant Android 4.2.2 avait une latence audio approximative d'environ 195 ms, et la mise à niveau vers la version 5.1 introduit que vers le bas pour seulement 58 ms.
Bien que ce fut toujours pas assez pour égaler iOS, la latence audio réduit sur Lollipop était suffisant pour convaincre les grands développeurs comme Edjing à libérer leurs applications de création musicale populaires sur Android. Même ainsi, les valeurs de latence dans la gamme de 50 ms sont encore facilement détectés par l'oreille humaine, et il reste encore du travail à faire.
Les temps sont en-Changin '
Mais il ya la lumière au bout du tunnel, et de la musique à la fin de vos câbles du casque enchevêtrées. Après avoir obtenu des résultats prometteurs avec la sortie de Lollipop, Google a réussi à réduire de manière significative vers le bas sur la latence nouveau sur guimauve. Le Nexus 9 a vu les plus grands gains, passant de 32 ms dans Android 5.1.1 vers le bas pour seulement 15 ms à 6,0. Le Nexus et le Nexus 5X 6P ont tous deux des niveaux très acceptables de 18 ms, et si vous avez un coup d'oeil sur Android.com, vous trouverez une collection d'autres valeurs de latence aller-retour sur plusieurs appareils Nexus pour plusieurs versions d'Android .
Il est intéressant de tester la latence aller-retour sur votre propre appareil, et il est effectivement très facile de le faire en utilisant une petite application open-source réalisés par des super-pouvoirs. Vous pouvez utiliser le lien direct pour télécharger et installer le fichier APK (ou compiler depuis les sources si vous êtes suspect) pour faire vos propres mesures et de les comparer à d'autres résultats. (Remarque: lors de nos tests, les chiffres donnés par l'application étaient systématiquement plus élevées que celles fournies par Google Nous ne savons pas pourquoi il en est, mais vous devez garder cela à l'esprit lorsque vous essayez sur l'application..) Superpowered aussi aller dans beaucoup plus de détails sur leur site Web et décomposer chaque étape qu'un signal audio doit passer par un test de latence aller-retour.
Quand est assez «bon» bonne?
La latence audio dans Android a déjà chuté à bien des niveaux acceptables, et si l'histoire récente est quelque chose aller près, nous allons probablement être frapper la valeur cible de 10 ms pour les applications audio professionnelles par le temps Android N (Nutella? Nougat? ) déploie. Mais qu'est-ce qui se passe après? Est-il encore la peine d'investir pour continuer à réduire la latence jusqu'à, disons, 5 ms, 1 ms, voire moins?
La réponse courte - contrairement à presque toutes les autres sociétés de spec aiment se battre plus - est non. Au moins pour à peu près toutes les applications que vous pouvez venir avec, l'objectif est de ne pas atteindre 0 ms de latence: qui ne existe tout simplement pas.
Le fait de la question est que le son (avec tout ce que nous savons de l'Univers) se déplace à une vitesse finie. Dans des conditions normales, une onde sonore se propage à environ 340 mètres (1100 pieds) ou par le biais de l'air en une seule seconde. Cela signifie que même pour les vieux instruments physiques simples, il existe un délai audio entre le moment où l'instrument est joué et l'instant où le son atteint l'oreille du musicien. Cela ne veut pas en raison d'une faille dans la conception-de l'instrument, il est juste une simple conséquence des lois de la physique pour une onde mécanique.
Pour un violon - qui se tient à quelques pouces de l'oreille du lecteur - ce retard traduit à environ 0,5 ms, et de plus grands instruments qui sont joués plus loin (comme un piano, la guitare ou batterie), ce qui peut facilement atteindre 3 ms ou plus. Cela signifie que pour quelqu'un comme un pianiste, jouant un piano numérique directement dans leurs écouteurs à zéro latence audio aurait pour effet de se sentir comme l'écoute de se jouer du piano A l'avenir.
En plus de cela, il ya une limite au delà de laquelle les humains ne peuvent plus détecter les temps de latence, et ce seuil est en fait beaucoup plus élevé. En règle générale, nous commençons à percevoir un son comme séparé (ou dans un sens, d'entendre un écho) des latences de plus de 20 ms, et nous commençons à «sentir» une sorte de retard ou d'un artefact à environ 12 ms. Même pour les musiciens professionnels, la limite en dessous de laquelle la latence devient complètement hors de propos est pas beaucoup plus bas.
Dans une étude publiée par l'Audio Engineering Society, les chercheurs ont tenté de déterminer la latence la plus faible détectable par différents types de musiciens. Fondamentalement, leur objectif était de réaliser une sorte de test de latence aller-retour sur les humains: un musicien serait chanter ou jouer d'un des instruments électriques et le son sera joué de nouveau dans leurs écouteurs avec différents niveaux de retard audio.
Ce qu'ils ont trouvé était un ensemble de valeurs en dessous de laquelle absolument aucune sorte de retard ou d'un artefact a été détecté à tous. Avec un niveau de confiance de 80%, cette valeur était au moins 28 ms pour les claviers, tandis que pour les tambours, guitares et des basses, il était de 9 ms, 5 ms et 5 ms, respectivement. On pouvait s'y attendre, la valeur la plus faible était constaté pour les voix, où les chanteurs seulement commencé à remarquer quelques légers artefacts autour de 2 ms. (L'étude a également constaté que le seuil pour saxophones était à environ 1 ms, mais puisque la taille de l'échantillon était petit et étant donné que son prend au moins 2 ms pour voyager de la fin d'un saxophone de 25 pouces à l'oreille du joueur de saxophone, les chercheurs ont conclu que davantage de données seraient nécessaires pour obtenir un résultat précis.)
Grâce à ces données, nous avons dressé un autre tableau pour comparer ces valeurs avec plusieurs appareils Nexus exécutant différentes versions d'Android, ainsi que l'iPhone 6, l'iPad 2, Air et des temps de réaction humaine à différents types de stimuli. Les lignes rouges et vertes en pointillés représentent les seuils typiques pour détecter des décalages audio et pour percevoir artefacts audio, respectivement. Allez-y et cliquez sur l'image ci pour l'agrandir.
Alors qu'il est clair que les mises à jour OS jouent un rôle important (peut-être même le plus important), tout ne peut pas être attribuée à un logiciel seul. Les appareils avec le matériel plus ancien, comme en 2013 Nexus 7 ont toujours un temps de latence de 55 ms, par rapport aux 15 ms sur le Nexus 9 - et pourtant les deux sont en cours d'exécution Android 6.0. D'autre part, la note 5 est à peu près à égalité avec le Nexus 5, même si les anciens pistes Lollipop et celui-ci fonctionne de guimauve.
Conclusion
Alors, que pouvons-nous conclure de cette longue analyse? En bref, deux choses. Tout d'abord, si nous nous permettons d'extrapoler sur les améliorations récentes, Android est probablement sur le point de frapper l'objectif idéal de 10 ms de latence, ce qui est la norme pour l'équipement audio professionnel. Deuxièmement, si nous ne commençons développer un casque pour les chauves-souris, il est inutile d'essayer de réduire la latence au-delà de 5 ms ou 2 ms à la très extrême.
Fondamentalement, si tout va bien, la question de la latence audio sera tout simplement pas exister sur Android par ce temps l'année prochaine.
Cet article a été mis à jour afin de préciser que, concernant les seuils de retard perception entre les différents instruments, le niveau de 80% de confiance était pas pour la valeur du point d'un nombre donné de millisecondes mais pour l'intervalle entre ce nombre et l'infini positif.
- La source:
- Android.com,
- Superpowered