Ratkaistu: laulunpoiston lähdekoodi python

Viimeisin päivitys: 09/11/2023

Pääongelma Vocal Remover -lähdekoodin pythonissa on, että se ei ole avointa lähdekoodia. Tämä tarkoittaa, että koodi ei ole kenenkään tarkastettavissa ja mahdollisesti parannettavissa. Tämä voi aiheuttaa ongelmia ohjelmiston luotettavuudessa ja yleisessä laadussa.

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

Tämä koodi tuo erilaisia ​​kirjastoja, joita käytetään vocal_remover-funktiossa.

Vocal_remover-toiminto syöttää tiedostonimen ja lukee äänitiedoston wavfile-kirjaston avulla.

Sitten se ottaa signaalin itseisarvon ja löytää signaalin pituuden.

Sitten signaali viedään Fourier-muunnoksen läpi, joka luo signaalin pituutta vastaavien taajuuksien luettelon.

Kaikki yli 1000 Hz:n taajuudet on asetettu nollaksi Fourier-muunnoksessa. Tämä johtuu siitä, että useimmat laulut ovat tällä taajuusalueella.

Käänteinen Fourier-muunnos otetaan palatakseen aikatasoon, ja funktio palauttaa tämän lopullisen signaalin.

Työskentele hahmojen kanssa

Pythonissa on muutamia tapoja työskennellä merkkien kanssa. Yksi tapa on käyttää str()-funktiota saadakseen merkkijonoesityksen. Esimerkiksi seuraava koodi tulostaa kirjaimen "a" näytölle:

print ("A-kirjain.")

Toinen tapa käsitellä merkkejä Pythonissa on käyttää chr()-funktiota. Tämä funktio ottaa syötteeksi kokonaisluvun ja palauttaa sitä numeroa vastaavan merkin. Esimerkiksi seuraava koodi tulostaa kirjaimen "a" näytölle:

print("merkki "a" on)
chr(1)

Tekstiä ja esineitä

Pythonissa tekstiä edustaa Unicode-merkkijono. Objektit ovat myös Unicode-merkkijonoja, mutta ne voivat sisältää myös muita tietotyyppejä, kuten numeroita ja merkkijonoja.

Related viestiä: