Tài liệu Nhận dạng bản nhạc dựa trên việc phân tích ký âm

  • Số trang: 80 |
  • Loại file: PDF |
  • Lượt xem: 144 |
  • Lượt tải: 1
nhattuvisu

Đã đăng 27125 tài liệu

Mô tả:

ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM LỜI CẢM ƠN Đầu tiên em xin chân thành cảm ơn thầy Trần Minh Văn là giáo viên trực tiếp hướng dẫn và tận tình giúp đỡ tạo mọi điều kiện để em hoàn thành tốt đồ án tốt nghiệp này. Xin chân thành cảm ơn đến tất cả quý thầy cô trong bộ môn, cũng như khoa Khoa Nghệ Thông Tin và trường Đại học Nha Trang đã tận tình đào tạo trong những năm qua. Xin chân thành cảm ơn! Nha trang, ngày 7 tháng 6 năm 2011 Sinh viên thực hiện Trần Trung Triều. 1 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM MỤC LỤC Contents PHẦN I : GIỚI THIỆU CHUNG............................................................................... 4 1. Giới thiệu chung...........................................................................................................4 2. Đặt vấn đề ....................................................................................................................4 3. Chủ đề luận án..............................................................................................................4 4. Phạm vi luận án..........................................................Error! Bookmark not defined. PHẦN II : CƠ SỞ LÝ THUYẾT .............................................................................. 7 CHƯƠNG 1. LÝ THUYẾT XỬ LÝ TÍN HIỆU SỐ ..........................................................7 1.1. Tín hiệu số.................................................................................................................7 1.2. Xử lý tín hiệu số (DSP- Digital signal processing)...................................................8 Chương 2. GIỚI THIỆU CHUNG VỀ ÂM THANH SỐ ...............................................18 2.1. Âm thanh và đặc tính của âm thanh........................................................................18 2.2. Âm thanh số ............................................................................................................19 2.3. Định dạng dữ liệu....................................................................................................21 2.4. Khuôn dạng lưu trữ .................................................................................................23 Chương 3. KHUÔN DẠNG LƯU TRỮ TỆP ÂM THANH .............................................29 3.1. File định dạng Wave (*.wav) ..................................................................................29 3.2. File định dạng MIDI (*.mid)...................................................................................33 PHẦN III : GIẢI PHÁP XỬ LÝ.............................................................................39 Chương 4. XÂY DỰNG CƠ SỞ DỮ LIỆU ......................................................................39 4.1. Cơ sở lý thuyết ........................................................................................................39 4.2. Cấu trúc file *.3t......................................................................................................40 4.3. Xây dựng cơ sở dữ liệu ..........................................................................................41 Chương 5. BIẾN ĐỔI FFT VÀ PHÂN TÍCH PHỔ ..........................................................44 5.1. Biến đổi FFT ...........................................................................................................44 2 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM 5.2. Phân tích phổ...........................................................................................................46 Chương 6. RÚT TRÍCH KÍ ÂM VÀ NHẬN DẠNG TÊN BÀI HÁT ..............................48 6.1. Rút trích kí âm.........................................................................................................48 6.2. Nhận dạng tên bài hát..............................................................................................50 PHẦN IV: THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH ...................................56 Chương 7 . PHƯƠNG PHÁP THIẾT KẾ........................................................................56 7.1. Khái quát chức năng................................................................................................56 7.2. Cơ chế thực hiện .....................................................................................................56 Chương 8. CÀI ĐẶT CHƯƠNG TRÌNH ..........................................................................59 8.1. Truy cập file wave...................................................................................................59 8.2. Truy cập file midi...................................................................................................61 8.3. Cài đặt thuật toán FFT Cooley-Tookey ..................................................................63 8.4. Phân tích phổ tần số ................................................................................................66 8.5. Nhận dạng bài hát....................................................................................................69 Chương 9. HƯỚNG DẪN SỬ DỤNG...............................................................................71 9.1. Giao diện chương trình ...........................................................................................71 9.2. Tùy chọn chức năng ................................................................................................74 ĐÁNH GIÁ CHƯƠNG TRÌNH ...............................................................................75 1. Đánh giá chương trình................................................................................................75 2. Hướng phát triển ........................................................................................................76 3. Kết luận ......................................................................................................................77 Phụ lục A. GIẢI THÍCH THUẬT NGỮ...................................................................79 Phụ lục B. TÀI LIỆU THAM KHẢO .......................................................................80 3 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM PHẦN I : GIỚI THIỆU CHUNG 1. Giới thiệu chung Cùng với sự phát triển của cuộc cách mạng khoa học và công nghệ đang diễn ra một cách sôi động, chúng ta đang tiến dần tới thế giới của sự số hoá. Với các ưu điểm của xử lý số, nhanh gọn, chính xác với chất lượng cao, mọi lĩnh vực hoạt động của xã hội loài người, nhất là các ngành trong các lĩnh vực giải trí, thông tin liên lạc, phát thanh truyền hình ... đều tiến tới việc áp dụng một cách đồng bộ và có hiệu quả các công cụ cũng như các phép xử lý số. Trong đó, âm thanh là một lĩnh vực đặc biệt quan trọng, đây là một phương thức dùng để trao đổi cũng như cảm nhận tin, không chỉ là tiếng nói, bản nhạc mà đó là tất cả các âm mà ta cảm nhận được trong cuộc sống hàng ngày, do đó, lĩnh vực về âm thanh không thể nằm ngoài xu hướng phát triển chung mà còn cần sự nghiên cứu sâu hơn nữa. 2. Đặt vấn đề Với âm thanh số, bằng việc lưu trữ âm thanh dưới dạng các dãy số, chúng ta đạt được yêu cầu về tốc độ truyền cũng như về khối lượng lưu trữ và độ trung thực khi nó được phát lại. Do vậy, ngoài các phương tiện sử dụng kỹ thuật số, như camera số, thiết bị ghi số, điện thoại số... với chất lượng cao, thì những âm thanh tương tự được ghi từ micro với các nhạc cụ truyền thống đều được chuyển đổi sang dạng số hoá. Về xử lý tín hiệu số, ngày nay các kỹ thuật xử lý tín hiệu số gần như đã được hoàn thiện, cả về lý thuyết và ứng dụng thực tiễn, xử lý tín hiệu số ứng dụng của nó là hầu như ở rất nhiều lĩnh vực, trong âm nhạc, quốc phòng an ninh, địa chất dự đoán động đất, … Trước những nền tảng đã có, thì việc xây dựng các ứng dụng áp dụng kỹ thuật xử lý tín hiệu số tác động lên file âm thanh số không phải là hiếm, nó đã được nhiều tổ chức, cá nhân nghiên cứu và cũng đã cho ra trên thị trường nhiều phần mềm hữu ích phục vụ cho một số công việc, chức năng cụ thể. 3. Chủ đề luận văn 4 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM Trên cơ sở lý thuyết đã có, nhận xét rằng nội dung một bản nhạc là bao gồm tập các nốt nhạc (ký âm) được bố trí theo trật tự trong khuôn nhạc, kèm theo là những ký hiệu mô tả cho giai điệu, nhịp, phách,.. của bản nhạc đó. Hình minh họa: một bản nhạc gồm tập các nốt nhạc. Dựa trên tập nốt nhạc trong bản nhạc, các nhạc cụ được dùng khi phát một bản nhạc sẽ tạo thành một sóng âm thanh trong không khí mà tai người cảm nhận được, các thiết bị điện tử dùng kỹ thuật lấy mẫu và lượng tử hóa lưu sóng âm đó vào trong máy tính. Hình minh họa: file nhạc mô tả sóng âm của bản nhạc được phát. Âm thanh đã được số hóa, bằng cách áp dụng các kỹ thuật xử lý tín hiệu số trên file âm thanh này, phân tích ngược tìm lại các nốt nhạc của bản nhạc gốc ban đầu. Kết quả được đem so sánh với cơ sở dữ liệu gồm các bản nhạc để tìm ra tên bài hát. Đây chính là nội dung mà luận văn sẽ trình bày. Vậy với đề tài: “Nhận dạng bản nhạc dựa trên việc phân tích ký âm” thì nhiệm vụ chính là đi tìm hiểu lại các kỹ thuật xử lý tín hiệu số, và cấu trúc định dạng của một vài định 5 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM dạng âm thanh số được lưu trữ trong máy tính, ưu nhược điểm của chúng. Sau đó sẽ xây dựng một chương trình sử dụng ngôn ngữ lập trình C#) nhận dạng một bản nhạc cụ thể. Nội dung chính sẽ đề cập đến những phần sau: - Xây dựng cơ sở dữ liệu bao gồm các file 3t từ file midi. - Áp dụng kỹ thuật xử lý tín hiệu số (DFT), cụ thể dùng thuật toán biến đổi nhanh FFT, tác động lên dữ liệu đầu vào là file thu âm, phân tích phổ đầu ra tìm tần số cơ bản. - Nhận dạng tìm tên bài hát dựa trên cơ sở dữ liệu và mảng các tần số cơ bản thu được. 6 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM PHẦN II : CƠ SỞ LÝ THUYẾT CHƯƠNG 1. LÝ THUYẾT XỬ LÝ TÍN HIỆU SỐ 1.1. Tín hiệu số 1.1.1. Định nghĩa tín hiệu Tín hiệu là biểu hiện vật lý của thông tin.Về mặt toán học tín hiệu được coi là hàm của một hay nhiều biến độc lập. Ví dụ: Tín hiệu âm thanh là sự biến thiên của áp suất theo thời gian P(t) hoặc cũng có thể coi tín hiệu âm thanh là sự biến thiên áp suất theo không gian P(x,y,z). 1.1.2. Phân loại tín hiệu a. Phân loại theo biến độc lập: - Tín hiệu liên tục theo thời gian: là tín hiệu có biến thời gian liên tục (nhận mọi giá trị trong một khoảng giá trị nào đó). - Tín hiệu rời rạc: là tín hiệu có biến độc lập thời gian chỉ nhận một số giá trị(Ví dụ: Các chỉ số thị trường chứng khoán, các số liệu khí tượng…). Nghĩa là tín hiệu có thể biểu diễn bằng một dãy số, hàm tín hiệu chỉ có giá trị xác định ở những thời điểm nhất định. Tín hiệu rời rạc (còn được gọi là tín hiệu lấy mẫu) thu được bằng cách lấy mẫu tín hiệu liên tục. b. Phân loại theo biên độ: - Tín hiệu liên tục theo biên độ: là tín hiệu mà hàm biên độ nhận bất kỳ giá trị nào. Ví dụ: Hàm x(t) = sin(t) nhận mọi giá trị trong khoảng [-1,1]. - Tín hiệu rời rạc theo biên độ hay còn gọi là tín hiệu được lượng tử hoá: là tín hiệu mà hàm biên độ chỉ nhận các giá trị nhất định. Ví dụ: x(t) = 0 với t < 0 và x(t) = 1 với t ≥ 0. 1.1.3. Định nghĩa tín hiệu số Từ đó ta có định nghĩa tín hiệu số: Tín hiệu số (Digital Signal) là tín hiệu có biên độ và thời gian rời rạc 7 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM x 3 2 1 0 t -1 -2 -3 Hình 1.1 –Tín hiệu số 1.1.4. Hệ xử lý tín hiệu − Một hệ thống xử lý tín hiệu sẽ xác lập mối quan hệ giữa tín hiệu vào và tín hiệu ra: y = T[x]. Hình 1.2 –Mô hình một hệ xử lý − Phân loại hệ xử lý theo tín hiệu vào và tín hiệu ra: + Hệ rời rạc: là hệ xử lý tín hiệu rời rạc. + Hệ tương tự: là hệ xử lý tín hiệu tương tự. 1.2. Xử lý tín hiệu số (DSP- Digital signal processing) Xử lý tín hiệu số là việc xử lý trên những tín hiệu đã được biểu diễn dưới dạng chuỗi số. Các phép xử lý DSP chuẩn cơ bản là : FFT, lọc, decimation, interpolation (nội suy), convolution (tích chập),… Việc phân tích và thiết kế của các hệ thống tuyến tính đã được thực sự đơn giản hóa bởi các phép biểu diễn trong miền tần số của cả tín hiệu và hệ thống. Trong đó biến đổi Fourier đóng vai trò quan trọng trong việc biểu diễn các tín hiệu và hệ thống rời rạc theo thời gian. 8 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM 1.2.1. Phép biến đổi Fourier với tín hiệu liên tục Một tín hiệu liên tục được xây dựng trên cơ sở là tập hợp của các sóng hình sin có tần số, và chu kỳ khác nhau. Phép biến đổi Fourier với tín hiệu liên tục là đi phân tích tín hiệu tổng hợp này thành các thành phần tín hiệu cơ bản cấu thành nên chúng. Vì vậy với tín hiệu liên tục tuần hoàn theo thời gian thì kết quả của phép biến đổi Fourier sẽ cho ra một sóng hình sin có tần số tương ứng với tần số của tín hiệu đầu vào. Với tín hiệu liên tục không tuần hoàn thì ta có thể xếp chồng tín hiệu không tuần hoàn để tạo thành một tín hiệu liên tục tuần hoàn với chu kỳ là vô cùng lớn, vì thế kết quả của phép biến đổi Fourier bao gồm nhiều các thành phần con, mỗi thành phần mang một tần số cơ sở, và khi ta kết hợp tập các tần số cơ sở này sẽ cho ra lại tín liệu liên tục như ban đầu. Hình 1.1: Kết quả phép biến đổi Fourier với tín liệu liên tục được biểu diễn sang miền tần số Như vậy một tín hiệu liên tục bất kì có thể được phân tích thành những thành phần tần số cơ bản cấu thành nên chúng, với tín hiệu số được lấy mẫu và lượng tử hóa từ tín hiệu liên tục đó, thì cũng với phương pháp biến đổi Fourier trên tín hiệu số này ta cũng tìm được những thành phàn cơ sở, sau đây sẽ nói cụ thể hơn về phép biến đổi Fourier tác động lên tín liệu rời rạc 1.2.2. Biến đổi Fourier rời rạc (DFT - Discrete Fourier Transform) Như ta đã biết thì DFT được sử dụng rộng rãi trong quá trình tính toán sự đánh giá phổ, các hàm tự tương quan và việc cài đặt các bộ lọc số, ... . Đây là phép biến đổi Fourier 9 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM rời rạc của tín hiệu x(n) có độ dài hữu hạn và có trục tần số cũng được rời rạc hóa. Trong đó tín hiệu x(n) có độ dài hữu hạn là tín hiệu có giá trị khác 0 trong một khoảng thời gian nào đó và chúng bằng 0 trong khoảng còn lại. Với x(n) được dùng như là một chu trình của tín hiệu, ta có thể xây dựng tín hiệu xp(n) tuần hoàn với chu kỳ N bằng cách xếp chồng tuần hoàn x(n): ∞ Xp(n) = ∑ x(n + iN ) i = −∞ Ta có các công thức biến đổi Fourier như sau:  N −1 ∑ x(n).W Nnk  DFT: X(k) =  n = 0 0 1  IDFT: x(n) =  N 0 N −1 ∑ X (k ).W 0 ≤ k ≤ N −1 (1.1) víi k cßn l¹i − nk N 0 ≤ n ≤ N −1 k =0 (1.2) víi n cßn l¹i Trong đó: Ví dụ minh họa phép biến đổi Fourier rời rạc: - Đầu vào phép biến đổi là tín hiệu rời rạc: - Kết quả sau khi biến đổi Fourier được mô tả dưới dạng tập các sóng sin và cosin, mỗi sóng sin, cosin đều có một tần số cụ thể: 10 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM Tóm lại, Phép biến đổi Fourier đã biến đổi một tín hiệu trong miền thời gian sang miền tần số, dựa vào kết quả này mà tùy ứng dụng sẽ xử lý trên kết quả đầu ra theo mục đích riêng nào đó. Ở đây chúng ta sẽ lấy ra tần số cơ bản của mỗi lần biến đổi Fourier. 1.2.3. Hàm cửa sổ Như ta đã biết, phép biến đổi Fourier rời rạc DFT tác động trên tín hiệu có độ dài hữu hạn, nên cần thiết phải hạn chế độ dài đối với các tín hiệu có độ dài vô cùng hoặc quá lớn để có thể nghiên cứu phổ của chúng. Để làm điều này ta thường dùng hàm cửa sổ, tức là nhân tín hiệu x(n) với cửa sổ w(n-n0) để nhận được một đoạn xN(n) trong khoảng n0 tới n0+N-1 để phân tích. 11 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM  x ( n) n 0 ≤ n ≤ n 0 + N − 1 víi n cßn l¹i xN(n) = x(n). w(n- n0) =  0 (1.3) Việc nhân tín hiệu với hàm cửa sổ theo thời gian tương đương với việc nhân chập phổ của tín hiệu x(n) với phổ của cửa sổ: f 0 +1 XN(f) = ∫ (1.4) X(g)W(f-g)dg = X(f)*W(f) f0 Trong đó XN(f), X(f), và W(f) là biến đổi Fourier tương ứng của xN(n), x(n), và w(n). Một số hàm cửa sổ thường được sử dụng: cửa sổ Hamming, Blackman,… Kết quả nhận được từ tín hiệu sau khi đã cho qua cửa sổ không những phụ thuộc vào dạng cửa sổ mà còn phụ thuộc vào số điểm tín hiệu phân tích N, cũng như vị trí cửa sổ được đặt ở đâu, tức là tìm n0 phù hợp. Ta phải chọn vị trí cửa sổ sao cho cửa sổ bao trùm lên phần quan trọng của tín hiệu và bỏ qua những chổ có biên độ nhỏ, và phải chọn N sao cho một chu kỳ xp(n) là xấp xỉ của x(n) với sai số cho phép. 1.2.4. Phép biến đổi nhanh Fourier (FFT - Fast Fourier Transform) Đây thực chất là DFT nhưng với một thuật toán nhanh, gọn và hiệu quả. FFT đã tạo ra một bước ngoặc mới và thực sự đóng vai trò hết sức quan trọng trong việc phân tích, thiết kế và thực hiện các thuật toán xử lý tín hiệu số cũng như tín hiệu tương tự. Tuy có nhiều thuật toán tính FFT khác nhau, nhưng nguyên tắc chung của tất cả các thuật toán này là dựa trên việc phân tích cách tính DFT của một dãy N số (gọi tắt là DFT N điểm) thành các phép tính DFT của các dãy nhỏ hơn, trong đó số phép tính tỷ lệ với N.log(N). Để đánh giá hiệu quả của thuật toán, ta sử dụng số phép tính nhân và cộng phức. Số phép nhân và cộng phức liên quan trực tiếp đến tốc độ tính toán khi thuật toán được thực hiện trên các máy tính hay là các bộ xử lý chuyên dụng. 1.2.4.1. Hiệu quả tính toán của FFT Công thức tính DFT của dãy dài N: 12 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM Qua đây ta thấy để tính mỗi giá trị DFT ta cần N phép nhân và cộng phức. Để tính toàn bộ DFT ta cần tạp O( phép nhân và cộng phức, hay nói cách khác công thức có độ phức ) do đó với các giá trị N lớn phương pháp tính trực tiếp sẽ tốn khá nhiều thời gian, sau đây ta sẽ xem xét giải thuật để tính biến đổi Fourier rời rạc của tín hiệu rời rạc có chiều dài N x(n) với độ phức tạp nhỏ hơn. Đến đây nhận xét rằng ta gặp lại 2 bài toán tính biến đổi Fourier rời rạc của 2 dãy con x(2r) và x(2l+1) với chiều dài N/2. Sử dụng các kỹ thuật đệ quy bài toán biến đổi Fourier rời rạc sẽ được giải quyết với độ phức tạp O(NlogN) nhỏ hơn rất nhiều so với việc ta tính toán trực tiếp công thức ban đầu độ phức tạp lên tới O( ). 1.2.4.2. Nguyên tắc của FFT Nguyên tắc cơ bản mà các thuật toán FFT đều dựa vào là phân chia DFT N mẫu thành các DFT nhỏ hơn một cách liên tục: Với DFT , đầu tiên ta phân chia DFT N mẫu thành các DFT mẫu thành DFT mẫu, sau đó phân chia mẫu và cứ tiếp tục như thế cho đến khi được các DFT dài N = 2. Việc tính DFT nhỏ hơn rõ ràng sẽ cần ít phép tính nhân và cộng phức hơn. 1.2.4.3. Thuật toán Cooley–Tukey Năm 1965, Cooley và Tukey đã tìm ra thuật toán tính DFT một cách hiệu quả gọi là thuật toán FFT. Thuật toán Cooley-Tukey được sử dụng phổ biến. Nó đưa việc tính DFT 13 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM của dãy N=N1*N2 điểm về việc tính toán DFTs với kích thước nhỏ hơn là N1,N2, công việc này được thực hiện một cách đệ quy. Xuất phát từ công thức DFT ban đầu cho đầu vào là dãy N mẫu: Chuyển việc tính toán DFT N điểm về 2 lần DFTs trên N/2 bằng cách chia dãy N thành 2 dãy con có độ dài N/2, và một dãy sẽ chứa các mẫu có chỉ số chẵn n=2m, và mảng còn lại chứa các mẫu ở vị trí chỉ số lẻ n=2m+1: Với ( là những phần được xem như phần thực và phần ảo của đầu ra FFT tại mỗi mẫu ). Tuy nhiên, do tính chất đối xứng của phép DFT ở đầu ra: và Cùng với tính chất ngược pha : Nên suy ra công thức FFT mới: (1.5) Công thức (1.5) là phương pháp tính DFT một dãy N mẫu đầu vào, đây chính là công thức tính nhanh FFT. *Một ví dụ được biểu diễn dưới dạng sơ đồ hình bướm cho thấy rõ cách tính DFT theo công thức (1.5), ví dụ tính DFT cho dãy 8 mẫu đầu vào: 14 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM Ví dụ 1.1 : FFT một dãy 8 mẫu Thay vào việc tính DFT cho 8 mẫu đầu vào ta thay bằng cách tính nhanh FFT với 2 lần tính DFT cho 8/2=4 mẫu. Lần DFT đầu tiên sẽ cho các mẫu chẵn như hình vẽ, kết quả đầu ra được đặt tên là E[i], với i chạy từ 0..8/2-1=3, Lần DFT tiếp theo với đầu vào là các mẫu ở vị trí lẽ, kết quả đầu ra là mảng O[i], với i: 0..3. Sau đó áp dụng công thức (1.5), tính kết quả đầu ra của phép DFT cho mảng 8 mẫu đầu vào, thể hiện qua X[i], i:0..7 15 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM Mã giả của thuật toán được mô tả như sau: Y0,...,N−1 ← ditfft2(X, N, s): DFT of (X0, Xs, X2s, ..., X(N-1)s): { if N = 1 then Y0 ← X0 trivial size-1 DFT base case else Y0,...,N/2−1 ← ditfft2(X, N/2, 2s); //DFT of (X0, X2s, X4s, ...) YN/2,...,N−1 ← ditfft2(X+s, N/2, 2s); //DFT of (Xs, Xs+2s, Xs+4s, ...) // combine DFTs of two halves into full DFT: for k = 0 to N/2−1 t ← Yk Yk ← t + exp(−2πi k/N) Yk+N/2 Yk+N/2 ← t − exp(−2πi k/N) Yk+N/2 endfor endif } 1.2.5. Ứng dụng DFT phân tích phổ tín hiệu  Khái niệm phổ tín hiệu: Người ta chứng minh được rằng một tín hiệu bất kì có thể phân hủy hay tổng hợp từ các sóng sin có biên độ và tần số khác nhau. Đặc trưng của các sóng sin được thể hiện bởi tần số, biên độ và pha, vì vậy muốn thể hiện trên trục đồ thị tập hợp các sóng sin tương đương với tín hiệu thì phải vẽ lên một trục tọa độ mà một cái là tần số còn cái kia là biên độ hoặc pha, tín hiệu tương đương này người ta gọi là phổ biên độ (phổ) hoặc phổ pha. Trục f ở đây thể hiện các tần số của sóng sin cần có để có thể tổng hợp ra một tín hiệu tương đương với tín hiệu gốc theo phép biến đổi Fourier... 16 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM Xét cho cùng phổ là một công cụ toán học như tích phân, đạo hàm... đây là công cụ dùng để giải quyết một số bài toán mà các công cụ truyền thống khó khăn trong việc sử dụng. Chẳng hạn như trong bài toán phân tích phổ của tín hiệu âm thanh ta có thể rút trích được biên độ, tần số cơ bản của một nốt nhạc được phát. Như vậy dựa vào phổ của tín hiệu mà ta có thể rút trích một số thông tin cần thiết phục vụ cho mục đích cụ thể nào đó.  Ứng dụng DFT phân tích phổ của tín hiệu: Để tìm phổ của tín hiệu (cả liên tục và rời rạc), ta cần phải biết giá trị của tín hiệu tại tất cả các thời điểm. Tuy nhiên trong thực tế, do ta chỉ quan sát được tín hiệu trong một khoảng thời gian hữu hạn nên phổ tính được chỉ là xấp xỉ của phổ chính xác. DFT được ứng dụng rất hiệu quả trong việc tính toán phổ xấp xỉ này. Trong thực tế, nếu tín hiệu cần phân tích là tín hiệu liên tục, trước hết ta cho tín hiệu đó đi qua một bộ lọc chống chồng phổ rồi lấy mẫu với tần số Fs ≥2B , với B là băng thông của tín hiệu sau khi lọc. Như vậy, tần số cao nhất chứa trong tín hiệu rời rạc là Fs/2. Sau đó, ta phải giới hạn chiều dài của tín hiệu trong khoảng thời gian T0 = LT, với L là số mẫu và T là khoảng cách giữa hai mẫu. Cuối cùng, ta tính DFT của tín hiệu rời rạc L mẫu. Muốn tăng độ phân giải của phổ rời rạc, ta tăng chiều dài của DFT bằng cách bù thêm số 0 vào cuối tín hiệu rời rạc trước khi tính DFT. 17 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM Chương 2. GIỚI THIỆU CHUNG VỀ ÂM THANH SỐ 2.1. Âm thanh và đặc tính của âm thanh 2.1.1. Sóng âm và cảm giác âm Khi một vật dao động về một phía nào đó, nó làm cho các lớp không khí liền trước bị nén lại, và lớp không liền sau dãn ra. Sự nén và dãn không khí như vậy lặp đi lặp lại một cách tuần hoàn nên đã tạo ra trong không khí một sóng đàn hồi. Sóng này truyền tới tai, nén vào màng nhĩ khiến cho màng nhĩ cũng dao động với cùng tần số. Khi màng nhĩ dao động, các vị trí phân biệt của màng nhĩ trên bề mặt giống như nó chuyển động về trước hay sau đáp ứng với các sóng âm vào. Khi cùng một thời điểm, ta nghe thấy nhiều âm, thì mọi âm thanh phân biệt này được trộn với nhau một cách tự nhiên trong tai giống như một hình mẫu đơn của áp suất không khí thay đổi. Tai và óc làm việc cùng nhau để phân tích tín hiệu này ngược lại thành những cảm giác về âm riêng biệt. 2.1.2. Độ cao của âm Độ cao của âm là một đặc tính sinh lý của âm và nó phụ thuộc vào một đặc tính của âm là tần số. Những âm có tần số khác nhau, tạo nên cảm giác về các âm khác nhau: âm có tần số lớn gọi là âm cao hay âm thanh; âm có tần số nhỏ gọi là âm thấp hay âm trầm. Sự cảm nhận về mức độ to nhỏ của âm thanh được gọi là cường độ (pitch). Và cường độ có liên quan rất gần với một thuộc tính về mặt vật lý gọi là tần số (frequency). 2.1.3. Âm lượng của âm (độ to của âm)  Năng lượng của âm Giống như các sóng cơ học, sóng âm cũng mang năng lượng sóng tỷ lệ với bình phương biên độ sóng. Và cường độ âm chính là năng lượng được sóng âm truyền trong một đơn vị thời gian qua một đơn vị diện tích đặt vuông góc với phương truyền (đơn vị W/m2). Tuy nhiên, để cảm nhận một âm, ta không đánh giá qua giá trị tuyệt đối của cường độ âm I, mà xét theo mức cường độ âm L. Tức là: L(B) = lg(I/I0) , với I0 là một giá trị chuẩn nào đó. 18 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM Thông thường, L lấy đơn vị là deciben (ký hiệu là dB). Với L=1dB (I lớn gấp 1,26 lần I0) là mức cường độ nhỏ nhất mà tai ta có thể phân biệt được.  Âm lượng của âm Để có thể tạo ra cảm giác âm, cường độ âm phải lớn hơn một ngưỡng nào đó. Với các tần số trong khoảng 1000-5000Hz, ngưỡng nghe khoảng 10-12W/m2. Với tần số 50Hz thì ngưỡng nghe lớn gấp 105 lần. Và mức âm lượng của âm phụ thuộc vào cả cường độ âm và tần số. 2.1.4. Âm sắc của âm Âm sắc là một đặc tính sinh lý của âm và nó được cấu thành trên cơ sở các đặc tính vật lý của âm là tần số và biên độ. Đây là một đặc trưng riêng của từng nguồn phát âm. Khi một nguồn phát ra một âm có tần số f1, thì đồng thời cũng phát ra các âm có tần số f2=2* f1, f3=3* f1 ... Âm có tần số f1 gọi là âm cơ bản hay hoạ âm thứ nhất. Các âm có tần số f2, f3, ... gọi là các hoạ âm thứ hai, thứ ba ... Tuỳ theo đặc tính của từng nguồn phát âm mà tạo ra các hoạ âm khác nhau với biên độ hay khoảng kéo dài khác nhau. Do đó âm do một nguồn âm phát ra là sự tổng hợp âm cơ bản và các hoạ âm. Nên, mặc dù có cùng tần số f1 của âm cơ bản nhưng đường biểu diễn không còn là một đường hình sin đơn thuần mà là một đường phức tạp có chu kỳ. 2.2. Âm thanh số Dạng chung nhất của các quá trình thu âm thanh số là dạng điều biến mã xung (PCM - Pulse Code Modulation). Đây là dạng mà phần lớn các đĩa compact và các file Wave sử dụng. Trong phần cứng thu thanh dạng PCM, một microphone chuyển dạng biến đổi áp suất không khí (các sóng âm thanh) thành dạng biến đổi điện áp. Sau đó một bộ chuyển đổi tương tự-số đo (mẫu hoá) dòng điện áp tại các quãng thời gian đều nhau. Ví dụ như, trong một đĩa compact có tới 44,100 mẫu được lấy mỗi giây. Mỗi điện áp mẫu hoá nhận được sẽ được chuyển đổi sang dạng số nguyên 16-bit. Một đĩa CD chứa 2 kênh dữ liệu: một cho tai trái, và một cho tai phải (đối với âm thanh dạng stereo). Hai kênh được thu thanh độc lập, được đặt theo cạnh (side) trên đĩa compact (dữ liệu cho các kênh trái và phải luân phiên 19 ĐỒ ÁN TỐT NGHIỆP NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM nhau...trái, phải, trái, phải, ...). Dữ liệu nhận được từ quá trình thu thanh PCM là một hàm theo thời gian. 2.2.1. Nguyên lý Về cơ bản, âm thanh tương tự và số là khác nhau, nên ta luôn bị mất thông tin khi làm phép chuyển đổi giữa chúng. Khi được số hoá, sóng âm thanh được biểu diễn như là một chuỗi các số (được gọi là các mẫu), mà chúng biểu diễn áp suất không khí hay tín hiệu điện tại các thời điểm kế tiếp nhau theo thời gian. Khi mẫu hoá một tín hiệu tương tự, ta luôn gặp phải 2 vấn đề: thứ nhất, mỗi giá trị kế tiếp trong dạng biểu diễn dạng số là một quãng xác định nào đó của thời gian, và mỗi khối có một độ rộng xác định; thứ hai là các số số hoá là rời rạc. Chỉ có một số xác định các độ cao có thể cho mỗi khối. Theo hình vẽ, ta thấy độ cao các khối không ăn khớp với đường tín hiệu gốc. TÝn hiÖu t−¬ng tù TÝn hiÖu sè Hình 2.1 : Chuyển đổi tín hiệu sang dạng các mẫu số Đây là hai lỗi cơ bản trong tín hiệu âm thanh số. Lỗi này có thể được kiểm soát bằng cách thay đổi khuôn dạng chi tiết của dạng biểu diễn âm thanh, nhưng không thể loại bỏ được hoàn toàn. Chính vì vậy, tuỳ theo ứng dụng ta sẽ phải chấp nhận một số lỗi nhất định. Và các hệ số khác như kích thước dữ liệu hay tần số xử lý yêu cầu ta phải chấp nhận một sai số lớn hơn từ một số nguồn để có thể giảm hơn nữa các sai số khác. 2.2.2. Tần số và cường độ Tần số của một sóng hình sin là khoảng thời gian mà nó dùng cho một chu kỳ hoàn chỉnh. Tần số được tính theo hertz (Hz), là số các chu kỳ hoàn chỉnh mà chúng xuất hiện 20
- Xem thêm -