2010-02-10 1 views
1

Я делаю тест на латентность звука. мое устройство будет получать либо звуковой сигнал, либо сигнал молчания. Как я могу различать эти сигналы. Пожалуйста, помогите мне. Заранее спасибо ..Как различать шаблон молчания и звуковой сигнал в звуковых сигналах в iPhone OS

ответ

1

зависит от цели. Если цифровой звук генерировался синтетически (например, другой функцией), и вы можете, таким образом, полагаться на то, что в одном случае вы получите истинное цифровое молчание (обнуленные выборки), тогда решение просто проверяет обнуленные выборки над окном измерения. Все, кроме нуля, не является тишиной.

Я бы предположил, что вы имеете дело с реальным звуком, записанным, скажем, с микрофона. Если это так, то измерение энергии в окне времени и сравнение ее с порогом действительно имеет смысл. Два параметра, которые вы должны будете определить, являются:

  1. Пороговый уровень энергии
  2. Длина временного окна

Если порог слишком низкий, процент ложных срабатываний будет слишком высокой ; фоновый шум, который не является звуковым сигналом, может интерпретироваться как звуковой сигнал. И наоборот, если ваш порог слишком высок, ваша система может классифицировать звуковой сигнал как шум. К счастью, если вы делаете звук с достаточно низким фоновым шумом, ваша производительность не будет очень чувствительной к этому порогу.

Более длинные длины окна уменьшат эти ложные положительные/отрицательные значения, что сделает вашу систему более надежной, но юзабилити системы может пострадать от чрезмерно длинных окон. Например, автоматизированные телефонные системы классифицируют нажатия клавиш для помощи в навигации по меню. Если они потребовали от пользователя удерживать каждую клавишу в течение трех секунд за раз, точность повысилась бы, но за счет почти всего удобства использования.

Я призываю вас НЕ принять решение, основанное исключительно на одном максимальном образце, предложенном Павлом. Это полностью подрывает сопротивление ложным срабатываниям, обеспечиваемым длиной окна выборки.

+0

, но проситель сказал, что это просто тест на латентность звука. Насколько я понял вопрос, шум микрофона не является проблемой. –

+0

Для меня «тест на латентность звука» означает, что KennyTM будет анализировать временные окна в последовательности, пока не найдет тот, где присутствует сигнал. Способ определения присутствия зависит от того, может ли образец иметь шум, поэтому я рассматриваю эти проблемы как ортогональные. Я думаю, мы можем согласиться, однако, что дополнительная информация от KennyTM поможет. – seanmac7577

+0

Спасибо за все ваши ответы Стив, Пол, Chunks и Seanmac .. Все это правильные ответы в моем случае. В основном сейчас мне нужно только тест на латентность звука.Но в будущем случае ответ Seanmac мне поможет, потому что я буду использовать звук с микрофона. Еще раз спасибо.. –

3

Посмотрите на образцы около 10 мс (например, 441 образец на 44,1 кГц) и измерьте энергию в этом буфере. Если он выше некоторого порога, это сигнал, и если он ниже порога, тогда это тишина.

Для измерения энергии просто суммируйте квадрат каждого образца в буфере и разделите его на количество выборок.

+0

+1, но для простого сценария, подобного этому, я думаю, что просто вычисление абсолютного значения max достаточно устойчиво и будет быстрее. –

+0

@Steve - Это зависит от того, есть ли у вас шум - если вы просто смотрите на чистый тон и полную тишину, то да, вы, вероятно, можете использовать более грубое решение. –

0

Что делать, если они используют метод обратной связи, учитывает шум? Например, если они отправляют звуковой сигнал на второе устройство, Loopback & отправляет его обратно отправителю, отправляет пакет молчания и делает то же самое, не может ли он измерять задержку на уровне отправителя (при условии, что они знают фактическую задержку сети) ,

Смежные вопросы