Vyřešeno: zdrojový kód odstraňovače vokálů python

Hlavním problémem se zdrojovým kódem pythonu odstraňovače vokálů je to, že to není open source. To znamená, že kód není k dispozici nikomu ke kontrole a případnému vylepšení. To může vést k problémům se spolehlivostí a celkovou kvalitou softwaru.

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

Tento kód importuje různé knihovny, které budou použity ve funkci vocal_remover.

Funkce vocal_remover vezme vstup názvu souboru a načte zvukový soubor pomocí knihovny wavfile.

Poté vezme absolutní hodnotu signálu a zjistí délku signálu.

Signál pak prochází Fourierovou transformací, která vytvoří seznam frekvencí odpovídající délce signálu.

Všechny frekvence nad 1000 Hz jsou ve Fourierově transformaci nastaveny na 0. Je to proto, že většina vokálů leží v tomto rozsahu frekvencí.

Inverzní Fourierova transformace se použije pro návrat do časové oblasti a tento konečný signál je vrácen funkcí.

Práce s postavami

Existuje několik způsobů, jak pracovat s postavami v Pythonu. Jedním ze způsobů je použít funkci str() k získání řetězcové reprezentace znaku. Například následující kód vytiskne na obrazovku písmeno „a“:

tisk ("Písmeno 'a'.")

Dalším způsobem práce se znaky v Pythonu je použití funkce chr(). Tato funkce bere jako vstup celé číslo a vrací znak odpovídající tomuto číslu. Například následující kód vytiskne na obrazovku písmeno „a“:

print("Znak 'a' je")
chr(1)

Text a objekty

V Pythonu je text reprezentován posloupností znaků Unicode. Objekty jsou také sekvence znaků Unicode, ale mohou obsahovat i jiné datové typy, jako jsou čísla a řetězce.

Související příspěvky:

Zanechat komentář