1 votos

¿Cómo probar cuál es mi latencia de salida de audio en MacBook?

Estoy tratando ahora a probar mi auditiva tiempo de reacción utilizando un guión que escribió en la línea de comandos (usando el clásico echo -ne '\007' beep).

Me estoy poniendo de los tiempos de reacción siempre mayor de 340 ms. Cuando yo intente esto con un estímulo visual (echo go) en cambio, estoy recibiendo alrededor de 280 ms.

Aparentemente humanos de audio, el tiempo de reacción debe ser más rápido que el tiempo de reacción visual (según muchos de los estudios publicados).

Por supuesto, podría ser que mi visual el tiempo de reacción es más rápida, pero ¿cómo puedo comprobar lo que mi MacBook salida de audio de latencia que realmente es?

2voto

Douglas Puntos 10417

Usted realmente no puede medir la latencia "a través de" el sistema operativo debido a la sobrecarga de las colas y de la gestión de los procesos. Para ser "más precisa" sería necesario escribir un programa que se puede acceder directamente al núcleo, así que usted puede evaluar el tiempo real entre los eventos - el sonido y la pulsación de tecla.

Sin embargo, usted puede conseguir bastante de cerca en bash mediante el uso de la time función. He creado la base de una secuencia de comandos bash que solicitará que el usuario presione Entrar después de esperar un pitido a ocurrir después de un azar período.

# generate a random number between 3 and 10 for seconds to wait for beep
t=$(( ( RANDOM % 10 ) + 3 ))

echo "When you hear the beep, press Enter!"
echo
echo

sleep $t

# beep the computer and get the time
time echo -ne '\007'

# wait for keypress and get the time
time read keypress 

Te encontrarás con tres valores de tiempo dos veces. Ellos se definen como:

  • Real - el tiempo de principio a fin de la llamada medir, si usted tenía un cronómetro en la mano. Esto representa para todos los procesos en ejecución en el tiempo.
  • Usuario - este es el tiempo de permanencia en el espacio de usuario fuera del núcleo y es el tiempo de CPU dedicado a ejecutar la tarea
  • Sys - este es el tiempo invertido en el interior del núcleo , y también es el tiempo real invertido por la CPU.

Para obtener más información sobre esto, vea Real, el Usuario Sys y el tiempo de proceso de las estadísticas.


Así, con el fin de precisión, Real es en el estadio de béisbol, el Usuario es bastante maldito cerca, y Sys es muerto por bolas precisa, tan lejos como la CPU se refiere.

Ejemplo De Salida:

When you hear the beep, press Enter!

real    0m0.000s
user    0m0.000s
sys     0m0.000s

real    0m0.812s
user    0m0.000s
sys     0m0.000s

En el ejemplo anterior muestra que la latencia de acuerdo con los ordenadores "cronómetro", no era una .812s diferencia entre cuando escuché el pitido y presiona Entrar. La resolución de la utilidad de tiempo no es granular suficiente para medir el tiempo transcurrido para ejecutar cada comando, así que suponemos que sucedió "inmediatamente".

Ejecutar de nuevo....

When you hear the beep, press Enter!

real    0m0.003s
user    0m0.001s
sys     0m0.002s

real    0m0.924s
user    0m0.001s
sys     0m0.002s

A partir de esto, podemos ver que hubo algún tipo de sobrecarga que provocó el proceso de cuentas por más tiempo. Si restamos la parte superior de los valores de la parte inferior, se puede llegar muy cerca de cuánto tiempo transcurrió.

Pero es preciso suficiente?

No. Esta es la razón por la que usted necesita un dispositivo llamado un Audiómetro que es construido como un pedazo de hardware que mide el tiempo entre los dos eventos - sonido y una pulsación de tecla. Es mucho más preciso porque se elimina la sobrecarga de la CPU de gestión y le da un verdadero precisa de tiempo transcurrido.

0voto

Jose Chavez Puntos 645

En primer lugar - el uso de echo -ne '\007' para reproducir el audio no es "de baja latencia de audio". I. e. este comando en sí misma podría tomar una (relativamente) de largo, mientras que para reproducir el audio. Por lo tanto su uso para medir los tiempos de respuesta en las unidades de milisegundos no va a ser preciso en todo.

Una manera de medir sería utilizar un grabador de audio de algún tipo con la conocida baja latencia combinada con otro tipo de salida desde el ordenador con la conocida baja latencia. Si usted tiene el equipo, usted podría, por ejemplo, utilizar un osciloscopio con una entrada de disparo. En términos más simples, se podría utilizar un iPhone con slo-mo la grabación de vídeo. Luego de hacer el programa desencadenar la salida (podría ser una e/S digital o en términos simples mostrar algo en la pantalla) y, a continuación, medir la cantidad de tiempo antes de ver el audio en la señal (en el osciloscopio o en la pista de audio de la grabación de vídeo).

Varias otras formas de medir la latencia de existir, pero los mencionados anteriormente es una forma sencilla de obtener una medición que es lo suficientemente precisa como para saber si el retardo de audio es realmente 60 ms grande que la de su visual retraso.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X