Comment faire la différence entre modèle de silence et d'un motif sonore en signaux sonores dans l'iPhone OS

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

Question

Je suis en train de faire son test de latence. mon appareil recevra soit un signal sonore ou un signal de silence. Comment puis-je distinguer entre ces signaux. Aidez-moi, s'il vous plaît. Merci d'avance ..

Était-ce utile?

La solution

Cela dépend. Si l'audio numérique a été généré synthétiquement (comme par une autre fonction) et vous pouvez donc compter sur le fait que, dans un cas, vous obtenez un vrai silence numérique (échantillons mis à zéro), alors la solution est tout simplement pour tester les échantillons mises à zéro au-dessus de la fenêtre de mesure. Autre chose que zéro n'est pas le silence.

Je suppose, cependant, que vous avez affaire à son monde réel enregistré, disons, un microphone. Si tel est le cas, la mesure de l'énergie dans une fenêtre de temps et en le comparant à un seuil permet en effet de sens. Les deux paramètres que vous aurez à déterminer sont:

  1. niveau d'énergie de seuil
  2. Longueur de la fenêtre de temps

Si le seuil est trop faible, votre taux de faux positifs sera trop élevé; bruit de fond qui est un bip peut être interprété comme un signal sonore. A l'inverse, si votre seuil est trop élevé, votre système pourrait catégoriser un signal sonore comme le bruit. Heureusement, si vous faites audio avec un bruit de fond relativement faible, votre performance ne sera pas très sensible à ce seuil.

Des longueurs plus importantes de la fenêtre diminuera ces taux de faux positifs / négatifs, rendant ainsi votre système plus robuste, mais la facilité d'utilisation du système peuvent souffrir avec des fenêtres trop longues. Par exemple, les systèmes téléphoniques automatisés classifient pour faciliter la navigation des frappes de touches de menu. Si elles avaient besoin à l'utilisateur de tenir chaque touche pendant trois secondes à la fois, la précision améliorerait mais au détriment de la quasi-totalité facilité d'utilisation.

Je vous encourage à prendre pas une décision fondée uniquement sur l'un échantillon maximal que Paul a suggéré. Faire cela mine complètement la résistance aux faux positifs fournis par la longueur de la fenêtre d'échantillonnage.

Autres conseils

Regardez autour de 10 ms d'une valeur d'échantillons (par exemple 441 échantillons à 44,1 kHz) et mesurer l'énergie dans ce tampon. Si elle est au-dessus d'un certain seuil, il est un signal et si elle est en dessous du seuil, il est le silence.

Pour mesurer l'énergie résumer simplement la valeur au carré de chaque échantillon dans le tampon et diviser par le nombre d'échantillons.

Et s'ils utilisent la boucle de retour méthode, ne le bruit prendre en compte? Par exemple, s'ils envoient un signal sonore au second dispositif, Bouclage et le renvoyer à l'expéditeur, envoyer un paquet de silence et faire la même chose, peuvent-ils pas mesurer le temps d'attente au niveau de l'expéditeur (à condition qu'ils connaissent la latence du réseau réel) .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top