Tác vụ 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 các danh mục đã xác định, chẳng hạn như nhạc guitar, 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. Tác vụ này hoạt động trên dữ liệu âm thanh bằng mô hình học máy (ML) dưới dạng các đoạn âm thanh độc lập hoặc luồng liên tục và xuất 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.
Bắt đầu
Bắt đầu sử dụng tác vụ này bằng cách làm theo một trong các hướng dẫn triển khai sau đây 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 cho tác vụ này, bao gồm cả mô hình được đề xuất và ví dụ về mã với các tuỳ chọn cấu hình được đề xuất:
- Android – Ví dụ về mã – Hướng dẫn
- Python – Hướng dẫn về ví dụ về mã
- Web – Ví dụ về mã – Hướng dẫ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 cho nhiệm vụ này, bao gồm cả mô hình được đề xuất và ví dụ về mã 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, dữ liệu đầ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 – Quá trình xử lý bao gồm lấy mẫu lại âm thanh, lưu vào vùng đệm, tạo khung và biến đổi Fourier.
- Ngôn ngữ bản đồ nhãn – Đặt ngôn ngữ dùng cho tên hiển thị
- Ngưỡng điểm – Lọc kết quả dựa trên điểm dự đoán.
- Phát hiện top-k – 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 đã phát hiện.
Dữ liệu đầu vào của việc cần làm | Kết quả của tác vụ |
---|---|
Dữ liệu đầu vào có thể là một trong các loại dữ liệu sau:
|
Bộ phân loại âm thanh sẽ xuất ra một danh sách các danh mục chứa:
|
Tuỳ chọn cấu hình
Tác vụ này có các tuỳ chọn cấu hình sau:
Tên tuỳ chọn | Mô tả | Phạm vi 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ó hai 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 luồng âm thanh, chẳng hạn như từ micrô. Ở chế độ này, bạn phải gọi resultListener để thiết lập trình nghe nhận kết quả phân loại 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 tác vụ, nếu có. 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 ghi 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ó điểm số cao nhất tối đa (không bắt buộc) để trả về. Nếu < 0, tất cả kết quả có sẵn sẽ được trả về. | Bất kỳ số dương nào | -1 |
score_threshold |
Đặt ngưỡng điểm số dự đoán sẽ ghi đè ngưỡng được cung cấp trong siêu dữ liệu mô hình (nếu có). Kết quả thấp hơn giá trị này sẽ bị từ chối. | [0, 1] | Chưa đặt |
category_allowlist |
Đặt danh sách 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ó trong tập hợp này sẽ bị lọc ra. Hệ thống sẽ bỏ qua tên danh mục trùng lặp hoặc không xác định.
Tuỳ chọn này không thể dùng cùng với category_denylist và việc sử dụng cả hai sẽ dẫn đến lỗi. |
Chuỗi bất kỳ | Chưa đặt |
category_denylist |
Đặt danh sách 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. Hệ thống sẽ bỏ qua tên danh mục trùng lặp hoặc không xác định. Tuỳ chọn này tương đối độc lập với category_allowlist và việc sử dụng cả hai sẽ dẫn đến lỗi. |
Chuỗi bất kỳ | Chưa đặt |
result_callback |
Đặt trình nghe kết quả để nhận kết quả phân loại không đồng bộ khi Trình phân loại âm thanh ở chế độ luồng âm thanh. Chỉ có thể sử dụng khi chế độ chạy được đặt thành AUDIO_STREAM |
Không áp dụng | Chưa đặt |
Mô hình
Trình phân loại âm thanh yêu cầu tải mô hình phân loại âm thanh xuống và lưu trữ trong thư mục dự án. Bắt đầu với mô hình mặc định, được đề xuất cho nền tảng mục tiêu của bạn khi bạn bắt đầu phát triển bằng tác vụ này. Các mô hình khác hiện có thường đánh đổi giữa hiệu suất, độ chính xác, độ phân giải và yêu cầu về tài nguyên, đồng thời trong một số trường hợp, bao gồm cả các tính năng bổ sung.
Mô hình Yamnet (nên dùng)
Mô hình Yamnet là một bộ 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, hãy xem danh sách nhãn của mô hình.
Tên mẫu thiết bị | Hình dạng đầ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 tác vụ
Dưới đây là đ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ễ CPU | Độ trễ GPU |
---|---|---|
YamNet | 12,29 mili giây | - |