Đã giải quyết: mã nguồn loại bỏ giọng hát python

Vấn đề chính với mã nguồn loại bỏ giọng nói python là nó không phải là nguồn mở. Điều này có nghĩa là mã không có sẵn để bất kỳ ai xem xét và có khả năng cải thiện. Điều này có thể dẫn đến các vấn đề về độ tin cậy và chất lượng tổng thể của phần mềm.

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

Mã này đang nhập nhiều thư viện khác nhau sẽ được sử dụng trong hàm vocal_remover.

Hàm vocal_remover nhận đầu vào tên tệp và đọc tệp âm thanh bằng thư viện wavfile.

Sau đó, nó lấy giá trị tuyệt đối của tín hiệu và tìm độ dài của tín hiệu.

Sau đó, tín hiệu được đưa qua Biến đổi Fourier, tạo ra danh sách các tần số tương ứng với độ dài của tín hiệu.

Tất cả các tần số trên 1000 Hz được đặt thành 0 trong Biến đổi Fourier. Điều này là do hầu hết giọng hát đều nằm trong dải tần số này.

Biến đổi Fourier nghịch đảo được thực hiện để quay trở lại miền thời gian và tín hiệu cuối cùng này được hàm trả về.

Làm việc với các ký tự

Có một số cách để làm việc với các ký tự trong Python. Một cách là sử dụng hàm str() để lấy biểu diễn chuỗi của một ký tự. Ví dụ: đoạn mã sau in chữ “a” trên màn hình:

print(“Chữ cái 'a'.”)

Một cách khác để làm việc với các ký tự trong Python là sử dụng hàm chr(). Hàm này lấy một số nguyên làm đầu vào và trả về một ký tự tương ứng với số đó. Ví dụ: đoạn mã sau in chữ “a” trên màn hình:

print(“Ký tự ‘a’ là”)
chr(1)

Văn bản và đối tượng

Trong Python, văn bản được biểu thị bằng một chuỗi ký tự Unicode. Các đối tượng cũng là các chuỗi ký tự Unicode, nhưng chúng cũng có thể chứa các kiểu dữ liệu khác, chẳng hạn như số và chuỗi.

bài viết liên quan:

Để lại một bình luận