Проблема с вычислением БПФ для файлов AMR

Я пытаюсь разработать приложение, способное распознавать звуковой фрагмент с изображением животного. Что я делаю, так это то, что я беру запись AMR и читаю из него массив байтов, отправляю эти данные через БПФ и соответствующим образом вычисляю амплитуды.

Частота дискретизации файла AMR 8 кГц (стандартный AMR 15 секунд)

Количество точек БПФ 4096 для ввода 8192 значений

Затем я вычисляю амплитуду по амплитуде = 2 * значение точки БПФ / 8192

Итак, сейчас я намерен получить всплеск на частоте, относящейся к самой высокой амплитуде. Проблема в том, что всплеск на самой высокой амплитуде не является постоянным для какого-то другого звукового клипа того же животного. Для другого звукового клипа изменяется частота, относящаяся к максимальной амплитуде. Для этого есть причина?. Любая помощь и руководство по этому поводу будут оценены. Заранее спасибо.


person user1114638    schedule 26.12.2011    source источник
comment
Но этого не происходит - слишком расплывчатое описание конкретной проблемы, чтобы можно было дать полезные ответы.   -  person NPE    schedule 26.12.2011
comment
Спасибо за ответ. Проблема в том, что пик на самом высоком уровне не является постоянным для какого-то другого звукового клипа того же животного. Для другого звукового клипа изменяется частота, относящаяся к максимальной амплитуде. Для этого есть причина?   -  person user1114638    schedule 26.12.2011
comment
Я обновил вопрос, ответьте пожалуйста   -  person user1114638    schedule 26.12.2011


Ответы (1)


ваш файл имеет частоту дискретизации 8 кГц, но я думаю, что средняя частота человеческого слуха составляет около 20 кГц, поэтому вы уверены, что соблюдаете частоту Найквиста ваших сэмплов (файлы .wav обычно имеют частоту дискретизации не менее 48 кГц )?

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

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

person Felipe    schedule 26.12.2011
comment
спасибо Комыг. Нет, не знаю. Некоторые рекомендации по этому поводу будут оценены. Другая проблема заключается в том, что вышеупомянутая частота (8 кГц) является стандартной частотой для файла AMR. Так как же мне это изменить? Я открыт для чтения новых теорий, которые мне следует знать. - person user1114638; 26.12.2011
comment
Ну, во-первых, по вашему описанию, файлы AMR уже выбраны, поэтому вам не следует их повторно выбирать. Также вы не можете изменить частоту дискретизации ваших файлов, если у вас нет исходных файлов (тех, которые используются для кодирования файлов AMR). Из того, что я читал в Интернете, AMR - это стандарт для хранения голосовых аудиоданных, поэтому я не думаю, что у вас могут быть проблемы с частотой Найквиста, потому что этот кодек, по-видимому, широко используется, поэтому я могу только предположить, что кто-то думал об этой проблеме во время ее разработки. - person Felipe; 26.12.2011
comment
Однако из того, что я читал, этот кодек сильно сжимает аудиофайлы, поэтому он может быть неадекватным для вас, потому что вы теряете много полезных данных при сжатии. Возможно, вы сможете добиться лучших результатов, используя файл без сжатия (например, файл .wav). - person Felipe; 26.12.2011
comment
Приложение, которое я разрабатываю, представляет собой мобильное приложение. Итак, мой исходный формат записи - AMR. Это проблема. Можно ли преобразовать форматы из AMR в Wav в среде j2me? - person user1114638; 26.12.2011
comment
Я не уверен, сможете ли вы, однако здесь важно то, что после преобразования файлов в формат AMR вы уже потеряли часть своих данных из-за сжатия, поэтому даже если вы конвертируете свои файлы в формат скажем, в формате WAV или AIFF, вы уже потеряли данные после первого преобразования, поэтому качество ваших файлов / образцов не улучшится. Чтобы использовать файл WAV, вам нужен либо необработанный файл (используемый для создания файла AMR), либо вам нужно перезаписать звуки, а затем преобразовать их в WAV. - person Felipe; 26.12.2011
comment
Я попробую тот же процесс для файлов wav и свяжусь с вами, если у меня возникнут какие-либо проблемы. Спасибо - person user1114638; 26.12.2011
comment
Ваше предложение было полностью правильным Комыг. Спасибо. Я получил нужный мне шип. Но теперь вопрос о том, как получить шаблон, который я смогу идентифицировать позже, кажется «долгим выстрелом». Кто-нибудь сможет предложить идею, пожалуйста. - person user1114638; 26.12.2011
comment
Добро пожаловать! Что касается распознавания шаблона, у меня не так много предложений, обычно это довольно сложно сделать (как и любые биометрические алгоритмы в целом) ... Вам, вероятно, потребуется найти коэффициент корреляции между стандартом сигнал и ваш текущий образец и решите, основываясь на пороговом значении, если они работают или нет. Возможно, вам нужно будет провести некоторое исследование в области обработки сигналов и распознавания образов. - person Felipe; 26.12.2011
comment
что вы имеете в виду под стандартным сигналом. Это стандартный звуковой клип зверька? - person user1114638; 26.12.2011
comment
Под стандартным сигналом я подразумеваю, что у вас должен быть стандарт для сравнения, что-то вроде среднего звука, который издают ваши животные ... Однако я действительно мало знаю о том, что вы можете делать (мои университетские дни давно прошли). Возможно, вы можете задать другой вопрос по этой конкретной проблеме (этот помечен как ответ, поэтому я думаю, что на него не будет много людей). Или, может быть, вы можете обратиться за помощью к своим (бывшим) преподавателям в вашем университете. - person Felipe; 26.12.2011