FFT для спектрограмм в Python

Я реализовал бы пустой безопасный компаратор. Там может быть реализация, но это столь просто для реализации, что я всегда прокручивал свое собственное.

Примечание: Ваш компаратор выше, если оба имена являются пустыми, даже не сравнит поля значения. Я не думаю, что это - то, что Вы хотите.

я реализовал бы это с чем-то как следующее:

// primarily by name, secondarily by value; null-safe; case-insensitive
public int compareTo(final Metadata other) {

    if (other == null) {
        throw new NullPointerException();
    }

    int result = nullSafeStringComparator(this.name, other.name);
    if (result != 0) {
        return result;
    }

    return nullSafeStringComparator(this.value, other.value);
}

public static int nullSafeStringComparator(final String one, final String two) {
    if (one == null ^ two == null) {
        return (one == null) ? -1 : 1;
    }

    if (one == null && two == null) {
        return 0;
    }

    return one.compareToIgnoreCase(two);
}

РЕДАКТИРОВАНИЕ: Фиксированные опечатки в примере кода. Это - то, что я получаю для того, чтобы не протестировать его сначала!

РЕДАКТИРОВАНИЕ: Продвинутый nullSafeStringComparator к помехам.

26
задан Eugene Bulkin 20 August 2009 в 00:14
поделиться

2 ответа

Библиотека волн Python позволит вам импортировать аудио. После этого вы можете использовать numpy для получения БПФ аудио.

Затем matplotlib создает очень хорошие диаграммы и графики - абсолютно сопоставимые с MATLAB.

Это старый как грязь, но эта статья , вероятно, поможет вам почти в точности решить проблему, которую вы описываете (статья на Python, конечно).

24
ответ дан 28 November 2019 в 07:20
поделиться

Загрузить файлы WAV легко с помощью audiolab :

from audiolab import wavread
signal, fs, enc = wavread('test.wav')

или для чтения любого общего аудиоформата и преобразования в WAV:

from audiolab import Sndfile
sound_file = Sndfile('test.w64', 'r')
signal = wave_file.read_frames(wave_file.nframes)

Спектрограмма встроена в PyLab:

from pylab import *
specgram(signal)

В частности, это часть matplotlib . Вот лучший пример.

15
ответ дан 28 November 2019 в 07:20
поделиться
Другие вопросы по тегам:

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