Lahendatud: vokaalieemaldaja lähtekood python

Vokaaleemaldaja lähtekoodi python peamine probleem on see, et see pole avatud lähtekoodiga. See tähendab, et kood pole kellelegi ülevaatamiseks ja potentsiaalseks täiustamiseks saadaval. See võib põhjustada probleeme tarkvara töökindluse ja üldise kvaliteediga.

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

See kood impordib erinevaid teeke, mida kasutatakse funktsioonis vocal_remover.

Funktsioon vocal_remover sisestab failinime ja loeb helifaili sisse wavfailide teegi abil.

Seejärel võtab see signaali absoluutväärtuse ja leiab signaali pikkuse.

Seejärel suunatakse signaal läbi Fourier' teisenduse, mis loob signaali pikkusele vastava sageduste loendi.

Kõik sagedused üle 1000 Hz on Fourier' teisenduses seatud väärtusele 0. Seda seetõttu, et enamik vokaalidest jääb sellesse sagedusvahemikku.

Ajapiirkonda naasmiseks võetakse Fourier' pöördteisendus ja funktsioon tagastab selle lõppsignaali.

Töö tegelastega

Pythonis on märkidega töötamiseks mitu võimalust. Üks võimalus on kasutada funktsiooni str() märgi stringi esituse saamiseks. Näiteks järgmine kood prindib ekraanile tähe "a".

print ("täht "a").

Teine võimalus Pythonis märkidega töötamiseks on kasutada funktsiooni chr(). See funktsioon võtab sisendiks täisarvu ja tagastab sellele numbrile vastava märgi. Näiteks järgmine kood prindib ekraanile tähe "a".

print ("märk "a" on)
chr(1)

Tekst ja objektid

Pythonis esindab teksti Unicode'i märkide jada. Objektid on samuti Unicode'i märkide jadad, kuid need võivad sisaldada ka muid andmetüüpe, näiteks numbreid ja stringe.

Seonduvad postitused:

Jäta kommentaar