ವೋಕಲ್ ರಿಮೂವರ್ ಸೋರ್ಸ್ ಕೋಡ್ ಪೈಥಾನ್ನ ಮುಖ್ಯ ಸಮಸ್ಯೆ ಎಂದರೆ ಅದು ಓಪನ್ ಸೋರ್ಸ್ ಅಲ್ಲ. ಇದರರ್ಥ ಕೋಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಮತ್ತು ಸಮರ್ಥವಾಗಿ ಸುಧಾರಿಸಲು ಯಾರಿಗೂ ಲಭ್ಯವಿಲ್ಲ. ಇದು ಸಾಫ್ಟ್ವೇರ್ನ ವಿಶ್ವಾಸಾರ್ಹತೆ ಮತ್ತು ಒಟ್ಟಾರೆ ಗುಣಮಟ್ಟದಲ್ಲಿ ಸಮಸ್ಯೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು.
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
ಈ ಕೋಡ್ ವಿವಿಧ ಲೈಬ್ರರಿಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳುತ್ತಿದೆ ಅದನ್ನು vocal_remover ಕಾರ್ಯದಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ.
vocal_remover ಕಾರ್ಯವು ಫೈಲ್ ಹೆಸರಿನ ಇನ್ಪುಟ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು wavfile ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಆಡಿಯೊ ಫೈಲ್ನಲ್ಲಿ ಓದುತ್ತದೆ.
ಇದು ಸಂಕೇತದ ಸಂಪೂರ್ಣ ಮೌಲ್ಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಸಂಕೇತದ ಉದ್ದವನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತದೆ.
ನಂತರ ಸಿಗ್ನಲ್ ಅನ್ನು ಫೋರಿಯರ್ ಟ್ರಾನ್ಸ್ಫಾರ್ಮ್ ಮೂಲಕ ಹಾಕಲಾಗುತ್ತದೆ, ಇದು ಸಿಗ್ನಲ್ನ ಉದ್ದಕ್ಕೆ ಅನುಗುಣವಾದ ಆವರ್ತನಗಳ ಪಟ್ಟಿಯನ್ನು ರಚಿಸುತ್ತದೆ.
ಫೋರಿಯರ್ ಟ್ರಾನ್ಸ್ಫಾರ್ಮ್ನಲ್ಲಿ 1000 Hz ಗಿಂತ ಹೆಚ್ಚಿನ ಎಲ್ಲಾ ಆವರ್ತನಗಳನ್ನು 0 ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ. ಏಕೆಂದರೆ ಹೆಚ್ಚಿನ ಗಾಯನಗಳು ಈ ತರಂಗಾಂತರಗಳ ವ್ಯಾಪ್ತಿಯಲ್ಲಿವೆ.
ಸಮಯ ಡೊಮೇನ್ಗೆ ಹಿಂತಿರುಗಲು ವಿಲೋಮ ಫೋರಿಯರ್ ಟ್ರಾನ್ಸ್ಫಾರ್ಮ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ ಮತ್ತು ಈ ಅಂತಿಮ ಸಂಕೇತವನ್ನು ಕಾರ್ಯದಿಂದ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ.
ಪಾತ್ರಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿ
ಪೈಥಾನ್ನಲ್ಲಿ ಪಾತ್ರಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಕೆಲವು ಮಾರ್ಗಗಳಿವೆ. ಅಕ್ಷರದ ಸ್ಟ್ರಿಂಗ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಪಡೆಯಲು str() ಕಾರ್ಯವನ್ನು ಬಳಸುವುದು ಒಂದು ಮಾರ್ಗವಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಕೆಳಗಿನ ಕೋಡ್ ಪರದೆಯ ಮೇಲೆ "a" ಅಕ್ಷರವನ್ನು ಮುದ್ರಿಸುತ್ತದೆ:
ಮುದ್ರಿಸು ("ಅಕ್ಷರ 'ಎ'.")
ಪೈಥಾನ್ನಲ್ಲಿನ ಅಕ್ಷರಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಇನ್ನೊಂದು ವಿಧಾನವೆಂದರೆ chr() ಕಾರ್ಯವನ್ನು ಬಳಸುವುದು. ಈ ಕಾರ್ಯವು ಒಂದು ಪೂರ್ಣಾಂಕವನ್ನು ಇನ್ಪುಟ್ ಆಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಆ ಸಂಖ್ಯೆಗೆ ಅನುಗುಣವಾದ ಅಕ್ಷರವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಕೆಳಗಿನ ಕೋಡ್ ಪರದೆಯ ಮೇಲೆ "a" ಅಕ್ಷರವನ್ನು ಮುದ್ರಿಸುತ್ತದೆ:
ಪ್ರಿಂಟ್ (“ಎ ಅಕ್ಷರವು”)
chr(1)
ಪಠ್ಯ ಮತ್ತು ವಸ್ತುಗಳು
ಪೈಥಾನ್ನಲ್ಲಿ, ಪಠ್ಯವನ್ನು ಯುನಿಕೋಡ್ ಅಕ್ಷರಗಳ ಅನುಕ್ರಮದಿಂದ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ. ಆಬ್ಜೆಕ್ಟ್ಗಳು ಯುನಿಕೋಡ್ ಅಕ್ಷರಗಳ ಅನುಕ್ರಮಗಳಾಗಿವೆ, ಆದರೆ ಅವು ಸಂಖ್ಯೆಗಳು ಮತ್ತು ಸ್ಟ್ರಿಂಗ್ಗಳಂತಹ ಇತರ ಡೇಟಾ ಪ್ರಕಾರಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿರಬಹುದು.