Kể từ khi nó bắt đầu vào năm 1999, Shazam đã được sử dụng để xác định các bài hát hơn năm mươi tỷ lần, và đó thậm chí còn không tính các ID từ Soundhound, MusicID và các ứng dụng nhận dạng âm thanh khác.

Từ góc nhìn của người dùng, thật đơn giản: Khởi động ứng dụng, nhấn nút và để điện thoại nghe bài hát. Sau một vài giây, ngay cả với tiếng ồn nền và biến dạng, ứng dụng sẽ cho bạn biết bài hát là gì. Nó hoạt động rất nhanh và tốt đến nỗi nó gần giống như ma thuật - nhưng, cũng như với hầu hết những điều kỳ diệu ngày nay, nó chủ yếu được điều khiển bởi các thuật toán.

Ý tưởng đằng sau những ứng dụng này là gì?

Shazam, Soundhound và các dịch vụ nhận diện âm nhạc khác đều hoạt động theo cùng một cách: chúng có cơ sở dữ liệu thông tin bài hát lớn, một thuật toán có thể trích xuất nhanh thông tin từ mẫu bài hát của bạn và ứng dụng cho phép bạn giao tiếp với những thứ đó. Về mặt kỹ thuật, bạn thậm chí không cần một điện thoại thông minh.

Shazam ban đầu có thể sử dụng được trên các điện thoại lật kiểu cũ bằng cách chỉ ghi âm một bài hát và nhắn tin cho dịch vụ. Soundhound đã thực sự đi thêm một vài bước nữa cũng bằng cách cho phép bạn hát hoặc hum vào ứng dụng của họ mà họ phù hợp với cơ sở dữ liệu do người dùng gửi về các bản ghi âm khác.

Họ làm việc như thế nào?

Nói một cách đơn giản, quá trình sẽ trông như sau:

  1. Cơ sở dữ liệu của ứng dụng có một bộ sưu tập lớn các bài hát “dấu vân tay” hoặc các mẩu dữ liệu nhỏ về các mẫu âm thanh độc đáo của bài hát.
  2. Khi người dùng chạm vào nút “Quay”, ứng dụng sẽ nghe nhạc và tạo vân tay dựa trên vài giây âm thanh mà nó nghe thấy.
  3. Dấu vân tay này được kiểm tra dựa vào cơ sở dữ liệu của dấu vân tay hiện có. Nếu dấu vân tay mười giây của bạn khớp với một phần của một bài hát, bạn sẽ nhận được kết quả bài hát (hy vọng chính xác) của mình. Nếu không, bạn sẽ nhận được một lỗi.

Nếu bạn chỉ đang tìm kiếm một lời giải thích mức bề mặt, đó là tất cả những gì bạn cần biết. Phần thực sự thú vị là làm thế nào bạn thực sự có được dấu vân tay đó.

Dấu vân tay bài hát

Tất cả bắt đầu với một quang phổ, giống như một trong đồ thị trên, lấy từ một bài báo được viết bởi một trong những người sáng lập của Shazam, Avery Wang. Về bản chất, đây là biểu đồ có thời gian trên trục x (ngang), tần số trên trục y (dọc) và biên độ được biểu thị bằng các mức cường độ màu khác nhau. Do đó, bất kỳ chuỗi âm thanh nào cũng có thể được chuyển đổi thành một quang phổ, và bất kỳ điểm nào trên quang phổ đều có thể được gán một tập hợp các tọa độ. Chỉ như thế, ghi chú có thể là số.

Nếu tất cả những gì bạn cần làm là kết hợp một vài âm thanh với nhau, bạn có thể dừng lại ở đây. Tuy nhiên, nếu bạn muốn xem qua một cơ sở dữ liệu đầy đủ hàng triệu bài hát, một quang phổ đầy đủ chi tiết có quá nhiều điểm dữ liệu để xem xét ở bất kỳ tốc độ nào.

Bước đột phá lớn trong nhận dạng âm nhạc là việc nhận ra rằng bạn có thể xác định âm thanh chỉ với một vài mẩu dữ liệu: các đỉnh hoặc các phần dữ dội nhất. Không chỉ loại bỏ hầu hết các bộ phận năng lượng thấp của một bài hát làm giảm kích thước của quang phổ, nhưng nó làm cho các ứng dụng kém nhạy cảm với việc xác định tiếng ồn nền mờ, phù hợp như một phần của âm thanh mục tiêu. Hãy tưởng tượng một đường chân trời thành phố - những phần dễ nhận biết nhất là các đỉnh của các tòa nhà, không phải tầng giữa, và đó là những gì bạn có thể nhìn thấy từ xa nhất.

Vì vậy, mỗi giây của mỗi bài hát đều bị tước xuống chỉ là một vài trong số những điểm dữ liệu dữ dội nhất; tất cả mọi thứ trên đường chân trời của thành phố bị loại trừ ngoại trừ hàng đầu. Nhưng điều đó vẫn chưa đủ hiệu quả để có thể tìm kiếm ngay lập tức, vì vậy bước tiếp theo là "băm" chuỗi đỉnh này. Hashing đơn giản là lấy một bộ đầu vào, chạy chúng thông qua một thuật toán, và gán cho chúng một đầu ra số nguyên. Trong trường hợp này, băm được tạo ra bằng cách lấy hai đỉnh cường độ cao, đo thời gian giữa chúng và cộng hai tần số của chúng lại với nhau.

Kết quả là một chuỗi các số, dễ dàng lưu trữ và có thể tìm kiếm được. Khi một máy tính đọc băm này, nó sẽ nhận ra chúng như là đại diện cho tần số và khoảng cách thời gian. Khi tất cả các đỉnh trong bài hát đã được xác định và băm, quá trình chuyển đổi hoàn tất: bài hát hiện có số 32 bit duy nhất đóng vai trò là ID của nó trong cơ sở dữ liệu. Quan trọng hơn, mỗi giây của bài hát được thể hiện bằng các con số.

Khi điện thoại của bạn nghe nhạc, nó sẽ trải qua quá trình chính xác này: nó lọc ra tất cả mọi thứ nhưng điểm cao nhất, băm chúng và tạo vân tay trong vài giây nó đã ghi lại. Khi điều này hoàn tất, điện thoại của bạn chỉ cần xem vị trí các chuỗi số tương ứng xuất hiện trong cơ sở dữ liệu, cho phép nó khớp với tần số và thời gian được phát hiện cho bài hát chính xác và trả lại cho bạn trong vài giây.

Âm nhạc và hơn thế nữa

Công nghệ này đã được sử dụng rộng rãi nhất để nhận dạng âm nhạc, nhưng ứng dụng nhận dạng âm thanh cũng có thể hoạt động với phim, quảng cáo, chương trình truyền hình, bài hát chim và hơn thế nữa. Shazam và Soundhound là nổi tiếng nhất, nhưng bây giờ bạn cũng có thể hỏi Google bài hát nào đang phát và nhận được phản hồi chính xác.

Và nếu bạn đang băn khoăn, “Các công ty này có theo dõi những bài hát được hỏi không?” Câu trả lời là “có”. Thống kê nhận dạng âm nhạc thực sự có thể dự đoán sự thành công của các bài hát và nghệ sĩ với độ chính xác khá cao và các hãng thu âm lớn như Warner đã ký hợp đồng với các ứng dụng như Shazam để giúp tìm kiếm các nghệ sĩ sắp tới. Vì vậy, nếu bạn muốn hỗ trợ một nghệ sĩ, bạn cũng có thể làm một phần của bạn và tìm kiếm bài hát của họ! Bạn chỉ có thể giúp họ cất cánh.