Vokal sökücü kaynak kodu python ile ilgili temel sorun, açık kaynak olmamasıdır. Bu, kodun kimsenin gözden geçirmesi ve potansiyel olarak geliştirmesi için uygun olmadığı anlamına gelir. Bu, yazılımın güvenilirliği ve genel kalitesi ile ilgili sorunlara yol açabilir.
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
Bu kod, vocal_remover işlevinde kullanılacak çeşitli kitaplıkları içe aktarıyor.
vocal_remover işlevi, bir dosya adı girdisi alır ve wavfile kitaplığını kullanarak ses dosyasını okur.
Daha sonra sinyalin mutlak değerini alır ve sinyalin uzunluğunu bulur.
Sinyal daha sonra, sinyalin uzunluğuna karşılık gelen frekansların bir listesini oluşturan bir Fourier Dönüşümünden geçirilir.
Fourier Dönüşümünde 1000 Hz'in üzerindeki tüm frekanslar 0'a ayarlanır. Bunun nedeni, çoğu vokalin bu frekans aralığında yer almasıdır.
Zaman alanına geri dönmek için ters Fourier Dönüşümü alınır ve bu son sinyal fonksiyon tarafından döndürülür.
Karakterlerle çalışma
Python'da karakterlerle çalışmanın birkaç yolu vardır. Bunun bir yolu, bir karakterin dize gösterimini elde etmek için str() işlevini kullanmaktır. Örneğin, aşağıdaki kod ekrana "a" harfini yazdırır:
print(“'a' harfi.”)
Python'da karakterlerle çalışmanın başka bir yolu da chr() işlevini kullanmaktır. Bu işlev, girdi olarak bir tamsayı alır ve bu sayıya karşılık gelen bir karakter döndürür. Örneğin, aşağıdaki kod ekrana "a" harfini yazdırır:
print("'a' karakteridir")
karakter(1)
Metin ve nesneler
Python'da metin, bir dizi Unicode karakterle temsil edilir. Nesneler ayrıca Unicode karakter dizileridir, ancak sayılar ve dizeler gibi başka veri türlerini de içerebilirler.