Có nhiều triển khai hiện tại, ví dụ: Tensorflow Implementation, Kaldi-focused implementation with all the scripts, tốt hơn hết là kiểm tra chúng trước.
Theano quá thấp, bạn có thể thử với keras thay vào đó, như được mô tả trong tutorial. Bạn có thể chạy hướng dẫn "như là" để hiểu mọi thứ diễn ra như thế nào.
Sau đó, bạn cần chuẩn bị tập dữ liệu. Bạn cần phải chuyển dữ liệu của bạn thành chuỗi các khung dữ liệu và cho mỗi khung dữ liệu theo thứ tự bạn cần gán nhãn đầu ra.
Máy ảnh hỗ trợ hai loại RNN - các lớp trả về chuỗi và các lớp trả về các giá trị đơn giản. Bạn có thể thử nghiệm với cả hai, trong mã bạn chỉ cần sử dụng return_sequences=True
hoặc return_sequences=False
Đào tạo với chuỗi bạn có thể gán nhãn giả cho tất cả các khung ngoại trừ cuối cùng một trong những nơi bạn có thể gán nhãn của từ mà bạn muốn nhận. Bạn cần đặt nhãn đầu vào và đầu ra cho mảng. Vì vậy, nó sẽ là:
X = [[word1frame1, word1frame2, ..., word1framen],[word2frame1, word2frame2,...word2framen]]
Y = [[0,0,...,1], [0,0,....,2]]
Trong X mọi phần tử là vectơ 13 nổi. Trong Y, mọi phần tử chỉ là một số - 0 cho các khung trung gian và ID từ cho khung cuối cùng.
Để đào tạo chỉ với các nhãn bạn cần đặt nhãn đầu vào và đầu ra cho mảng và mảng đầu ra đơn giản hơn. Vì vậy, dữ liệu sẽ là:
X = [[word1frame1, word1frame2, ..., word1framen],[word2frame1, word2frame2,...word2framen]]
Y = [[0,0,1], [0,1,0]]
Lưu ý rằng đầu ra được vectorized (np_utils.to_categorical) để biến nó thành vectơ thay vì chỉ số.
Sau đó, bạn tạo kiến trúc mạng. Bạn có thể có 13 nổi cho đầu vào, một vectơ cho đầu ra. Ở giữa bạn có thể có một lớp được kết nối đầy đủ, sau đó là một lớp lstm. Không sử dụng các lớp quá lớn, bắt đầu với những lớp nhỏ.
Sau đó, bạn cho bộ dữ liệu này vào model.fit
và nó đào tạo cho bạn mô hình. Bạn có thể ước tính chất lượng mô hình trên tập hợp được tổ chức sau khi đào tạo.
Bạn sẽ gặp vấn đề với hội tụ vì bạn chỉ có 20 ví dụ. Bạn cần nhiều ví dụ hơn, tốt nhất là hàng ngàn người để đào tạo LSTM, bạn sẽ chỉ có thể sử dụng các mô hình rất nhỏ.
Xin cảm ơn bạn đã hướng dẫn. Bạn có biết bất kỳ tập dữ liệu nào có 100 lời chào và lời tạm biệt được ghi lại không? –
Bạn có thể tải xuống cơ sở dữ liệu các chữ số bị cô lập tại đây: http://www.ece.ucsb.edu/Faculty/Rabiner/ece259/speech%20recognition%20course.html, có khoảng 200 mẫu cho mỗi chữ số –
Vì vậy, nếu tôi sẽ áp dụng phương pháp này cho các số (không phải nhị phân), chúng ta có thể gọi nó là nhận dạng giọng nói không? – udani