Khi nào thì đường đua cười vào?


14

Một trong những dự án cuối tuần của tôi đã đưa tôi vào vùng nước sâu của xử lý tín hiệu. Như với tất cả các dự án mã của tôi yêu cầu một số bài toán nặng, tôi rất vui khi tìm cách giải quyết mặc dù thiếu nền tảng lý thuyết, nhưng trong trường hợp này tôi không có, và sẽ thích một số lời khuyên về vấn đề của tôi , cụ thể là: Tôi đang cố gắng tìm ra chính xác khi khán giả trực tiếp cười trong một chương trình truyền hình.

Tôi đã dành khá nhiều thời gian để đọc các phương pháp học máy để phát hiện tiếng cười, nhưng nhận ra rằng đó là việc cần làm hơn để phát hiện tiếng cười cá nhân. Hai trăm người cười cùng một lúc sẽ có nhiều đặc tính âm học khác nhau, và trực giác của tôi là họ nên được phân biệt thông qua nhiều kỹ thuật máy nghiền hơn là một mạng lưới thần kinh. Tôi có thể hoàn toàn sai, mặc dù! Sẽ đánh giá cao những suy nghĩ về vấn đề này.

Đây là những gì tôi đã cố gắng cho đến nay: Tôi đã cắt một đoạn trích năm phút từ một tập gần đây của Saturday Night Live thành hai clip thứ hai. Sau đó tôi dán nhãn "cười" hoặc "không cười". Sử dụng trình trích xuất tính năng MFCC của Librosa, sau đó tôi đã chạy một cụm K-Means trên dữ liệu và nhận được kết quả tốt - hai cụm được ánh xạ rất gọn gàng vào nhãn của tôi. Nhưng khi tôi cố gắng lặp lại qua tập tin dài hơn, các dự đoán đã không giữ được nước.

Những gì tôi sẽ thử bây giờ: Tôi sẽ chính xác hơn về việc tạo các clip cười này. Thay vì phân tách và sắp xếp một cách mù quáng, tôi sẽ trích xuất chúng theo cách thủ công để không có đoạn hội thoại nào làm ô nhiễm tín hiệu. Sau đó, tôi sẽ chia chúng thành các clip thứ tư, tính toán các MFCC này và sử dụng chúng để huấn luyện một SVM.

Câu hỏi của tôi tại thời điểm này:

  1. Có bất kỳ điều này có ý nghĩa?

  2. Thống kê có thể giúp ở đây? Tôi đã cuộn xung quanh trong chế độ xem phổ của Audacity và tôi có thể thấy khá rõ nơi cười xảy ra. Trong một quang phổ công suất log, lời nói có vẻ ngoài rất "đặc biệt". Ngược lại, tiếng cười bao trùm một dải tần số khá rộng, gần giống như một bản phân phối bình thường. Thậm chí có thể phân biệt trực quan tiếng vỗ tay với tiếng cười bằng tập tần số hạn chế hơn được biểu thị trong tiếng vỗ tay. Điều đó khiến tôi nghĩ về độ lệch chuẩn. Tôi thấy có một thứ gọi là bài kiểm tra Kolmogorov Kiếm Smirnov, có thể hữu ích ở đây không? Biểu đồ phổ điện (Bạn có thể thấy tiếng cười trong hình trên là một bức tường màu cam chạm tới 45% đường vào.)

  3. Quang phổ tuyến tính dường như cho thấy tiếng cười tràn đầy năng lượng hơn ở tần số thấp hơn và mờ dần về phía tần số cao hơn - điều này có nghĩa là nó đủ điều kiện là nhiễu hồng? Nếu vậy, đó có thể là một chỗ đứng trên vấn đề? Quang phổ

Tôi xin lỗi nếu tôi sử dụng sai bất kỳ biệt ngữ nào, tôi đã vào Wikipedia khá nhiều cho cái này và sẽ không ngạc nhiên nếu tôi bị lộn xộn.


1
Tôi đồng ý về việc "sẽ không cần một mạng lưới thần kinh để có được một máy dò rắn cho các bản nhạc gây cười". Tôi cũng đồng ý về việc bạn ném tín hiệu Kolmogorov, xem xét rằng nếu bạn đúng, và bản nhạc cười là tổng số (cười) của iid, bạn sẽ nhận được một số tính năng bình thường . Có lẽ bạn vẫn muốn tăng độ phân giải tần số. Nhân tiện, đối với một người "không thích" DSP, biệt ngữ của bạn khá ổn :) thật đáng buồn, tôi không phải là một người âm thanh, vì vậy tôi có lẽ không hữu ích lắm.
Marcus Müller

Tôi rất vui được giúp. Bạn có bất kỳ dữ liệu cho đào tạo? Một trong những điều quan trọng nhất là ghi nhãn dữ liệu. Rác trong - rác ra. Một trong những cách tiếp cận đơn giản và hiệu quả nhất là đào tạo một GMM dạng khung và đánh giá khả năng.
jojek

