преобразование аудио в 8-битный текстовый образец

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

Вопрос

У меня сегодня интересный вопрос.

Мне нужно конвертировать некоторые аудиофайлы покемонов в список 8-битных сэмплов (значения 0–255).Я пишу программу сборки на чипсете MC6800, которая потребует воспроизведения этих звуков.Я планирую включить массив с 8-битными выборками, которые программа будет обрабатывать при вызове функции.

Кто-нибудь знает способ конвертировать аудиофайлы (wav/mp3) в список 8-битных текстовых значений, разделенных запятыми? Или что-нибудь из этого относительного метода?

Огромное спасибо заранее!

Это было полезно?

Решение

Вы можете использовать инструмент «sox» командной строки или аудиоредактор Audacity, чтобы преобразовать файл в необработанный 8-битный монофонический аудиофайл без знака.

В Audacity 1.3 или более поздней версии откройте аудио, затем выберите «Экспорт», выберите «Wave, AIFF и другие несжатые типы» в качестве формата, затем нажмите «Параметры»...- затем выберите «Другое...» для формата, «RAW» для заголовка и 8-битный PCM со знаком в качестве кодировки.(К сожалению, без знака недоступно.)

Из командной строки попробуйте sox с -c 1 для 1 канала, -t raw для отсутствия заголовка, -u для линейного без знака и -1 для 1 байта на выборку.

Затем вы можете использовать такой инструмент, как «hexdump», чтобы выгрузить байты файла в виде чисел и вставить их в свой код.

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

Если носки его нет, вам придется использовать его для создания необработанных файлов (без заголовков) и самостоятельно конвертировать необработанные файлы в файлы, разделенные запятыми.

РЕДАКТИРОВАТЬ:sox имеет «Необработанные текстовые данные» в качестве одного из своих форматов с веб-страницы.Вы можете заставить его преобразовать ваши звуковые файлы в беззнаковые 8-битные линейные сэмплы за первый проход, а затем, вероятно, получить именно тот результат, который вы хотите, используя эту опцию для вывода.

Для .wav это очень простой процесс.Вы можете легко найти спецификацию .wav с помощью поиска в Google.Он включает в себя заголовок и просто необработанные образцы.Сначала вам следует прочитать заголовок, а затем просмотреть все образцы.Обычно это 16-битные выборки, поэтому вам нужно нормализовать их из диапазона от -32768 до 32767 до диапазона 0-255.Я предлагаю сначала простое масштабирование.Если это не помогло, возможно, найдите фактический минимум и максимум среди образцов и соответствующим образом отрегулируйте шкалу.

Ну многое зависит от вашего аудио формата.Например, волновой формат состоит из несжатых чередующихся данных PCM.

т.е. для 8-битного стереофайла каждый семпл будет организован следующим образом.

[Левый образец 1][Правый образец 1][Левый образец 2][Правый образец2]... [Левый образец n][Правый образец n].

т.е. каждый 8-битный стереосэмпл хранится в 2 байтах.1 для левого канала и 1 для правого.Это формат данных, который, скорее всего, потребуется вашему звуковому оборудованию.

16- или 24-битный аудиофайл будет работать в любом случае, но левый и правый сэмплы будут иметь размер 2 или 3 байта соответственно.

Очевидно, что волновой файл содержит массу дополнительной информации.Он соответствует формату RIFF.Вы можете найти информацию об этом и об используемых «кусках» волновых файлов на таких сайтах, как www.wotsit.org.

Распаковать MP3 сложнее.Лучше всего приобрести декомпрессор и запустить его для аудио в формате MP3.ИТ-система выдаст данные PCM, как указано выше, с другой стороны.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top