Riješeno: izvorni kod za uklanjanje vokala python

Posljednje ažuriranje: 09/11/2023

Glavni problem sa izvornim kodom pythona za uklanjanje vokala je taj što nije otvorenog koda. To znači da kod nije dostupan nikome za pregled i potencijalno poboljšanje. To može dovesti do problema sa pouzdanošću softvera i ukupnim 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 kod uvozi različite biblioteke koje će se koristiti u funkciji vocal_remover.

Funkcija vocal_remover uzima unos imena datoteke i čita audio datoteku koristeći biblioteku wavfile.

Zatim uzima apsolutnu vrijednost signala i pronalazi dužinu signala.

Signal se zatim prolazi kroz Fourierovu transformaciju, koja stvara listu frekvencija koje odgovaraju dužini signala.

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

Inverzna Fourierova transformacija se uzima da bi se vratila na vremenski domen, a ovaj konačni signal funkcija vraća.

Rad sa likovima

Postoji nekoliko načina rada sa likovima u Pythonu. Jedan od načina je korištenje funkcije str() da dobijete string prikaz karaktera. 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, tekst je predstavljen nizom Unicode znakova. Objekti su također nizovi Unicode znakova, ali mogu sadržavati i druge tipove podataka, kao što su brojevi i nizovi.

Slični postovi: