Tìm tên bài hát dựa vào giai điệu, nhạc hoặc lời bằng Python

Mọi người cho mình hỏi , hiện tại mình muốn làm sao để khi một bài hát phát lên từ thì hệ thống sẽ nhận dạng đó là tên bài hát gì và nó được phát triển bởi ngôn ngữ Python. Giống như ứng dụng Shazam (Android, iOS). Mong mọi người cho mình xin ý kiến với ạ, mình xin cảm ơn!

từ title đã sai rồi, tên bài hát là người ta đặt, muốn đặt là gì mà không được, “dự đoán” kiểu gì
bạn ra đường nhìn thấy mặt người ta, bạn đoán được tên không?

4 Likes

Cơ bản thì bạn cần có một hệ thống chứa mẫu bài hát, giai điệu cùng với tựa đề. Sau đó là phân tích gia diệu đầu vào để đưa ra các bài hát có mẫu giai điệu gần giống hoặc giống nếu đủ dữ liệu.
Tiêu đề nên là Tìm tên bài hát dựa vào giai điệu, nhạc hoặc lời bằng Python.
Google Assistant cũng có chức năng tương tự khi nhập/nói “Tìm bài hát”, nó sẽ nghe giai điệu, nhạc hoặc lời để đưa ra một bài hát.

5 Likes

Bước 1: thuê API speed-to-text của FPT hoặc Zalo, lời bài hát có thể hiệu suất không cao, cần phải loại bỏ nhạc nền trước.
Bước 2: lấy text kết quả của bước 1 search google rồi lấy kết quả dòng đầu tiên, crawl trang 1 rồi dùng regex lọc text.

Cách khác là tự build từ đầu, mà phải có kiến thức nền AI, machine learning, chủ yếu là phải có CSDL chứa tất cả bài hát trên thế giới.

4 Likes

Nếu cậu muốn bắt chước Shazam, cậu nên hiểu họ làm như thế nào.
Đây là giải thuật được dùng bởi Shazam, cậu nên đọc và cân nhắc làm theo nhé! :smile:
Về cơ bản, họ phải tạo ra fingerprint của bài hát, sau đó search trên fingerprint đó.
Cậu cũng nên đọc phần tổng kết của họ, trong TH cậu có ý tưởng gì để cải tiến giải thuật, cậu có thể suggest.

5 Likes

Hình như ứng dụng này mới hiểu tiếng anh à, tiếng việt chưa phát hành

Hồi xưa mình dùng thử Shazam thì nó nhận diện được cả những bài tiếng Nhật, tiếng Tây Ban Nha và tiếng Việt. Nhưng nó chỉ nhận diện tốt những bài nổi tiếng, những bài ít người biết thì nó không nhận diện được.

Nếu bạn làm biếng thì có thể dùng “chùa” API không công khai của họ:

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?