נפתרה: קוד מקור מסיר קולי פיתון

הבעיה העיקרית עם קוד המקור של מסיר הקול היא שזה לא קוד פתוח. משמעות הדבר היא שהקוד אינו זמין לאף אחד לעיון בו ולשפר אותו. זה יכול להוביל לבעיות באמינות התוכנה ובאיכות הכוללת.

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.

לאחר מכן הוא לוקח את הערך המוחלט של האות, ומוצא את אורך האות.

לאחר מכן, האות עובר טרנספורמציה פורייה, היוצרת רשימה של תדרים התואמים לאורך האות.

כל התדרים מעל 1000 הרץ מוגדרים ל-0 ב-Fourier Transform. הסיבה לכך היא שרוב השירה נמצאת בטווח התדרים הזה.

טרנספורמציה פורייה הפוכה נלקחת על מנת לחזור לתחום הזמן, והאות הסופי הזה מוחזר על ידי הפונקציה.

עבודה עם דמויות

יש כמה דרכים לעבוד עם דמויות ב-Python. דרך אחת היא להשתמש בפונקציה str() כדי לקבל ייצוג מחרוזת של תו. לדוגמה, הקוד הבא מדפיס את האות "a" על המסך:

print(“האות 'א'.”)

דרך נוספת לעבוד עם תווים ב- Python היא להשתמש בפונקציה chr() . פונקציה זו לוקחת מספר שלם כקלט ומחזירה תו המתאים למספר זה. לדוגמה, הקוד הבא מדפיס את האות "a" על המסך:

print("התו 'a' הוא")
chr (1)

טקסט וחפצים

ב-Python, הטקסט מיוצג על ידי רצף של תווי Unicode. אובייקטים הם גם רצפים של תווי Unicode, אך הם יכולים להכיל גם סוגי נתונים אחרים, כגון מספרים ומחרוזות.

הודעות קשורות:

השאירו תגובה