Голосовые эффекты будут недоступны так как система не поддерживает файлы adpcm

Обновлено: 03.07.2024

Есть такой аудиокодек — IMA ADPCM. Сжимает аудио в 4 бита на сэмпл (250 кбит/с при частоте дискретизации 32 кГц, стерео), после чего, достаточно достоверно восстанавливает. А главное, очень быстро. Около 100 тактов на сэмпл на ядре AVR.

Как это работает?

Возьмём обычный файл звук.wav, закодированный в самом распространённом формате — PCM, 16 бит на сэмпл. Амплитуда каждого сэмпла представлена в нём числом от -32768 до 32767. Возьмём и заменим каждый сэмпл на разницу (дельта) между ним и предыдущим сэмлом. Получим формат DPCM — Differential PCM. Но тут мы ничего не выиграли, полученная дельта уже и в 16 бит не влезает. Получается число от -65535 до 65535.

Но что, если уменьшить разрядность дельты? Если сигнал нарастает или убывает незначительно, всё будет хорошо. Но на крутых подъёмах и спусках изменение будет превышать разрядность дельты, возникнут искажения.

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

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

Данный формат называется ADPCM — Adaptive Differential PCM. Осталось решить как рассчитывать изменение шага. Существует несколько алгоритмов. Здесь мы поговорим о IMA ADPCM. Это быстрый и простой алгоритм, оптимизированный для музыки.

Шаг берётся из специальной таблицы (ima_step_table), заполненной волшебными числами. Номер (step_index) шага в этой таблице изменяется после кодирования каждого сэмпла, в зависимости от скорости нарастания или убывания сигнала, по другой таблице (ima_index_table). Сжатый сэмпл занимает 4 бита (nibble) — 1 бит для знака и 3 для абсолютного значения (т.о. сжатый сэмпл может принимать значения от -7 до 7).


При сжатии и восстановлении обязательно нужно учитывать возможные переполнения sample и step_index. Они случаются достаточно редко, но если случаются, то могут привести к плачевным последствиям. sample должен быть ограничен пределами от -32768 до 32767, step_index — от 0 до 88.

Кстати, этот кодек — отличный пример, показывающий превосходства программирования на ассемблере. Взять те же переполнения. При программировании на языке высокого уровня информация о переполнениях теряется, приходится использовать более длинный тип данных, и делать медленные сравнения. Что ужасно сказывается на производительности.

Ладно, вот моя реализация декодера.

А вот пример использования

snd_freq устанавливает частоту загрузки данных из кольцевого буфера в регистр PWM
snd_out ложит данные в кольцевой буфер

А здесь можно скачать прогу для перекодировария WAV файлов в IMA и пример прошивки, воспроизводящей файл, сжатый IMA с SD-карточки.

