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
    • CommentTime3 dni temu 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 dni temu
     
    Pewnie nałożenie krzywej wzmocnienia da płynniejszy efekt (w Audacity)
    • 3:
       
      CommentAuthorpirx
    • CommentTime2 dni temu
     
    Compressor...
    • 4: CommentAuthoradi
    • CommentTime2 dni temu
     
    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
    • CommentTime2 godzin temu
     
    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))