Phân loại âm thanh

Nhiệm vụ xác định nội dung âm thanh thể hiệ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 biết các sự kiện âm thanh khác nhau. Ví dụ: bạn có thể huấn luyện một mô hình để nhận biết các sự kiện đại diện cho ba sự kiện khác nhau: vỗ tay, búng tay và gõ. 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 hiển thị đầu ra của mô hình phân loại âm thanh trên Android.

Ảnh chụp màn hình của ví dụ về Android

Bắt đầu

Nếu bạn mới làm 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 sẵn có 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 quy trình suy luận tùy chỉnh của riêng mình bằng Thư viện hỗ trợ TensorFlow Lite .

Ví dụ Android bên dưới minh họa cách triển khai bằng Thư viện tác vụ TFLite

Xem ví dụ về Android

Xem ví dụ về iOS

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 với 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à trình 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 dự đoán độc lập cho từng sự kiện trong số 521 sự kiện âm thanh từ bản thể luận AudioSet . Mô hình sử dụng kiến ​​trúc MobileNet v1 và được đào tạo bằng kho dữ liệu AudioSet. Mô hình này ban đầu được phát hành trong TensorFlow Model Garden, nơi chứa mã nguồn 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 sang TFLite:

  • YAMNet Là mô hình phân loại âm thanh gốc, với kích thước đầu vào động, phù hợp cho việc triển khai Transfer Learning, Web và Mobile. Nó cũng có đầ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 có độ dài cố định đơn giản hơn (15600 mẫu) và trả về một vectơ điểm duy nhất cho 521 lớp sự kiện âm thanh.

Đầu vào

Mô hình này 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 thị dưới dạng mẫu đơn âm 16 kHz trong phạm vi [-1.0, +1.0] .

đầu ra

Mô hình trả về một Tensor 2-D float32 có hình dạng (1, 521) chứa điểm 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ỉ mục 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 công cụ 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 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 các bộ phân loại âm thanh chuyên dụng mà không cần nhiều dữ liệu được gắn nhãn và không cần phải huấn luyện một mô hình lớn từ đầu đến cuối.
  • như một sự 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ế

  • Đầu ra của bộ phân loại YAMNet chưa được hiệu chỉnh giữa các lớp, do đó bạn không thể coi trực tiếp đầu ra là xác suất. Đối với bất kỳ nhiệm vụ cụ thể nào, rất có thể bạn sẽ cần phải thực hiện hiệu chỉnh với dữ liệu dành riêng cho nhiệm vụ để cho phép bạn chỉ định ngưỡng điểm và tỷ lệ thích hợp cho mỗi lớp.
  • YAMNet đã được đào tạo về hàng triệu video YouTube và mặc dù các video này rất đa dạng như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 dự kiến ​​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 chỉnh để 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 đào tạo để phát hiện 521 loại âm thanh khác nhau. Để biết danh sách đầy đủ các lớp, hãy xem tệp nhãn trong kho mô hình .

Bạn có thể sử dụng một kỹ thuật được gọi là học chuyển giao để đào tạo lại 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 chim. Để làm điều này, bạn sẽ cần một bộ âm thanh đào tạo cho từng nhãn mới mà bạn muốn đào tạo. Cách được khuyến nghị 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 phương pháp 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ể học từ Học chuyển giao để nhận dạng âm thanh như một ví dụ về học chuyển giao.

Đọ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: