Nhiệm vụ xác định những gì một âm thanh đại diện được gọi là phân loại âm thanh . Một mô hình phân loại âm thanh được đào tạo để nhận ra các sự kiện âm thanh khác nhau. Ví dụ: bạn có thể đào tạo một mô hình để nhận ra các sự kiện đại diện cho ba sự kiện khác nhau: vỗ tay, búng ngón tay và nhập. TensorFlow Lite cung cấp các mô hình được đào tạo trước được tối ưu hóa mà bạn có thể triển khai trong các ứng dụng di động của mình. Tìm hiểu thêm về phân loại âm thanh bằng TensorFlow tại đây .
Hình ảnh sau đây cho thấy đầu ra của mô hình phân loại âm thanh trên Android.
Bắt đầu
Nếu bạn chưa quen với TensorFlow Lite và đang làm việc với Android, chúng tôi khuyên bạn nên khám phá các ứng dụng mẫu sau có thể giúp bạn bắt đầu.
Bạn có thể tận dụng API có sẵn từ Thư viện tác vụ TensorFlow Lite để tích hợp các mô hình phân loại âm thanh chỉ trong một vài dòng mã. Bạn cũng có thể xây dựng kênh suy luận tùy chỉnh của riêng mình bằng cách sử dụng Thư viện hỗ trợ TensorFlow Lite .
Ví dụ Android bên dưới minh họa việc triển khai bằng Thư viện tác vụ TFLite
Nếu bạn đang sử dụng nền tảng không phải Android / iOS hoặc nếu bạn đã quen thuộc với các API TensorFlow Lite , hãy tải xuống mô hình khởi động và các tệp hỗ trợ (nếu có).
Tải xuống mô hình khởi động từ TensorFlow Hub
Mô tả về mô hình
YAMNet là bộ phân loại sự kiện âm thanh lấy dạng sóng âm thanh làm đầu vào và đưa ra các dự đoán độc lập cho từng sự kiện trong số 521 sự kiện âm thanh từ bản thể học AudioSet . Mô hình sử dụng kiến trúc MobileNet v1 và đã được đào tạo bằng kho ngữ liệu AudioSet. Mô hình này ban đầu được phát hành trong Vườn mô hình TensorFlow, nơi có mã nguồn của mô hình, điểm kiểm tra mô hình ban đầu và tài liệu chi tiết hơn.
Làm thế nào nó hoạt động
Có hai phiên bản của mô hình YAMNet được chuyển đổi thành TFLite:
YAMNet Là mô hình phân loại âm thanh ban đầu, với kích thước đầu vào động, phù hợp cho việc triển khai Truyền tải, Web và Di động. Nó cũng có một đầu ra phức tạp hơn.
YAMNet / phân loại là phiên bản lượng tử hóa với đầu vào khung độ dài cố định đơn giản hơn (15600 mẫu) và trả về một vectơ điểm số cho 521 lớp sự kiện âm thanh.
Đầu vào
Mô hình chấp nhận mảng 1-D float32
Tensor hoặc NumPy có độ dài 15600 chứa dạng sóng 0,975 giây được biểu diễn dưới dạng các mẫu đơn âm 16 kHz trong dải [-1.0, +1.0]
.
Kết quả đầu ra
Mô hình trả về hình dạng 2-D float32
Tensor (1, 521) chứa điểm số dự đoán cho mỗi lớp trong số 521 lớp trong bản thể luận AudioSet được YAMNet hỗ trợ. Chỉ số cột (0-520) của tensor điểm được ánh xạ tới tên lớp AudioSet tương ứng bằng cách sử dụng Bản đồ lớp YAMNet, có sẵn dưới dạng tệp liên kết yamnet_label_list.txt
được đóng gói trong tệp mô hình. Xem bên dưới để sử dụng.
Sử dụng phù hợp
YAMNet có thể được sử dụng
- như một bộ phân loại sự kiện âm thanh độc lập cung cấp đường cơ sở hợp lý cho nhiều sự kiện âm thanh khác nhau.
- như một trình trích xuất tính năng cấp cao: đầu ra nhúng 1024-D của YAMNet có thể được sử dụng làm các tính năng đầu vào của một mô hình khác, sau đó có thể được đào tạo trên một lượng nhỏ dữ liệu cho một tác vụ cụ thể. Điều này cho phép nhanh chóng tạo ra các bộ phân loại âm thanh chuyên biệt mà không yêu cầu nhiều dữ liệu được gắn nhãn và không cần phải đào tạo một mô hình lớn end-to-end.
- như một khởi đầu ấm áp: các tham số mô hình YAMNet có thể được sử dụng để khởi tạo một phần của mô hình lớn hơn, cho phép tinh chỉnh và khám phá mô hình nhanh hơn.
Hạn chế
- Các kết quả đầu ra của trình phân loại của YAMNet chưa được hiệu chỉnh giữa các lớp, vì vậy bạn không thể coi đầu ra là xác suất trực tiếp. Đối với bất kỳ nhiệm vụ nhất định nào, bạn rất có thể sẽ cần thực hiện hiệu chuẩn với dữ liệu cụ thể của nhiệm vụ cho phép bạn chỉ định ngưỡng điểm và tỷ lệ phù hợp cho mỗi lớp.
- YAMNet đã được đào tạo về hàng triệu video YouTube và mặc dù những video này rất đa dạng, vẫn có thể có sự không khớp về miền giữa video YouTube trung bình và đầu vào âm thanh được mong đợi cho bất kỳ tác vụ nhất định nào. Bạn nên thực hiện một số tinh chỉnh và hiệu chuẩn để làm cho YAMNet có thể sử dụng được trong bất kỳ hệ thống nào mà bạn xây dựng.
Tùy chỉnh mô hình
Các mô hình được đào tạo trước được cung cấp được đào tạo để phát hiện 521 lớp âm thanh khác nhau. Để có danh sách đầy đủ các lớp, hãy xem tệp nhãn trong kho lưu trữ mô hình .
Bạn có thể sử dụng một kỹ thuật được gọi là chuyển giao học tập để đào tạo lại một mô hình nhằm nhận ra các lớp không có trong tập hợp ban đầu. Ví dụ: bạn có thể đào tạo lại mô hình để phát hiện nhiều tiếng hót của loài chim. Để làm điều này, bạn sẽ cần một bộ âm thanh đào tạo cho mỗi nhãn mới mà bạn muốn đào tạo. Cách được đề xuất là sử dụng thư viện TensorFlow Lite Model Maker để đơn giản hóa quá trình đào tạo mô hình TensorFlow Lite bằng cách sử dụng tập dữ liệu tùy chỉnh, trong một vài dòng mã. Nó sử dụng học chuyển giao để giảm lượng dữ liệu và thời gian đào tạo cần thiết. Bạn cũng có thể tìm hiểu từ Học chuyển giao để nhận dạng âm thanh như một ví dụ về học chuyển.
Đọc thêm và tài nguyên
Sử dụng các tài nguyên sau để tìm hiểu thêm về các khái niệm liên quan đến phân loại âm thanh: