Problema principală cu codul sursă pentru eliminarea vocală python este că nu este open source. Aceasta înseamnă că codul nu este disponibil pentru ca oricine să îl revizuiască și să îl poată îmbunătăți. Acest lucru poate duce la probleme cu fiabilitatea software-ului și calitatea generală.
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
Acest cod importă diferite biblioteci care vor fi folosite în funcția vocal_remover.
Funcția vocal_remover preia o intrare a unui nume de fișier și citește în fișierul audio folosind biblioteca wavfile.
Apoi ia valoarea absolută a semnalului și găsește lungimea semnalului.
Semnalul este apoi trecut printr-o transformată Fourier, care creează o listă de frecvențe corespunzătoare lungimii semnalului.
Toate frecvențele de peste 1000 Hz sunt setate la 0 în transformarea Fourier. Acest lucru se datorează faptului că majoritatea vocilor se află în acest interval de frecvențe.
Transformarea Fourier inversă este luată pentru a reveni în domeniul timpului, iar acest semnal final este returnat de funcție.
Lucrați cu personaje
Există câteva moduri de a lucra cu personaje în Python. O modalitate este de a folosi funcția str() pentru a obține o reprezentare șir a unui caracter. De exemplu, următorul cod tipărește litera „a” pe ecran:
print(„Litera „a”.”)
O altă modalitate de a lucra cu caractere în Python este să folosești funcția chr(). Această funcție ia un număr întreg ca intrare și returnează un caracter corespunzător numărului respectiv. De exemplu, următorul cod tipărește litera „a” pe ecran:
print(„caracterul „a” este”)
chr(1)
Text și obiecte
În Python, textul este reprezentat de o secvență de caractere Unicode. Obiectele sunt, de asemenea, secvențe de caractere Unicode, dar pot conține și alte tipuri de date, cum ar fi numere și șiruri.