Λύθηκε: πηγαίος κώδικας αφαίρεσης φωνής python

Το κύριο πρόβλημα με τον πηγαίο κώδικα python για την αφαίρεση φωνής είναι ότι δεν είναι ανοιχτού κώδικα. Αυτό σημαίνει ότι ο κώδικας δεν είναι διαθέσιμος για έλεγχο και δυνητικά βελτίωση. Αυτό μπορεί να οδηγήσει σε προβλήματα με την αξιοπιστία και τη συνολική ποιότητα του λογισμικού.

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

Αυτός ο κώδικας εισάγει διάφορες βιβλιοθήκες που θα χρησιμοποιηθούν στη συνάρτηση vocal_remover.

Η συνάρτηση vocal_remover λαμβάνει μια είσοδο ενός ονόματος αρχείου και διαβάζει στο αρχείο ήχου χρησιμοποιώντας τη βιβλιοθήκη wavfile.

Στη συνέχεια παίρνει την απόλυτη τιμή του σήματος και βρίσκει το μήκος του σήματος.

Στη συνέχεια, το σήμα διέρχεται μέσω ενός μετασχηματισμού Fourier, ο οποίος δημιουργεί μια λίστα συχνοτήτων που αντιστοιχούν στο μήκος του σήματος.

Όλες οι συχνότητες πάνω από 1000 Hz έχουν ρυθμιστεί στο 0 στον μετασχηματισμό Fourier. Αυτό συμβαίνει επειδή τα περισσότερα φωνητικά βρίσκονται σε αυτό το εύρος συχνοτήτων.

Ο αντίστροφος μετασχηματισμός Fourier λαμβάνεται για να επιστρέψουμε στο πεδίο του χρόνου και αυτό το τελικό σήμα επιστρέφεται από τη συνάρτηση.

Εργαστείτε με χαρακτήρες

Υπάρχουν μερικοί τρόποι για να εργαστείτε με χαρακτήρες στην Python. Ένας τρόπος είναι να χρησιμοποιήσετε τη συνάρτηση str() για να πάρετε μια παράσταση συμβολοσειράς ενός χαρακτήρα. Για παράδειγμα, ο ακόλουθος κώδικας εκτυπώνει το γράμμα "a" στην οθόνη:

εκτύπωση ("Το γράμμα 'a'.")

Ένας άλλος τρόπος εργασίας με χαρακτήρες στην Python είναι να χρησιμοποιήσετε τη συνάρτηση chr(). Αυτή η συνάρτηση παίρνει έναν ακέραιο ως είσοδο και επιστρέφει έναν χαρακτήρα που αντιστοιχεί σε αυτόν τον αριθμό. Για παράδειγμα, ο ακόλουθος κώδικας εκτυπώνει το γράμμα "a" στην οθόνη:

print ("Ο χαρακτήρας "a" είναι")
chr(1)

Κείμενο και αντικείμενα

Στην Python, το κείμενο αντιπροσωπεύεται από μια ακολουθία χαρακτήρων Unicode. Τα αντικείμενα είναι επίσης ακολουθίες χαρακτήρων Unicode, αλλά μπορούν επίσης να περιέχουν άλλους τύπους δεδομένων, όπως αριθμούς και συμβολοσειρές.

Σχετικές αναρτήσεις:

Αφήστε ένα σχόλιο