atarionline.pl Prostowanie WAV-ów. - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthoradi
      • CommentTime2 Oct 2024 11:10 zmieniony
       
      Walczę z nagraniami magnetofonowymi w Sistema Injektor, a dokładnie z ich programowym przekształcaniem na pliki CAS.
      Niestety nagrania, którymi dysponuję mają zniekształcenia i nie zgadzają się sumy kontrolne rekordów.
      W związku z tym mam do Was pytanie:

      Czy znacie metodę programowej naprawy poniższych zniekształceń?
      Głownie chodzi o wyrównanie impulsów, aby ich dolna część była tak samo oddalona od zera jak górna.
      Obniżenie amplitudy bardzo nie przeszkadza.
      Na dolnym obrazku: efekt ręcznej poprawy w Adudcity.
      • 2:
         
        CommentAuthorjhusak
      • CommentTime2 Oct 2024 13:10
       
      Pewnie nałożenie krzywej wzmocnienia da płynniejszy efekt (w Audacity)
      • 3:
         
        CommentAuthorpirx
      • CommentTime2 Oct 2024 14:10
       
      Compressor...
      • 4: CommentAuthoradi
      • CommentTime2 Oct 2024 14:10
       
      Kompresor trochę pomógł, ale Kuba - strzał w dziesiątkę!
      Zero błędów sumy kontrolnej (przynajmniej na tym pliku, który męczę już długo).
      Dzięki Wielkie!

      Zaraz zmieszczę CAS-a wyprodukowanego przez skrypt.
      • 5: CommentAuthoradi
      • CommentTime5 Oct 2024 08:10
       
      Na koniec zastosowałem odejmowanie średniej kroczącej.
      Okno średniej regulowałem w granicach 15-150 próbek (przy próbkowaniu 44,1kHz).
      Wyniki są rewelacyjne.
      Oto kod w Pythonie:
      import numpy as np
      from scipy.io import wavfile

      moving_average_window = 27

      # Wczytaj plik WAV
      input_file = 'input.wav'
      output_file = 'output.wav'
      sample_rate, data = wavfile.read(input_file)

      data = data[:, 1] # prawy kanał

      # Oblicz średnią kroczącą
      moving_avg = moving_average(data, moving_average_window)

      # Odejmij średnią kroczącą od oryginalnych danych
      data = data - moving_avg

      # Zapisz przetworzony sygnał do nowego pliku WAV
      wavfile.write(output_file, sample_rate, data.astype(np.int16))