#scipy #signal-processing #audio-processing
#scipy #обработка сигналов #обработка звука
Вопрос:
Итак, для университета я должен удалить шум из аудиофайла. У меня есть исходный аудиофайл, и учитель добавил к нему немного шума, и я должен избавиться от него с помощью python. Мы изучили концепции базовых сигналов, но я не могу использовать его в аудиофайле. Может кто-нибудь сказать мне, какие ресурсы я могу изучить, чтобы узнать это, или, возможно, несколько советов по коду?
Комментарии:
1. Что это за звук и какой шум?
Ответ №1:
считайте файл wav в массив, который будет содержать необработанную кривую звука … убедитесь, что это работает, просто построив этот массив для просмотра кривой звука… то же самое для другого файла wav в его собственный массив
теперь важно определить значение пересечения нуля для каждого из этих двух массивов … когда звуковая кривая в массиве со временем меняет свое значение вверх и вниз, это пересечение нуля является высотой этой кривой, когда она воспроизводит тишину, что означает отсутствие колебаний
затем вам нужно выполнить итерацию по обоим массивам одновременно … убедитесь, что вы подтвердили, что каждый из них воспроизводит один и тот же звук одновременно… возможно, вам нужно сместить индекс одного массива, чтобы точки на кривой звука выровнялись
вы должны инвертировать кривую звука (на массиве, который является вашим исходным звуком) относительно ее значения пересечения нуля… таким образом, вместо того, чтобы идти вверх, а затем вниз, он будет делать вниз, а затем вверх… есть много способов добиться этого переключения … если пересечение нуля имеет нулевое значение, просто умножьте высоту кривой на отрицательную единицу
затем вы просто создаете один цикл для одновременной итерации по обоим массивам от начала до конца … внутри этого цикла получите значение выборки из arrayA и значение выборки из arrayB, как указано выше … сложите эти два значения выборки и сохраните это новое значение в свой выходной файл wav … этот выходной файл будет содержать ТОЛЬКО шум
также внутри того же цикла, упомянутого выше, это значение суммы, которое является строго только шумом, теперь вычитает его из массива, который является звуком с шумом… сохраните результат в свой выходной файл без шума wav