Bạn có thể muốn kiểm tra trước, nếu bạn có thể tách tiếng cười khỏi im lặng bằng cách kiểm tra công suất / biên độ tín hiệu của bạn tại các thời điểm nhất định. Cung cấp cho bạn khả năng ngưỡng những khoảnh khắc mà "một cái gì đó" đang xảy ra. Sau đó, bạn có thể thử xem phân phối tần số. Ví dụ: lời nói có thể có một số đỉnh sắc nét đặc biệt (không quan tâm chính xác các đỉnh này ở đâu, chỉ là chúng tồn tại), trong khi tiếng cười là đồng nhất như bạn đã nói. Theo dõi điều này có thể mang lại một giá trị để quyết định nếu đó là tiếng cười. (Bạn cần thông tin âm lượng, để đảm bảo bạn không chỉ im lặng thống nhất)
user6522399

Câu trả lời:


0

Dựa trên quan sát của bạn, phổ của tín hiệu đủ phân biệt, bạn có thể sử dụng tính năng này như một tính năng để phân loại tiếng cười từ lời nói.

Có nhiều cách bạn có thể nhìn vào vấn đề.

Cách tiếp cận số 1

Trong trường hợp một lần, bạn chỉ có thể nhìn vào vector của MFCC. và áp dụng điều này cho bất kỳ phân loại. Vì bạn có nhiều miền hiệu quả trong miền tần số, bạn có thể muốn xem cấu trúc Cascade Classifier với các thuật toán tăng cường như Adaboost dựa trên điều này, bạn có thể so sánh giữa lớp nói và lớp cười.

Cách tiếp cận số 2

Bạn nhận ra rằng lời nói của bạn về cơ bản là một tín hiệu thay đổi theo thời gian. Vì vậy, một trong những cách hiệu quả để làm điều đó là xem xét sự biến đổi thời gian của chính tín hiệu. Đối với điều này, bạn có thể phân chia tín hiệu theo từng đợt mẫu và xem xét phổ cho thời gian đó. Bây giờ, bạn có thể nhận ra rằng tiếng cười có thể có nhiều kiểu lặp đi lặp lại trong một khoảng thời gian quy định khi mà lời nói vốn đã sở hữu nhiều thông tin hơn và do đó sự biến đổi phổ sẽ khá lớn hơn. Bạn có thể áp dụng điều này cho loại mô hình HMM để xem bạn có duy trì trạng thái như cũ trong một số phổ tần số hay bạn liên tục thay đổi. Ở đây, ngay cả khi đôi khi quang phổ của lời nói giống với tiếng cười, nó sẽ thay đổi nhiều thời gian hơn.

Cách tiếp cận số 3

Buộc áp dụng loại mã hóa LPC / CELP trên tín hiệu và quan sát dư lượng. CELP Coding tạo ra một mô hình sản xuất lời nói rất chính xác.

Từ tài liệu tham khảo ở đây: LÝ THUYẾT VỀ CELP CODING

Sự dư thừa trong tín hiệu lời nói gần như bị loại bỏ sau dự đoán ngắn hạn và dự đoán dài hạn của tín hiệu lời nói và phần dư có rất ít mối tương quan còn lại trong đó. Sau đó, một sự kích thích được tìm kiếm trong đó tổng hợp lời nói và chỉ số và mức tăng của cuốn sách được tìm kiếm từ cuốn sách mã cố định. Tiêu chí lựa chọn chỉ mục mã hóa tối ưu dựa trên MMSE giữa lời nói được tổng hợp cục bộ và tín hiệu giọng nói gốc.

Nói một cách đơn giản, sau khi tất cả các bài phát biểu được dự đoán từ máy phân tích bị loại bỏ - phần còn lại là phần dư được truyền đi để tạo lại dạng sóng chính xác.

Điều đó giúp gì cho vấn đề của bạn? Về cơ bản, nếu bạn áp dụng mã hóa CELP, lời nói trong tín hiệu hầu hết bị loại bỏ, phần còn lại là dư lượng. Trong trường hợp cười, phần lớn tín hiệu có thể được giữ lại vì CELP sẽ không dự đoán được tín hiệu như vậy với mô hình đường hô hấp, khi mà lời nói riêng lẻ sẽ có rất ít dư lượng. Bạn cũng có thể phân tích dư lượng này trở lại trong miền tần số, để xem đó là tiếng cười hay lời nói.


0

Hầu hết các máy nhận dạng giọng nói không chỉ sử dụng các hệ số MFCC mà còn cả các dẫn xuất thứ nhất và thứ 2 của các cấp MFCC. Tôi đoán rằng các bộ cài đặt sẽ rất hữu ích trong trường hợp này và giúp bạn phân biệt tiếng cười với các âm thanh khác.

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.