แก้ไขแล้ว: ไพ ธ อนซอร์สโค้ดตัวลบเสียง

ปัญหาหลักของซอร์สโค้ด 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 Transform ซึ่งสร้างรายการความถี่ที่สอดคล้องกับความยาวของสัญญาณ

ความถี่ทั้งหมดที่สูงกว่า 1000 Hz จะถูกตั้งค่าเป็น 0 ในการแปลงฟูเรียร์ นี่เป็นเพราะเสียงร้องส่วนใหญ่อยู่ในช่วงความถี่นี้

การแปลงฟูริเยร์ผกผันถูกนำมาใช้เพื่อกลับไปยังโดเมนเวลา และสัญญาณสุดท้ายจะถูกส่งกลับโดยฟังก์ชัน

ทำงานกับตัวละคร

มีสองสามวิธีในการทำงานกับอักขระใน Python วิธีหนึ่งคือการใช้ฟังก์ชัน str() เพื่อรับการแสดงสตริงของอักขระ ตัวอย่างเช่น โค้ดต่อไปนี้พิมพ์ตัวอักษร “a” บนหน้าจอ:

พิมพ์ (“ตัวอักษร 'a'.”)

อีกวิธีหนึ่งในการทำงานกับอักขระใน Python คือการใช้ฟังก์ชัน chr() ฟังก์ชันนี้ใช้จำนวนเต็มเป็นอินพุตและส่งกลับอักขระที่ตรงกับตัวเลขนั้น ตัวอย่างเช่น โค้ดต่อไปนี้พิมพ์ตัวอักษร “a” บนหน้าจอ:

พิมพ์ (“ตัวอักษร 'a' คือ”)
ch(1)

ข้อความและวัตถุ

ใน Python ข้อความจะแสดงด้วยลำดับของอักขระ Unicode ออบเจกต์ยังเป็นลำดับของอักขระ Unicode แต่สามารถมีชนิดข้อมูลอื่นๆ ได้ด้วย เช่น ตัวเลขและสตริง

กระทู้ที่เกี่ยวข้อง:

แสดงความคิดเห็น