Ixazululiwe: ikhodi yomthombo we-vocal remover python

Inkinga enkulu nge-vocal remover source code python ukuthi ayiwona umthombo ovulekile. Lokhu kusho ukuthi ikhodi ayitholakali ukuze noma ubani ayibuyekeze futhi okungenzeka ayithuthukise. Lokhu kungaholela ezinkingeni ngokuthembeka kwesofthiwe kanye nekhwalithi iyonke.

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

Le khodi ingenisa imitapo yolwazi ehlukahlukene ezosetshenziswa kumsebenzi we-vocal_remover.

Umsebenzi we-vocal_remover uthatha okokufaka kwegama lefayela, futhi ufunda kufayela lomsindo usebenzisa umtapo wezincwadi we-wavfile.

Bese ithatha inani eliphelele lesiginali, bese ithola ubude besiginali.

Isiginali ibe isifakwa ngeFourier Transform, edala uhlu lwamaza ahambisana nobude besiginali.

Wonke amafrikhwensi angaphezu kuka-1000 Hz asethelwe ku-0 ku-Fourier Transform. Lokhu kungenxa yokuthi amagama amaningi atholakala ngaphakathi kwalolu hlu lwamafrikhwensi.

I-Fourier Transform ephambene ithathwa ukuze kubuyiselwe esizindeni sesikhathi, futhi lesi signali yokugcina ibuyiselwa umsebenzi.

Sebenza nabalingiswa

Kunezindlela ezimbalwa zokusebenza nezinhlamvu kuPython. Enye indlela iwukusebenzisa umsebenzi we-str() ukuze uthole ukumelwa kochungechunge lomlingiswa. Isibonelo, ikhodi elandelayo iphrinta uhlamvu “a” esikrinini:

phrinta ("Uhlamvu 'a'.")

Enye indlela yokusebenza nezinhlamvu kuPython ukusebenzisa umsebenzi we-chr(). Lo msebenzi uthatha inombolo ephelele njengokufakwayo futhi ubuyisela uhlamvu oluhambisana naleyo nombolo. Isibonelo, ikhodi elandelayo iphrinta uhlamvu “a” esikrinini:

phrinta (“Uhlamvu 'a' ngu”)
ikh(1)

Umbhalo kanye nezinto

Ku-Python, umbhalo umelwe ukulandelana kwezinhlamvu ze-Unicode. Izinto ziwukulandelana kwezinhlamvu ze-Unicode, kodwa zingaqukatha ezinye izinhlobo zedatha, njengezinombolo neyunithi yezinhlamvu.

Okuthunyelwe okuhlobene:

Shiya amazwana