Rozwiązany: python do usuwania kodu źródłowego głosu

Głównym problemem związanym z pythonem do usuwania wokali jest to, że nie jest to open source. Oznacza to, że kod nie jest dostępny dla nikogo do przejrzenia i potencjalnego ulepszenia. Może to prowadzić do problemów z niezawodnością oprogramowania i ogólną jakością.

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

Ten kod importuje różne biblioteki, które będą używane w funkcji vocal_remover.

Funkcja vocal_remover pobiera nazwę pliku i wczytuje plik audio za pomocą biblioteki wavfile.

Następnie bierze wartość bezwzględną sygnału i znajduje długość sygnału.

Sygnał jest następnie przepuszczany przez transformatę Fouriera, która tworzy listę częstotliwości odpowiadających długości sygnału.

Wszystkie częstotliwości powyżej 1000 Hz są ustawione na 0 w transformacie Fouriera. To dlatego, że większość wokali leży w tym zakresie częstotliwości.

Odwrotna transformata Fouriera jest wykonywana w celu powrotu do dziedziny czasu, a ten końcowy sygnał jest zwracany przez funkcję.

Pracuj z postaciami

Istnieje kilka sposobów pracy ze znakami w Pythonie. Jednym ze sposobów jest użycie funkcji str() w celu uzyskania łańcuchowej reprezentacji znaku. Na przykład poniższy kod wyświetla literę „a” na ekranie:

print("Litera 'a'.")

Innym sposobem pracy ze znakami w Pythonie jest użycie funkcji chr(). Ta funkcja pobiera liczbę całkowitą jako dane wejściowe i zwraca znak odpowiadający tej liczbie. Na przykład poniższy kod wyświetla literę „a” na ekranie:

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

Tekst i obiekty

W Pythonie tekst jest reprezentowany przez sekwencję znaków Unicode. Obiekty są również sekwencjami znaków Unicode, ale mogą również zawierać inne typy danych, takie jak liczby i ciągi znaków.

Powiązane posty:

Zostaw komentarz