Khai thác tính năng MFCC


7

Tôi có một khối âm thanh và tôi đã thực hiện một FFT trên đó. Bây giờ điều tôi muốn làm là chuyển đổi FFT này thành một bộ MFCC, tuy nhiên trong khi tôi biết tôi cần phải làm gì đó với trọng số của các mẫu FFT dựa trên bộ lọc hình tam giác f tôi thực sự không biết điều này liên quan đến điều gì.

Bất cứ ai có thể đi vào một số chi tiết tốt về nó? Nếu bạn định đưa cho tôi một ví dụ về MATLAB, vui lòng giải thích rõ từng bước vì MATLAB cho phép bạn cắt giảm một vài góc và tôi đang cố gắng thực hiện trích xuất MFCC trên iPhone.

Câu trả lời:


11

Có rất nhiều tài liệu về MFCC trên web, vì vậy sẽ dễ dàng hơn một chút nếu bạn có thể cụ thể hơn về phần xử lý mà bạn không hiểu. Nhưng tôi sẽ đưa ra một cái nhìn tổng quan về những gì cần phải làm, hy vọng điều này hữu ích cho bạn:

  1. tính toán độ lớn bình phương của các thùng FFT
  2. cân các thùng bằng cửa sổ hình tam giác; thông thường các cửa sổ được chọn sao cho các tâm của các tam giác đều tương đương nhau trên thang tần số mel, và sao cho mỗi tam giác bắt đầu và kết thúc tại tâm của hai tam giác liền kề. Thang đo tần số mel được xác định bởi
    m= =2595đăng nhập10(1+f/700)
    Ở đâu flà tần số tính bằng Hz. Nhìn vào hình để thấy nó hoạt động như thế nào: nhập mô tả hình ảnh ở đây Lưu ý rằng các hạt nhân được chuẩn hóa sao cho tổng trọng số trên mỗi tam giác bằng 1. Thông thường khoảng 20 cửa sổ hình tam giác như vậy được sử dụng.
  3. Lấy logarit của các hệ số trọng số.
  4. Tính toán DCT.

Chúc mừng Matt, tôi đã đọc tất cả những điều này nhưng nơi tôi rơi xuống là "cân các thùng bằng cửa sổ hình tam giác" Tôi không biết chính xác điều này có nghĩa là gì. Tôi có nên lấy một bộ thùng và sau đó cân từng thùng tùy thuộc vào "cửa sổ" hình tam giác này và sau đó cộng tất cả chúng lại với nhau và gọi đó là "thùng" không? (Đây là m đoán tốt nhất). Nếu vậy, làm thế nào để tôi tính toán cửa sổ hình tam giác? Phương trình tần số mel bạn đã đăng ... Tôi không hiểu làm thế nào nhiều tần số có thể liên quan đến một "bin" mel thông qua đó ... Bất kỳ thông tin nào khác về bước cụ thể này sẽ được đánh giá cao! :)
Goz

Bạn nói đúng về các cửa sổ: bạn tính các khoản tiền có trọng số của các thùng FFT của bạn. Các trọng số là các giá trị riêng của các hàm tam giác. Quy mô mel chỉ dành cho việc định tâm các hình tam giác. Chọn ví dụ 20 điểm tương đương trên thang mel và biến đổi trở lại Hertz thông qua công thức để có được tần số trung tâm tính bằng Hz. Tất nhiên bạn cần làm tròn kết quả để khớp các giá trị với các thùng FFT hợp lệ.
Matt L.

Cổ vũ phần trung tâm của thùng có ý nghĩa. Nhưng làm thế nào để tôi tam giác (sự lựa chọn từ xấu nhưng thật tuyệt khi thử và nói;)) cân các cửa sổ? tức là chúng nên rộng bao nhiêu? Ngoài ra tại sao hình tam giác và không phải một số loại cửa sổ khác? Gaussian có lẽ?
Goz

Như một bên khác (Và có khả năng nên được hỏi trong một câu hỏi khác) tại sao bạn tính MFCC (bỏ qua trọng số) rất khác với một cepstrum? tức là tại sao DCT và không đảo ngược FFT?
Goz

Chà, bạn không cân các cửa sổ nhưng các thùng FFT. Ví dụ đơn giản: tam giác có các giá trị 1,2,1, do đó, đầu ra có trọng số của bạn cho tam giác này sẽ là 1 * (thùng FFT thứ nhất) + 2 * (thùng FFT thứ hai) + 3 * (thùng FFT thứ ba). Tại sao hình tam giác là một câu hỏi hay, đó chỉ là cách làm tiêu chuẩn. Hãy thử những người khác nếu bạn thích, nhưng tôi nghi ngờ bạn sẽ nhận được kết quả tốt hơn đáng kể.
Matt L.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.