Преобразование wav в mp3 из python

Я не уверен, как лучше всего задать этот вопрос, но начнем.

Я создал свой собственный способ преобразования Фурье и хотел бы посмотреть, дает ли он мне лучшее сжатие, чем стандартные методы БПФ. В настоящее время я читаю файл wav, выполняю преобразование Фурье, используя свой метод (это не БПФ или дискретный), и воспроизводю данные wav. Затем я использую инструмент командной строки ffmep для преобразования моего файла wav в mp3.

У меня вопрос: делает ли этот процесс избыточным мое преобразование Фурье?

Если да, то как я могу создать mp3-файл, учитывая мой ряд Фурье?

Чего я пытаюсь достичь: у меня есть алгоритм преобразования Фурье, который, на мой взгляд, лучше подходит для сжатия, и стандартное БПФ, и я хотел бы проверить эту гипотезу о сжатии звука. Как лучше всего это сделать?


person War Donkey    schedule 21.07.2018    source источник


Ответы (1)


Я бы забыл о mp3 ... ваш метод сжатия заменяет mp3 ... вместо этого я бы сосредоточился на необработанном аудио в формате PCM здесь

их процесс

PCM  ->    conversion to mp3    ->    mp3 file     -> decoding to PCM -> PCM

ваш процесс

PCM  ->  your compression trick -> SpentDeath file ->  decoding to PCM -> PCM

просто используйте один и тот же необработанный аудио PCM в качестве входа в оба из двух вышеупомянутых потоков процессов ... одно сравнение будет размером файла mp3 по сравнению с вашим сжатым файлом ... второе сравнение будет качеством вывода окончательного PCM

Я слышу, что вы говорите о том, что это не БПФ, однако имейте в виду, что если бы это было БПФ, то степень, в которой у вас больше частотной детализации (меньшая разница между каждой частотой вместе с ее величиной), тем больше количество необходимых аудиосэмплов ... это означает, что более высокая точность измерения частоты в частотном пространстве требует более длинного окна выборок звука во временной области ... что нормально для апериодических сигналов (когда звук - это только постоянный тон, а не песня) ... однако для постоянно меняющегося звука, как в песня, которая является апериодической, не существует такой вещи, как значимые широкие окна аудиосэмплов, поскольку по мере того, как вы расширяете окно дискретизации, вы включаете все более разрозненные кривые из постоянно меняющегося аудиосигнала, и поэтому результирующие амплитуды частот будут выводиться из усреднения из все частоты, встречающиеся на протяжении всего окна выборки, и поэтому вы платите за потерю точности во временной области после того, как БПФ вернет ваш аудиосигнал обратно в PCM с помощью обратное преобразование Фурье

person Scott Stensland    schedule 21.07.2018
comment
Это было очень полезно. У меня есть еще один вопрос, как я могу сравнить уровень потерь между mp3 и исходным кодом? Должен ли я просто посмотреть на исходный файл PCM и файл PCM, сгенерированный в результате преобразования mp3, и сделать различие? В моем методе потери известны заранее, это параметр, который вы вводите в качестве допуска потерь. - person War Donkey; 22.07.2018
comment
там должны быть инструменты для сравнения между парой файлов PCM ... для начала я склоняюсь к использованию Audacity для сравнения глазных яблок ... у него хорошая визуализация звуковой кривой ... он импортирует необработанный звук PCM-файл ... конечно, просто выполняя БПФ для каждого из файлов PCM, вы снова попадете в парк мячей .. sonicvisualiser.org может выполнять БПФ ... Самое замечательное в аудио - это временные ряды, поэтому сравнения с использованием python должны быть вокруг .. docs.scipy.org/doc/scipy/reference/signal.html может быть что-то, иначе google: python numpy сравнить два массива - person Scott Stensland; 23.07.2018