Phát hiện âm thanh bằng python

ESPHome là hệ thống điều khiển ESP8266/ESP32 của bạn bằng các tệp cấu hình đơn giản nhưng mạnh mẽ và điều khiển chúng từ xa thông qua hệ thống Tự động hóa gia đình

Bắt đầu

  • từ Trợ lý gia đình
  • sử dụng dòng lệnh
  • bằng cách di chuyển từ Tasmota
            esphome:
              name: awesome
            esp32:
              board: nodemcu-32s
        

Bước tiếp theo

  • Câu hỏi thường gặp và mẹo
  • tự động hóa
  • Ví dụ tự làm
  • các loại cấu hình
  • Chia sẻ thiết bị ESPHome
  • Dành cho chương trình ESPHome

theo kịp

  • bất hòa
  • diễn đàn
  • Nhật ký thay đổi
  • người ủng hộ
  • Đóng góp

Nền tảng¶

ESP8266

ESP32

RP2040

Thành phần cốt lõi¶

Cốt lõi

Wifi

MQTT

Mạng

Xe buýt I²C

xe buýt SPI

xe buýt UART

Có thể xe buýt

Cập nhật OTA

Tiều phu

Máy chủ web

API gốc

Nguồn cấp

Giấc ngủ sâu

Thành phần bên ngoài

Linh kiện cảm biến¶

Cảm biến đã được chia thành các loại. Nếu một cảm biến phù hợp với nhiều danh mục, nó sẽ được liệt kê nhiều lần

Xin chào tuần mới các anh em Mì AI, chúng ta đã làm việc với Computer Vision – thị giác máy tính rồi. Hôm nay chúng ta sẽ thử dạy máy tính sử dụng thính giác để nghe âm thanh qua bài toán dạy máy tính sử dụng thính giác và phân biệt âm thanh bằng CNN nhé

Nguồn. https. //lớp nhận thức. ai

Bài toán của chúng tôi sẽ có dạng là khi chúng tôi đưa một đoạn âm thanh [được lưu dưới tệp wav] cho máy tính. Máy tinh sẽ có thể phân tích và trả về cho chúng ta kết quả âm thanh đó là gì, ví dụ. “tiếng chó cắn”, “tiếng còi xe”,…

Okie, đi nào

Phần 1. Chuẩn bị nguyên liệu

Vẫn như mọi khi, các bạn tạo thư mục MiAI_Sound_Classifier để lưu các món của bài này. Sau khi tạo xong, các bạn chuyển vào thư mục đó và nhập lệnh

git clone //github.com/thangnch/MiAI_Sound_Classifier .

Sau một chút chờ đợi, các bạn sẽ thấy 1 số thư mục và tệp được tải xuống. Các bạn chuyển vào dữ liệu thư mục và tạo các thư mục theo cấu trúc như sau

  • Tạo thư mục huấn luyện và kiểm tra trong dữ liệu thư mục
  • Tạo thư mục wav trong thư mục dữ liệu

Tiếp theo, các bạn tải dữ liệu âm thanh để luyện và thi tại đây. Sau khi tải xong, các bạn có file datawav. zip, giải nén ra các bạn có 2 thư mục train và test [ other with train and test các bạn tạo bên trên nhé], các bạn copy vào trong thư mục wav đã tạo ở trên nhé

Sau khi đã tạo và tải xong dữ liệu, các bạn cài đặt các thư viện cần thiết bằng lệnh sau nhé

pip install -r setup.txt

Chú ý, tại thời điểm các bạn khai thác, có thể một số thư viện đã nâng cấp và gây ra lỗi, các bạn chú ý nhé

Phần 2. Tư duy ảo thuật dạy máy tính

Trước đây khi nhắc đến xử lý âm thanh, mọi người hay sử dụng kiến ​​trúc RNN như LSTM bởi vì âm thanh là chuỗi dữ liệu. Tuy nhiên, cũng có một cách là sử dụng CNN để xử lý. Sở dĩ làm như vậy là được vì chúng ta sẽ có một bước biến âm thanh thành hình ảnh quang phổ của nó. Ví dụ như hình dưới

Như vậy, từ chỗ xử lý âm thanh, chúng ta quy định về bài toán phân loại hình ảnh bằng CNN. Cụ thể bài này chúng ta sẽ thực hiện các bước sau

  • Quá trình đào tạo
    • Bước 1. Chuyển toàn bộ dữ liệu wav sang tệp ảnh và lưu vào các thư mục đào tạo và kiểm tra khác nhau
    • Bước 2. Đọc các ảnh trong thư mục đào tạo và thực hiện mô hình đào tạo. Chú ý là đầu ra nhãn đầu ra sẽ ở trong tệp đào tạo. csv [cột lớp]
  • Quá trình kiểm tra
    • Bước 1. Chuyển âm thanh cần kiểm tra về định dạng tệp ảnh
    • Bước 2. truyền tệp ảnh vào mạng để dự đoán lớp tương ứng
Nguồn. Andrew Ng Slide

Phần 3. Mã nguồn chương trình

Bài này các bạn cần chú ý một số tệp bao gồm

  • Tiền xử lý tệp. py. File này mình tiền xử lý dữ liệu. Chuyển đổi toàn bộ các tệp wav chứa trong thư mục data/wav/train và data/wav/test thành các tệp ảnh và lưu trong thư mục data/train va data/test
  • Tập tin train_model. py. Thực hiện mô hình huấn luyện lưu tệp huấn luyện vào mô hình tệp. h5
  • Tệp test_model. py. Thực hiện dự đoán thử thiết lập thử nghiệm của chúng tôi và kết quả hiển thị trên màn hình

Mã nguồn dã được mình comment chi tiết từng dòng, các bạn đọc trong file để nắm lấy code nhé

Phần 4. Thực hiện chương trình dạy máy tính và phân loại âm thanh

First, you run file Preprocessing. py to process data. Run command python as after

python preprocessing.py

Phần này sẽ chạy hơi lâu một chút, các bạn có thể để máy đó và làm việc khác hoặc chạy qua đêm cho người đỡ ruột. ha ha

Chờ một chút khi màn hình thông báo “Quá trình hoàn tất. ” thì là xong nhé. Sau khi chạy xong, các bạn chú ý trong thư mục data/train và data/test sẽ có rất nhiều file spectrogram như sau

Tiếp theo chúng ta sẽ thực hiện đào tạo và thử nghiệm mô hình bằng lệnh

python train_model.py 

Chờ cho đào tạo mô hình hoàn tất và hiển thị màn hình chữ Mô hình được đào tạo. là okie

Now now you try run file test model by command

python test_model.py

Chờ chút, dự đoán xong các bạn sẽ thấy hiện lên màn hình các dòng chữ

Prediction values=  ['car_horn', 'dog_bark', 'car_horn', 'car_horn', 'car_horn', 'dog_bark', 'dog_bark', 'dog_bark', 'dog_bark', 'children_playing']
 Real values= 
 0            car_horn
 1            car_horn
 2            car_horn
 3            car_horn
 4            car_horn
 5            dog_bark
 6            dog_bark
 7            dog_bark
 8            dog_bark
 9    children_playing

Như vậy model đã dự đoán đúng lớp 9/10 file âm thanh trong set test của chúng ta. The you can try with other data file in test set nhé

Rồi, như vậy chúng ta đã hoàn thành bài toán dạy máy tính và nhận diện âm thanh – thính giác máy tính. Rút ra từ bài này là nhiều khi từ các bài toán khó, chưa có cách giải nhưng nếu như biết cách thay đổi và hiểu dữ liệu thì chúng ta có thể đưa về các bài toán thông thường -bài toán phân loại ảnh chó/

Chúc các bạn thành công. Nếu trong quá trình thực hiện có gì khó khăn, hoặc cần thảo luận, các bạn có thể đăng lên nhóm để cùng trao đổi nhé Group trao đổi, chia sẻ. https. //www. Facebook. com/groups/miaigroup

Hãy tham gia cùng cộng đồng Mì AI nhé.
#MÌAI

Trang fanpage. http. //Facebook. com/miaiblog
Trao đổi nhóm, chia sẻ. https. //www. Facebook. com/groups/miaigroup
Trang web. https. // miai. vn
YouTube. http. //chút. ly/miaiyoutube

Nguồn tham khảo. https. //github. com/EXJUSTICE/Urban_Sound_Classification/blob/master/Sound%20Class%20with%20Spec%20Images%20Draft. ipynb

Chủ Đề