Уменьшение одной частоты в песне - PullRequest
2 голосов
/ 19 февраля 2020

Как бы я взял входной и исходящий текст одной и той же песни без определенных частот?

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

В качестве фона мой дедушка любит musi c. Однако в последнее время он не может слушать это, поскольку он стал гиперчувствительным к определенным частотам в песнях. Я учусь в старшей школе, у меня есть немного базового кода, и я только начинаю работать с алгоритмами, поэтому у меня очень мало опыта использования этих алгоритмов. Пожалуйста, извините, если это базовые вопросы; любые указатели были бы полезны.

РЕДАКТИРОВАТЬ: До сих пор я понял основную предпосылку fft (через basi c 3blue1brown yt видео и тому подобное) и что он доступен через scipy / Numpi, и выяснил, как преобразовать из YouTube в 0,25 секундных кусков в формате WAV.

1 Ответ

2 голосов
/ 19 февраля 2020

Ваш подход правильный.

Относительно подзапросов:
from the audio to FFT input - назначить аудиосэмплы реальной части сложного сигнала, мнимая часть равна нулю

how to reduce the target frequencies - умножить результаты FFT около необходимой частоты на сглаженное (до dimini sh artifacts) функция, которая становится равной нулю на этой частоте и достигает 1,0 в некоторых сэмплах

how to convert back - просто создайте обратное БПФ (не забывайте о множителе масштаба, таком как 1 / N) и скопируйте реальную часть в аудиоканал


Также рассмотрите возможность использования более простой цифровой фильтрации - полосовой или метка .

Произвольно найдено example1 example2
(вычисление параметров, возможно, требует некоторого понимания DSP)

...