Megoldva: vokáleltávolító forráskód python

A fő probléma a Vocal Remover forráskóddal, a pythonnal az, hogy nem nyílt forráskódú. Ez azt jelenti, hogy a kód senki számára nem áll rendelkezésre, hogy áttekintse és esetleg javítsa. Ez problémákat okozhat a szoftver megbízhatóságában és általános minőségében.

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

Ez a kód különféle könyvtárakat importál, amelyeket a vocal_remover függvény használ.

A vocal_remover függvény beír egy fájlnevet, és a wavfile könyvtár segítségével olvassa be az audiofájlt.

Ezután veszi a jel abszolút értékét, és meghatározza a jel hosszát.

A jel ezután egy Fourier-transzformáción megy keresztül, amely létrehozza a jel hosszának megfelelő frekvenciák listáját.

Minden 1000 Hz feletti frekvencia 0-ra van állítva a Fourier-transzformációban. Ennek az az oka, hogy a legtöbb ének ezen a frekvenciatartományon belül van.

Az inverz Fourier-transzformációt az időtartományba való visszajutáshoz veszik fel, és ezt a végső jelet adja vissza a függvény.

Munka karakterekkel

A Pythonban többféleképpen is dolgozhat karakterekkel. Az egyik módja az str() függvény használata egy karakter karakterlánc-reprezentációjához. Például a következő kód az „a” betűt írja ki a képernyőn:

print ("Az "a" betű.)

A karakterekkel való munka másik módja a Pythonban a chr() függvény használata. Ez a függvény egy egész számot vesz fel bemenetként, és a számnak megfelelő karaktert ad vissza. Például a következő kód az „a” betűt írja ki a képernyőn:

print ("Az "a" karakter az)
chr(1)

Szöveg és objektumok

A Pythonban a szöveget Unicode karakterek sorozata képviseli. Az objektumok szintén Unicode-karakterek sorozatai, de más adattípusokat is tartalmazhatnak, például számokat és karakterláncokat.

Kapcsolódó hozzászólások:

Írj hozzászólást