SoDeep IconSoDeep
·
Cách Shazam nhận diện bài hát từ một đoạn nhạc ngắn

Cách Shazam nhận diện bài hát từ một đoạn nhạc ngắn

@Sâu Thuật Toán · 14 tháng 6, 2026

Shazam không hề "nghe" nhạc như cách chúng ta cảm nhận giai điệu. Thực tế, nó biến đoạn âm thanh ồn ào trong quán cafe thành một tấm bản đồ mật mã, nơi chỉ có những đỉnh tần số cao nhất được giữ lại.

Hãy tưởng tượng mỗi bài hát là một chòm sao độc bản trên bầu trời dữ liệu. Khi bạn đưa điện thoại lên, thuật toán chụp nhanh một góc "bầu trời" đó và đối chiếu các tọa độ sao với hàng triệu bản đồ có sẵn trong kho lưu trữ.

Chỉ cần vài điểm khớp nhau là nó "chốt đơn" ngay tên bài hát, bất kể tiếng ồn xung quanh. Đó là sức mạnh của việc biến nghệ thuật thành những con số logic.

Ủa, vậy lỡ mình hát karaoke thì nó có tìm ra bài gốc không?

Rất tiếc là không. Shazam thực chất là máy quét "vân tay âm thanh" chứ không phải một người nghe có khả năng cảm thụ giai điệu.

Vì mỗi bản thu có một "chòm sao" riêng biệt, nên khi bạn hát, các đỉnh tần số sẽ lệch hoàn toàn so với bản gốc. Thuật toán sẽ thấy tọa độ của bạn chẳng khớp với bất kỳ bản đồ nào trong kho dữ liệu.

Nó giống như việc dùng vân tay mình để mở khóa điện thoại người khác. Dù cùng là "ngón tay", nhưng mã số sinh trắc học thì không bao giờ trùng nhau.

Nhưng làm sao nó tìm ra kết quả nhanh thế giữa biển dữ liệu đó?

Nó không rà soát từng bài một đâu, làm vậy thì máy chủ sẽ 'hẻo' ngay lập tức. Bí mật nằm ở một cấu trúc dữ liệu thông minh gọi là bảng băm (hash table).

Thuật toán chia nhỏ bài hát thành hàng nghìn 'mảnh ghép' tọa độ. Mỗi mảnh được gán một mã số định danh riêng, giống như mã vạch trên hàng hóa siêu thị.

Khi bạn 'quét' nhạc, Shazam chỉ cần tra cứu những mã số đó trong danh bạ khổng lồ. Nó nhảy thẳng đến vị trí chính xác thay vì phải lùng sục qua hàng triệu bài hát khác.

Vậy lỡ hai bài có đoạn nhạc giống hệt nhau thì sao?

Đúng là có những đoạn nhạc "đụng hàng", nhưng Shazam không chỉ nhìn vào một mã vạch duy nhất. Nó nhìn vào cặp đôi hoặc bộ ba mã vạch đi kèm với khoảng cách thời gian cực kỳ chính xác giữa chúng.

Hãy tưởng tượng từ "anh" xuất hiện trong hàng triệu bài hát. Nhưng cụm từ "anh đi tìm em giữa trời hoa" với nhịp điệu cụ thể thì chỉ có một. Thuật toán lưu giữ cả "nội dung" lẫn "thời điểm" xuất hiện của các đỉnh âm thanh đó.

Vì vậy, dù hai bài có chung một tiếng trống, nhưng chuỗi các điểm ảnh hưởng tiếp theo sẽ tạo ra một dấu vân tay thời gian không thể lẫn vào đâu được.

Nếu bài hát bị remix nhanh hơn thì Shazam có 'bó tay' không?

Đúng là 'điểm yếu' đây rồi. Vì thuật toán dựa trên khoảng cách thời gian tuyệt đối, nên nếu bài hát bị đẩy tốc độ nhanh hơn, các 'ngôi sao' âm thanh sẽ bị kéo lại gần nhau.

Khi đó, tọa độ thời gian bị lệch hoàn toàn so với bản gốc. Thuật toán sẽ thấy một bản đồ mới lạ hoắc và không thể tìm được mảnh ghép nào trùng khớp trong kho dữ liệu.

Đó là lý do Shazam cực giỏi nhận diện bản gốc trong tiếng ồn, nhưng lại thường 'đầu hàng' trước các bản Nightcore hay remix thay đổi nhịp điệu.

Trải nghiệm duyệt thẻ →

Chủ đề liên quan

Cơ chế AI tự động tô màu cho những thước phim đen trắng cũCơ chế tự động lấy nét vào mắt người của máy ảnhCơ chế nắn chỉnh giọng hát của công nghệ Auto-tuneCách nếm thử một muỗng để biết vị cả nồi canhCách thuật toán nhận diện và lọc bỏ các đánh giá ảoCách mạng xã hội gợi ý những người bạn có thể biết