Das Hauptproblem mit Python-Quellcode zum Entfernen von Vocals besteht darin, dass es sich nicht um Open Source handelt. Dies bedeutet, dass der Code für niemanden zur Überprüfung und potenziellen Verbesserung verfügbar ist. Dies kann zu Problemen mit der Zuverlässigkeit und Gesamtqualität der Software führen.
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
Dieser Code importiert verschiedene Bibliotheken, die in der Funktion vocal_remover verwendet werden.
Die Funktion vocal_remover nimmt eine Eingabe eines Dateinamens entgegen und liest die Audiodatei unter Verwendung der wavfile-Bibliothek ein.
Es nimmt dann den Absolutwert des Signals und findet die Länge des Signals.
Das Signal wird dann einer Fourier-Transformation unterzogen, die eine Liste von Frequenzen erstellt, die der Länge des Signals entsprechen.
Alle Frequenzen über 1000 Hz werden in der Fourier-Transformation auf 0 gesetzt. Dies liegt daran, dass die meisten Vocals in diesem Frequenzbereich liegen.
Die inverse Fourier-Transformation wird verwendet, um zum Zeitbereich zurückzukehren, und dieses endgültige Signal wird von der Funktion zurückgegeben.
Arbeiten Sie mit Charakteren
Es gibt einige Möglichkeiten, mit Zeichen in Python zu arbeiten. Eine Möglichkeit besteht darin, die Funktion str() zu verwenden, um eine Zeichenfolgendarstellung eines Zeichens zu erhalten. Der folgende Code gibt beispielsweise den Buchstaben „a“ auf dem Bildschirm aus:
print("Der Buchstabe 'a'.")
Eine andere Möglichkeit, mit Zeichen in Python zu arbeiten, ist die Verwendung der Funktion chr(). Diese Funktion nimmt eine Ganzzahl als Eingabe und gibt ein dieser Zahl entsprechendes Zeichen zurück. Der folgende Code gibt beispielsweise den Buchstaben „a“ auf dem Bildschirm aus:
print("Das Zeichen 'a' ist")
Chr(1)
Texte und Objekte
In Python wird Text durch eine Folge von Unicode-Zeichen dargestellt. Objekte sind ebenfalls Folgen von Unicode-Zeichen, können aber auch andere Datentypen wie Zahlen und Zeichenfolgen enthalten.