Как отредактировать необработанные аудиоданные PCM без аудио библиотеки?

Вместо того, чтобы использовать примитив int, я согласился использовать вместо него Integer. Вот мое решение.

public static Integer[] divisible(Integer[] array, int target) {

    int j = 0;
    ArrayList<Integer> list = new ArrayList<Integer>();

    for (int i = 0; i < array.length; i++) {
        if (array[i] % target == 0) {
            j++;
            list.add(array[i]);
        }
    }

    Integer answer[] = new Integer[j];
    answer = list.toArray(answer);

    return answer;
}
8
задан Soviut 8 May 2009 в 17:57
поделиться

4 ответа

I read the question and the answers and I feel that I must be missing something completely obvious, because nobody mentioned the following two modules:

  • audioop: manipulate raw audio data
  • wave: read and write WAV files

Perhaps I come from a parallel universe and Guido's time machine is actually a space-time machine :)

Should you need example code, feel free to ask.

PS Assuming 48kHz sampling rate, a video frame at 24/1.001==23.976023976… fps is 2002 audio samples long, and at 25fps it's 1920 audio samples long.

6
ответ дан 5 December 2019 в 13:01
поделиться

Я написал программу для чтения PCM только на C ++ и Java, но сам формат довольно прост. Приличное описание можно найти здесь: http://ccrma.stanford.edu/courses/422/projects/WaveFormat/

Прошлое, которое вы должны иметь возможность просто прочитать (чтение двоичного файла, http://www.johnny-lin.com/cdat_tips/tips_fileio/bin_array.html ) и просто обработайте получившийся массив. Возможно, вам потребуется немного сдвинуть бит, чтобы добиться правильного выравнивания ( https://docs.python.org/reference/expressions.html#shifting-operations ), но в зависимости от того, как вы это читаете, вы может и не понадобиться.

Все это говорит о том, что я все равно склоняюсь к подходу Дэвида.

5
ответ дан 5 December 2019 в 13:01
поделиться

Похоже на комбинацию open (..., "rb"), struct module и некоторых деталей о формате файла wav / riff (вероятно, лучшая ссылка) выполнит свою работу.

Просто любопытно, что вы собираетесь делать с необработанными данными выборки?

1
ответ дан 5 December 2019 в 13:01
поделиться

Действительно ли важно, чтобы ваше решение было чистым Python, или вы бы согласились с тем, что может работать с собственными аудио библиотеками на различных платформах (так что это эффективно кроссплатформенный)? Несколько примеров последнего можно найти на http://wiki.python.org/moin/PythonInMusic

1
ответ дан 5 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: