Читать и понимать содержимое файла AMR на Android

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

В какой-то момент я распечатал содержимое и получил кучу целых чисел, но понятия не имею, что они означают.

Любая помощь приветствуется. Спасибо!

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы можете получить данные, но совсем не знаете основ обработки аудиосигнала.

Данные, которые вы просматриваете, вероятно, представляют собой необработанные байты, которые необходимо преобразовать в ИКМ (импульсно-кодовая модуляция). Java Обзор образца пакета немного говорит об отношении байтов к PCM, как это определено конкретным форматом.

Например, если формат определяет 16-битное кодирование, то два байта (каждый из которых имеет 8 бит) будут объединены, чтобы сформировать одно значение PCM, которое будет находиться в диапазоне от -32767 до 32767. (Некоторые люди работают непосредственно с этими числами, другие масштабируют числа с плавающей запятой в диапазоне от -1 до 1).

А если файл 44100 fps, то будет 44100 "кадров" данных в секунду, где кадр скорее всего будет моно или стерео (один PCM или два значения PCM на кадр)

Учебник довольно быстро раскрывает особенности Java, но, по крайней мере, дает общее представление, и у вас будет больше терминов для поиска чего-то более специфичного для Android.

Если вы хотите углубиться или углубиться в детали, вы можете обратиться к Руководство для ученых и инженеров по цифровой обработке сигналов Стива Смита. Это бесплатная онлайн-книга, которую я считаю чрезвычайно полезной.

Другие вопросы по теме