Кодировать WAV-файл в PCM - PullRequest
2 голосов
/ 11 мая 2009

Мне нужно закодировать файл wav в другой формат файла (pcm). Этот формат имеет следующие свойства: 8 кГц, 16-бит.

Кто-нибудь знает, как это сделать в c # или vb?

Ответы [ 3 ]

4 голосов
/ 11 мая 2009

Библиотека аудио Alvas.

Вот основные характеристики.

  • Рекордер позволяет:
    • запись несжатых аудиоданных (PCM)
    • запись сжатых аудиоданных: IMA ADPCM, Microsoft ADPCM, CCITT A-Law, CCITT u-Law, GSM 6.10, MPEG Layer-3 (mp3) и другие;
    • запись данных в поток (поток файлов, поток памяти);
    • приостановить и возобновить запись;
    • получить текущую позицию звука;
    • запись данных на любой рекордер, установленный в системе (несколько звуковых карт).

  • Плеер позволяет:
    • воспроизведение несжатых аудиоданных (PCM);
    • воспроизведение сжатых аудиоданных: IMA ADPCM, Microsoft ADPCM, CCITT A-Law, CCITT u-Law, GSM 6.10, MPEG Layer-3 (mp3) и другие;
    • воспроизведение данных из потока (поток файлов, поток памяти);
    • воспроизведение смешанных аудиоданных;
    • приостановить и возобновить воспроизведение;
    • получить текущую позицию звука;
    • Воспроизведение данных с любого проигрывателя, установленного в системе (несколько звуковых карт).

  • Настройка управления микшером:
    • выбрать исходную строку для записи;
    • изменить громкость линии источника для записи;
    • настройка дополнительных элементов управления. Например, «Mic Boost»;
    • изменить общую громкость воспроизведения;
    • приглушение воспроизведения.

  • Редактирование
    • изменение скорости аудиоданных;
    • изменить громкость аудиоданных;
    • объединить несколько кусков аудио в одном;
    • вырезать кусок аудиопотока;
    • вставить кусок в аудиопоток;
    • удалить часть аудио потока;
    • создать аудиоформат из байтового массива;
    • вставлять и микшировать аудиоданные в основные аудиоданные с заданным смещением несколько раз;
    • обратный аудиоволновой поток;
    • разделить стереофонический аудиопоток на два монопотока;
    • объединение двух монофонических аудиопотоков в одну стереосистему.
    • Конкатенация нескольких аудиофайлов.

  • Преобразование
    • Преобразование аудиоданных из одного аудиоформата в другой.
    • Конвертируйте аудио поток в поток mp3.
    • Преобразование потока Dialogic .vox (adpcm) в поток MP3.
    • Изменить поток волны на поток MP3. если волновой поток содержит данные MPEG Layer 3.
    • Воспроизведение, запись и преобразование формата RAW без заголовка (SLINEAR и т. Д.) (Используется в Asterisk PBX).
    • Воспроизведение и извлечение аудиоданных из потоков Avi.
    • Кодирование и декодирование данных формата Dialogic .vox (adpcm) (используется в Asterisk PBX).
    • Преобразование потока звуковой волны в поток mp3
    • Преобразование потока Dialogic .vox (adpcm) в поток Mp3

  • Разное
    • Просмотр уровня входного звукового сигнала.
    • Подписать библиотеку со строгим именем. Аудио библиотека может быть добавлена ​​в GAC
2 голосов
/ 11 мая 2009

Несжатый файл Wave содержит простые данные PCM плюс некоторые метаданные - описание здесь можно найти на Wotsit.org.

Если частоты дискретизации, разрешения и количество каналов совпадают, вы можете просто удалить метаданные.

Если они не совпадают, вам нужно будет повторно сэмплировать файл Wave, но это не тривиальная задача, если вы хотите, чтобы все было сделано правильно (для понижающей дискретизации требуется низкочастотная фильтрация данных, чтобы избежать наложения имен из-за 1007 * Теорема отсчетов Найквиста – Шеннона и обе - повышающая и понижающая выборки - требуют хорошей интерполяции - в идеале sinc-интерполяция .

0 голосов
/ 11 мая 2009

Я не совсем уверен, что вы хотите сделать. Файлы WAV (обычно) являются просто обертками вокруг несжатых данных PCM.

Но если вы хотите получить доступ к данным или записать файлы PCM без заголовка RAW, вы можете использовать libsndfile . Я нашел несколько примеров кода c # на форумах ArsTechnica.

RE: Ответ Даниэля Брюкнера
Автор libsndfile также написал libsamplerate , что может упростить повторную выборку.

...