Riješeno: izvorni kod python za uklanjanje vokala

Glavni problem s pythonom izvornog koda za uklanjanje vokala je taj što nije otvorenog koda. To znači da kôd nije dostupan nikome za pregled i eventualno poboljšanje. To može dovesti do problema s pouzdanošću softvera i ukupnom kvalitetom.

import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile
from scipy import signal
from scipy.fftpack import fft, ifft
import os


def vocal_remover(filename):

    # read in audio file 
    fs, data = wavfile.read(filename)

    # take the absolute value of the signal 
    data = np.absolute(data)

    # find the length of the signal 
    N = len(data)

    # take the Fourier Transform of the signal 
    fourier = fft(data)

    # create a list of frequencies corresponding to the length of the signal 
    freqs = np.fft.fftfreq(N, 1/fs)

     # find all frequencies above 1000 Hz (1 kHz) and set them to 0 in Fourier Transform 
     for i in range (len(fourier)):   if abs(freqs[i]) > 1000:   fourier[i] = 0+0j

     # take inverse Fourier Transform to get back to time domain 
     inverse_fourier = ifft(fourier).real

     return inverse_fourier

Ovaj kôd uvozi razne biblioteke koje će se koristiti u funkciji vocal_remover.

Funkcija vocal_remover uzima unos naziva datoteke i čita audio datoteku pomoću biblioteke wavfile.

Zatim uzima apsolutnu vrijednost signala i pronalazi duljinu signala.

Signal se zatim stavlja kroz Fourierovu transformaciju, koja stvara popis frekvencija koje odgovaraju duljini signala.

Sve frekvencije iznad 1000 Hz postavljene su na 0 u Fourierovoj transformaciji. To je zato što većina vokala leži unutar ovog raspona frekvencija.

Poduzima se inverzna Fourierova transformacija kako bi se vratila u vremensku domenu, a ovaj konačni signal vraća funkcija.

Rad s likovima

Postoji nekoliko načina za rad sa znakovima u Pythonu. Jedan od načina je korištenje funkcije str() za dobivanje string reprezentacije znaka. Na primjer, sljedeći kod ispisuje slovo "a" na ekranu:

print(“Slovo 'a'.”)

Drugi način rada sa znakovima u Pythonu je korištenje funkcije chr(). Ova funkcija uzima cijeli broj kao ulaz i vraća znak koji odgovara tom broju. Na primjer, sljedeći kod ispisuje slovo "a" na ekranu:

print("Znak 'a' je")
chr(1)

Tekst i objekti

U Pythonu je tekst predstavljen nizom Unicode znakova. Objekti su također nizovi Unicode znakova, ali mogu sadržavati i druge tipove podataka, poput brojeva i nizova.

Povezani postovi:

Ostavite komentar