Hướng dẫn phân loại âm thanh

Nhiệm vụ của Trình phân loại âm thanh MediaPipe cho phép bạn phân loại các đoạn âm thanh thành một nhóm danh mục xác định, chẳng hạn như nhạc ghi-ta, tiếng còi tàu hoặc tiếng chim hót. Các danh mục được xác định trong quá trình huấn luyện mô hình. Nhiệm vụ này hoạt động trên dữ liệu âm thanh có mô hình học máy (ML) dưới dạng các đoạn âm thanh độc lập hoặc một luồng liên tục, đồng thời đưa ra danh sách các danh mục tiềm năng được xếp hạng theo điểm xác suất giảm dần.

Hãy dùng thử!

Bắt đầu

Hãy bắt đầu sử dụng tác vụ này bằng cách làm theo một trong những hướng dẫn triển khai sau cho nền tảng mục tiêu của bạn. Các hướng dẫn dành riêng cho nền tảng này sẽ hướng dẫn bạn cách triển khai cơ bản của tác vụ này, bao gồm cả mô hình được đề xuất và mã ví dụ với các lựa chọn cấu hình được đề xuất:

Các hướng dẫn dành riêng cho nền tảng này sẽ hướng dẫn bạn cách triển khai cơ bản của tác vụ này, bao gồm cả mô hình được đề xuất và mã ví dụ với các tuỳ chọn cấu hình được đề xuất.

Thông tin chi tiết về việc cần làm

Phần này mô tả các tính năng, dữ liệu đầu vào, đầu ra và tuỳ chọn cấu hình của tác vụ này.

Tính năng

  • Xử lý âm thanh đầu vào – Xử lý bao gồm việc lấy mẫu lại âm thanh, lưu vào bộ đệm, lấy khung hình và biến đổi bốn hướng.
  • Ngôn ngữ bản đồ nhãn – Đặt ngôn ngữ dùng cho tên hiển thị
  • Ngưỡng điểm số – Lọc kết quả dựa trên điểm dự đoán.
  • Phát hiện hàng đầu – Lọc kết quả phát hiện số.
  • Gắn nhãn danh sách cho phép và danh sách từ chối – Chỉ định các danh mục được phát hiện.
Dữ liệu đầu vào của việc cần làm Kết quả đầu ra của nhiệm vụ
Dữ liệu đầu vào có thể là một trong các loại dữ liệu sau:
  • Đoạn âm thanh
  • Luồng âm thanh
Công cụ phân loại âm thanh sẽ xuất ra một danh sách các danh mục chứa:
  • Chỉ mục danh mục: chỉ mục của danh mục trong đầu ra của mô hình
  • Điểm số: điểm số tin cậy cho loại này, thường là xác suất bằng [0,1]
  • Tên danh mục (không bắt buộc): tên của danh mục như được chỉ định trong Siêu dữ liệu mô hình TFLite, nếu có
  • Tên hiển thị của danh mục (không bắt buộc): tên hiển thị cho danh mục như được chỉ định trong Siêu dữ liệu mô hình TFLite, bằng ngôn ngữ được chỉ định thông qua tuỳ chọn ngôn ngữ của tên hiển thị, nếu có

Lựa chọn về cấu hình

Tác vụ này có các chế độ cấu hình sau:

Tên lựa chọn Nội dung mô tả Khoảng giá trị Giá trị mặc định
running_mode Đặt chế độ chạy cho tác vụ. Trình phân loại âm thanh có 2 chế độ:

AUDIO_CLIPS: Chế độ chạy tác vụ âm thanh trên các đoạn âm thanh độc lập.

AUDIO_STREAM: Chế độ chạy tác vụ âm thanh trên một luồng âm thanh, chẳng hạn như từ micrô. Ở chế độ này, resultsListener phải được gọi để thiết lập trình nghe nhằm nhận kết quả phân loại một cách không đồng bộ.
{AUDIO_CLIPS, AUDIO_STREAM} AUDIO_CLIPS
display_names_locale Đặt ngôn ngữ của nhãn để sử dụng cho tên hiển thị được cung cấp trong siêu dữ liệu của mô hình của tác vụ, nếu có. Giá trị mặc định là en đối với tiếng Anh. Bạn có thể thêm nhãn đã bản địa hoá vào siêu dữ liệu của mô hình tuỳ chỉnh bằng cách sử dụng API Trình viết siêu dữ liệu TensorFlow Lite Mã ngôn ngữ vi
max_results Đặt số lượng kết quả phân loại được tính điểm cao nhất (không bắt buộc) để trả về. Nếu < 0, hàm sẽ trả về tất cả kết quả hiện có. Số dương bất kỳ -1
score_threshold Đặt ngưỡng điểm dự đoán để ghi đè ngưỡng được cung cấp trong siêu dữ liệu mô hình (nếu có). Những kết quả bên dưới giá trị này sẽ bị từ chối. [0,0, 1,0] Không đặt
category_allowlist Đặt danh sách các tên danh mục được phép (không bắt buộc). Nếu không để trống, kết quả phân loại có tên danh mục không có tên trong tập hợp này sẽ bị lọc ra. Tên danh mục trùng lặp hoặc không xác định sẽ bị bỏ qua. Tuỳ chọn này loại trừ lẫn nhau với category_denylist và việc sử dụng cả hai sẽ dẫn đến lỗi. Chuỗi bất kỳ Không đặt
category_denylist Đặt danh sách các tên danh mục không được phép (không bắt buộc). Nếu không để trống, kết quả phân loại có tên danh mục nằm trong tập hợp này sẽ bị lọc ra. Tên danh mục trùng lặp hoặc không xác định sẽ bị bỏ qua. Tuỳ chọn này loại trừ lẫn nhau với category_allowlist và việc sử dụng cả hai sẽ gây ra lỗi. Chuỗi bất kỳ Không đặt
result_callback Đặt trình nghe kết quả để nhận kết quả phân loại một cách không đồng bộ khi Trình phân loại âm thanh đang ở chế độ phát trực tuyến âm thanh. Chỉ có thể sử dụng khi bạn đặt chế độ chạy thành AUDIO_STREAM Không áp dụng Không đặt

Mô hình

Trình phân loại âm thanh yêu cầu bạn tải xuống và lưu trữ một mô hình phân loại âm thanh trong thư mục dự án. Hãy bắt đầu bằng mô hình mặc định, được đề xuất cho nền tảng mục tiêu khi bạn bắt đầu phát triển bằng tác vụ này. Các mô hình hiện có khác thường có sự đánh đổi giữa hiệu suất, độ chính xác, độ phân giải và các yêu cầu về tài nguyên, và trong một số trường hợp còn có thêm các tính năng bổ sung.

Mô hình Yamnet là một thuật toán phân loại sự kiện âm thanh được huấn luyện trên tập dữ liệu AudioSet để dự đoán các sự kiện âm thanh được xác định trong dữ liệu AudioSet. Để biết thông tin về các sự kiện âm thanh mà mô hình này nhận dạng được, hãy xem danh sách nhãn của mô hình.

Tên mẫu thiết bị Hình dạng dữ liệu đầu vào Loại lượng tử hoá Phiên bản
YamNet 1 x 15600 Không có (float32) Mới nhất

Điểm chuẩn nhiệm vụ

Dưới đây là các điểm chuẩn tác vụ cho toàn bộ quy trình dựa trên các mô hình được huấn luyện trước ở trên. Kết quả về độ trễ là độ trễ trung bình trên Pixel 6 khi sử dụng CPU / GPU.

Tên mô hình Độ trễ của CPU Độ trễ của GPU
YamNet 12,29 mili giây -