تم حلها: كود مصدر مزيل الصوت بيثون

المشكلة الرئيسية في شفرة المصدر بيثون المزيل الصوتي هي أنه ليس مفتوح المصدر. هذا يعني أن الكود غير متاح لأي شخص لمراجعته وربما تحسينه. يمكن أن يؤدي هذا إلى مشاكل تتعلق بموثوقية البرنامج وجودته الإجمالية.

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 في تحويل فورييه. هذا لأن معظم الأصوات تقع ضمن نطاق الترددات هذا.

يتم أخذ تحويل فورييه المعكوس من أجل العودة إلى المجال الزمني ، ويتم إرجاع هذه الإشارة النهائية بواسطة الوظيفة.

العمل مع الشخصيات

هناك عدة طرق للعمل مع الشخصيات في بايثون. إحدى الطرق هي استخدام الدالة str () للحصول على سلسلة تمثيل للحرف. على سبيل المثال ، يقوم الكود التالي بطباعة الحرف "a" على الشاشة:

print ("الحرف" a ".)

هناك طريقة أخرى للعمل مع الأحرف في بايثون وهي استخدام وظيفة chr (). تأخذ هذه الوظيفة عددًا صحيحًا كمدخلات وتعيد الحرف المقابل لهذا الرقم. على سبيل المثال ، يقوم الكود التالي بطباعة الحرف "a" على الشاشة:

print ("الحرف" a "هو")
سي اتش ار (1)

النص والكائنات

في Python ، يتم تمثيل النص من خلال سلسلة من أحرف Unicode. الكائنات هي أيضًا تسلسلات من أحرف Unicode ، ولكن يمكن أن تحتوي أيضًا على أنواع بيانات أخرى ، مثل الأرقام والسلاسل.

الوظائف ذات الصلة:

اترك تعليق