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.