зы. Данный кодек я очень люблю, и юзаю как в девайсах на МК, так и в прогах для компа, для передачи звука по сети (в этом случае можно сверху ещё deflate'ом прижать).

Программы, которые поддерживают ADPCM расширение файла

В следующем списке перечислены программы, совместимые с файлами ADPCM, которые разделены на категории 3 в зависимости от операционной системы, в которой они доступны. Файлы с суффиксом ADPCM могут быть скопированы на любое мобильное устройство или системную платформу, но может быть невозможно открыть их должным образом в целевой системе.

Программы, обслуживающие файл ADPCM

Updated: 12/23/2019

Как открыть файл ADPCM?

Отсутствие возможности открывать файлы с расширением ADPCM может иметь различное происхождение. К счастью, наиболее распространенные проблемы с файлами ADPCM могут быть решены без глубоких знаний в области ИТ, а главное, за считанные минуты. Мы подготовили список, который поможет вам решить ваши проблемы с файлами ADPCM.

Шаг 1. Скачайте и установите Microsoft Windows Media Player

Шаг 2. Обновите Microsoft Windows Media Player до последней версии

Update software that support file extension ADPCM

Если проблемы с открытием файлов ADPCM по-прежнему возникают даже после установки Microsoft Windows Media Player, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия Microsoft Windows Media Player. Может также случиться, что создатели программного обеспечения, обновляя свои приложения, добавляют совместимость с другими, более новыми форматами файлов. Если у вас установлена более старая версия Microsoft Windows Media Player, она может не поддерживать формат ADPCM. Самая последняя версия Microsoft Windows Media Player обратно совместима и может работать с форматами файлов, поддерживаемыми более старыми версиями программного обеспечения.

Шаг 3. Свяжите файлы ADPCM Audio Format с Microsoft Windows Media Player

Если у вас установлена последняя версия Microsoft Windows Media Player и проблема сохраняется, выберите ее в качестве программы по умолчанию, которая будет использоваться для управления ADPCM на вашем устройстве. Процесс связывания форматов файлов с приложением по умолчанию может отличаться в деталях в зависимости от платформы, но основная процедура очень похожа.

Associate software with ADPCM file on Windows

Процедура изменения программы по умолчанию в Windows

  • Щелкните правой кнопкой мыши на файле ADPCM и выберите « Открыть с помощью опцией».
  • Выберите Выбрать другое приложение → Еще приложения
  • Последний шаг - выбрать опцию Найти другое приложение на этом. указать путь к папке, в которой установлен Microsoft Windows Media Player. Теперь осталось только подтвердить свой выбор, выбрав Всегда использовать это приложение для открытия ADPCM файлы и нажав ОК .

Процедура изменения программы по умолчанию в Mac OS

Шаг 4. Проверьте ADPCM на наличие ошибок

Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл ADPCM действительным. Вероятно, файл поврежден и, следовательно, недоступен.

Check ADPCM file for viruses

1. Убедитесь, что ADPCM не заражен компьютерным вирусом

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

2. Убедитесь, что структура файла ADPCM не повреждена

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

3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.

Существует вероятность того, что данный файл может быть доступен только пользователям с достаточными системными привилегиями. Войдите в систему, используя учетную запись администратора, и посмотрите, решит ли это проблему.

4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия Microsoft Windows Media Player

Если в системе недостаточно ресурсов для открытия файлов ADPCM, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.

5. Проверьте, есть ли у вас последние обновления операционной системы и драйверов

Последние версии программ и драйверов могут помочь вам решить проблемы с файлами ADPCM Audio Format и обеспечить безопасность вашего устройства и операционной системы. Возможно, что одно из доступных обновлений системы или драйверов может решить проблемы с файлами ADPCM, влияющими на более старые версии данного программного обеспечения.

Вы хотите помочь?

Если у Вас есть дополнительная информация о расширение файла ADPCM мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле ADPCM.

Как проиграть звуковой файл,
записанный в формате Sanyo LD ADPCM


Изредка, но пока ещё встречаются "особенные"(или, как обычно выражаются, пропиетарные) звуковые форматы, которые некоторые фирмы выдумывают, модифицируя известные форматы. Зачем? Ну наверное для того, чтобы улучшить какие-то параметры своих устройств. Но часто такое улучшение приводит к тому, что у пользователей болит голова по поводу как воспроизвести такой файл на других компьютерах.
Вот такой файл и попал мне в руки, когда на дружественном форуме попросили разобраться с аудиофайлом. MediaInfo, который обычно помогал определить формат файла, показывал что у файла формат ADPCM, идентификатор кодека 125. Кодек ADPCM в системе был установлен, но проигрывания звука не происходило - система жаловалась на отсутствие кодека. Пришлось более углублённо изучить информацию в интернете и выяснилось, что идентификатор кодека 125 имеет достаточно специфичный формат - Sanyo LD ADPCM. Что в общем то было логично - файл был взят с диктофона Sanyo.
Пришлось поискать кодек для Sanyo LD ADPCM и поиск был успешен. Для тех, кто не желает раскапывать глубины интернета, выкладываю его у себя - Sanyo-ADPCM-codec.zip. После установки этого кодека все медиаплееры стали успешно воспроизводить звуковой файл этого хитрого формата.
Однако кроме того, "как проиграть?", меня ещё спрашивали - "можно ли его преобразовать в MP3?". Преобразовав в несжатый WAV с помощью WinAmp-а("напрямую" в MP3 он не сжимался), а затем в MP3 с помощью LameXP я выяснил что этот формат не так и плох и имеет право на жизнь. Файлы MP3 примерно такого же качества получались раза в полтора больше оригинала. Наверное можно было поизучать тонкие настройки и сжать в MP3 более плотно - но проще, учитывая занимаемое для конверсии время и дисковое пространство("разжатый" WAV имел размер примерно в 40 больше оригинала!) было поставить в компьютеры, на которых надо прослушать файл, кодек Sanyo LD ADPCM - и не терять время на преобразование.

Статья обсуждается на Всеобщем форуме в этом топе.
Копия статьи помещена в мой дневник.

Читайте также: