- Họ và tên: Trần Huỳnh Trung Hiếu
- MSSV: N21DCCN122
- Lớp: D21CQCNHT01-N
- Khoa: Công nghệ thông tin 2
- Trường: Học viện Công nghệ Bưu chính Viễn thông cơ sở thành phố Hồ Chí Minh (PTIT)
- Email liên hệ: n21dccn122@student.ptithcm.edu.vn
Trích xuất và quản lý metadata âm thanh bằng Python cho hệ cơ sở dữ liệu đa phương tiện
Dự án AudioMetaManager nhằm xây dựng một hệ thống đơn giản để trích xuất và quản lý siêu dữ liệu (metadata) từ các tệp âm thanh định dạng .mp3, .flac và .ogg. Hệ thống hỗ trợ:
- Đọc thông tin tiêu đề, nghệ sĩ, album, thể loại,... từ tệp âm thanh.
- Lưu trữ dữ liệu vào cơ sở dữ liệu SQLite để truy xuất, phân tích hoặc tích hợp với hệ cơ sở dữ liệu đa phương tiện.
- Cấu trúc mã nguồn rõ ràng, dễ bảo trì và mở rộng.
- Hỗ trợ chạy chương trình theo folder chứa nhiều tệp âm thanh.
mutagen: đọc metadata từ file âm thanh.sqlite3: lưu trữ và truy xuất dữ liệu trong cơ sở dữ liệu nội bộ.os: duyệt tệp và thư mục.
AudioMetaManager/
├── docs/ # Thư mục chứa tài liệu tham khảo
├── report/ # Thư mục chứa bài báo cáo viết bằng LaTeX
├── samples/ # Thư mục chứa các tệp metadata audio đầu vào
├── src/ # Thư mục chứa mã nguồn chính
│ ├── evaluation/ # Thư mục chứa các code đánh giá kết quả
│ | ├── evaluate_accuracy.py # Tệp kiểm tra độ chính xác khi trích xuất dữ liệu
│ | ├── evaluate_query.py # Tệp đánh giá hiệu suất truy vấn trong cơ sở dữ liệu
│ | ├── evaluation_result.csv # Kết quả đánh giá độ chính xác khi trích xuất dữ liệu
│ | ├── ground_truth.py # Tập dữ liệu metadata thực tế dùng để kiểm tra tính chính xác
│ ├── templates
│ ├── app.py # Tệp chính để chạy giao diện chương trình chương trình
│ ├── create_db.py # Tạo database lưu metadata
│ ├── database_util.py # Hỗ trợ tương tác cơ sở dữ liệu
│ ├── database.py # Định nghĩa cấu trúc cơ sở dữ liệu
│ ├── extractor.py # Trích xuất metadata từ audio
├── requirements.txt # Danh sách thư viện cần cài đặt
└── README.md # Tài liệu mô tả dự ángit clone https://github.com/ththieu2412/AudioMetaManager.git
cd AudioMetaManagerpip install -requirements.txtCác tệp âm thanh cần được trích xuất metadata, đặt trong thư mục samples/.
Ví dụ tệp đầu vào:
samples/.flac/sample1.flac
samples/.mp3/sample2.mp3
samples/.ogg/sample3.oggMột tệp cơ sở dữ liệu audio_metadata.db được tạo tự động trong thư mục src/.
Cơ sở dữ liệu lưu trữ metadata được trích xuất từ các tệp âm thanh, bao gồm các thông tin sau:
| Thông tin | Mô tả |
|---|---|
title |
Tên bài hát |
artist |
Nghệ sĩ |
album |
Tên album |
genre |
Thể loại âm nhạc |
duration |
Thời lượng bài hát (giây) |
file_path |
Đường dẫn gốc của tệp đầu vào |
cd src
python create_db.pycd src
python app.pySau khi chạy, giao diện sẽ được phục vụ tại địa chỉ:
http://127.0.0.1:5000Các chức năng đánh giá nằm trong thư mục src/evaluation/.
cd src/evaluation
python evaluate_accuracy.py
| 📌 Tệp này sẽ so sánh metadata trích xuất được với dữ liệu thực tế trong ground_truth.py và xuất kết quả ra evaluation_result.csv.
cd src/evaluation
python evaluate_query.py| 📌 Tệp này đo thời gian thực thi các truy vấn thường dùng trên database metadata đã tạo.
Thư viện Mutagen – xử lý metadata file âm thanh.
Tài liệu chính thức SQLite Python: sqlite3 module
Dự án được phát triển với mục đích học tập, nghiên cứu và phục vụ đồ án môn học tại Học viện Công nghệ Bưu chính Viễn thông.