Học sâu với Spectrogram để nhận dạng âm thanh


12

Tôi đã xem xét khả năng phân loại âm thanh (ví dụ âm thanh của động vật) bằng cách sử dụng phổ. Ý tưởng là sử dụng một mạng nơ ron tích chập sâu để nhận ra các phân đoạn trong biểu đồ phổ và xuất một (hoặc nhiều) nhãn lớp. Đây không phải là một ý tưởng mới (xem ví dụ phân loại âm thanh cá voi hoặc nhận dạng phong cách âm nhạc ).

Vấn đề mà tôi gặp phải là tôi có các tệp âm thanh có độ dài khác nhau và do đó các phổ có kích cỡ khác nhau. Cho đến nay, mọi phương pháp tôi thấy đều sử dụng một mẫu âm thanh có kích thước cố định nhưng tôi không thể làm điều đó vì tệp âm thanh của tôi có thể dài 10 giây hoặc 2 phút.

Ví dụ, với một âm thanh chim ở đầu và một âm thanh ếch ở cuối (đầu ra phải là "Bird, Frog"). Giải pháp hiện tại của tôi sẽ là thêm một thành phần tạm thời vào mạng thần kinh (tạo thêm mạng thần kinh tái phát) nhưng bây giờ tôi muốn giữ cho nó đơn giản. Bất kỳ ý tưởng, liên kết, hướng dẫn, ...?


1
Cách đơn giản nhất là sử dụng FFT có độ dài cố định thay vì STFT (biểu đồ phổ). Điều đó sẽ loại bỏ vấn đề độ dài thay đổi của bạn. Tại sao bạn không áp dụng một mạng lưới thần kinh tái phát? Bạn chỉ cần một ví dụ làm việc? Nếu vậy, bạn có linh hoạt về việc sử dụng phần mềm nào không?
Emre

1
Tôi nghĩ rằng tôi sẽ mất rất nhiều thông tin với FFT có độ dài cố định. Nếu tôi làm điều đó tôi nghĩ rằng tôi sẽ phải thực hiện một phân khúc trước, nơi tôi tìm kiếm những phần 'thú vị'. Tôi có thể làm điều đó hoặc đi đến các mạng thần kinh tái phát (một ví dụ rất hay nhưng không cần thiết lắm, tôi muốn sử dụng Lasagne). Lý do tôi cố gắng tránh nó là đầu ra của một mạng thần kinh tái phát khó xử lý hơn (ở mỗi bước thời gian nhưng tôi chỉ có nhãn cho toàn bộ tệp). Vì vậy, tôi muốn bắt đầu với mô hình đơn giản nhất và dần dần làm cho nó phức tạp hơn.
user667804

bạn có thể vui lòng cho biết những gì bạn đã sử dụng và cách tiếp cận tốt nhất bạn tìm thấy? @ user667804
nia

Kiểm tra bài viết này để biết giải pháp: ceur-ws.org/Vol-1609/16090547.pdf Sử dụng CNN trên các khối có kích thước cố định của quang phổ và sau đó lấy trung bình các đầu ra để tạo ra một dự đoán cuối cùng (có nghĩa là các đầu ra ngẫu nhiên dường như hoạt động tốt).
user667804

Câu trả lời:


4

Để nhận dạng giọng nói tự động (ASR), các tính năng của ngân hàng bộ lọc hoạt động tốt như CNN trên bảng phổ 1 . Bạn có thể đào tạo hệ thống DBN-DNN trên fbank để phân loại âm thanh động vật.

Trong thực tế, những lời nói dài hơn được chia thành những cách nói ngắn hơn vì giải mã Viterbi không hoạt động tốt cho những cách nói dài hơn. Bạn có thể làm như vậy.

Bạn có thể chia các cách nói dài hơn thành các cách nói nhỏ hơn có độ dài cố định. Chia các cách nói dài hơn thành nhỏ hơn là dễ dàng. Vấn đề xuất hiện trong việc tăng chiều dài các cách nói nhỏ hơn để đạt được chiều dài cố định.

Bạn có thể làm cong trục tần số của quang phổ để tăng các cách nói nhỏ hơn. Sự gia tăng dữ liệu này đã được chứng minh là cải thiện khả năng tăng dữ liệu hiệu suất ASR .

Để phát âm dài hơn với nhiều âm thanh trong đó, bạn có thể sử dụng thuật toán phân đoạn âm nhạc để chia nó thành nhiều cách nói. Những cách nói này có thể được thực hiện với độ dài cố định bằng cách chia hoặc tăng.


4

RNN không tạo ra kết quả đủ tốt và cũng khó đào tạo nên tôi đã đi với CNNs.

Bởi vì một âm thanh động vật cụ thể chỉ dài vài giây, chúng ta có thể phân chia phổ thành các khối. Tôi đã sử dụng thời lượng 3 giây. Sau đó, chúng tôi thực hiện phân loại trên từng đoạn và tính trung bình các đầu ra để tạo một dự đoán duy nhất cho mỗi tệp âm thanh. Điều này hoạt động thực sự tốt và cũng đơn giản để thực hiện.

Một lời giải thích sâu hơn có thể được tìm thấy ở đây: http://ceur-ws.org/Vol-1609/16090547.pdf

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.