MỤC LỤC
Giới thiệu
1.
TỔNG QUAN VỀ XỬ LÝ ÂM THANH..............................................................................................3
1.1
Khái niệm tín hiệu............................................................................................................................3
1.2 Phân loại tín hiệu:.................................................................................................................................3
1.3
2
Khái niệm âm thanh........................................................................................................................5
CÁC KỸ THUẬT NHẬN DẠNG ÂM THANH..................................................................................5
2.1 Kỹ thuật phân cụm K means...............................................................................................................6
2.2 Kỹ thuật K láng giềng gần nhất – K-nearest neighbor (K-NN).......................................................8
3
TRÍCH RÚT CÁC ĐẶC TRƯNG CỦA ÂM THANH TRONG VIỆC NHẬN DẠNG NHẠC CỤ.
3.1 Đặc trưng âm thanh trong miền tần số..............................................................................................9
Spetral entropy H:...........................................................................................................................................12
3.2 Đặc trưng âm thanh trong miền thời gian.......................................................................................12
4.
CHƯƠNG TRÌNH NHẬN DẠNG NHẠC CỤ..................................................................................12
4.1 Thu thập dữ liệu huấn luyện..............................................................................................................13
4.2 Trích rút đặc trưng âm thanh............................................................................................................14
4.3 Truy vấn nhận dạng âm thanh..........................................................................................................18
5.
ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC..................................................................................................21
1
Giới thiệu
Trong sự phát triển của khoa học công nghệ, thiết bị số đang dẫn chiếm ưu thế giúp
ta lưu trữ dữ liệu một cách phong phú và đa dạng. Ngồi dữ liệu văn bản đã có từ lâu,
chúng ta có thêm các kiểu dữ liệu mới như: hình ảnh, âm thanh, video. Vì vậy việc tìm
hiểu về các loại dữ liệu mới này là rất có ý nghĩa.
Trên cơ sở những kiến thức đã học trong môn Cơ sở dữ liệu đa phương tiện, chúng
em tìm hiểu về các kỹ thuật xử lý âm thanh và phương pháp chuyển đổi Fourier rời rạc.
Bao gồm các nội dung chính:
1.
2.
3.
4.
5.
Tổng quan về âm thanh
Các kỹ thuật nhận dạng âm thanh
Các đặc trưng âm thanh thường được sử dụng để nhận dạng các nhạc cụ.
Chương trình nhận dạng nhạc cụ
Đánh giá kết quả đạt được.
Do kiến thực còn hạn hẹp nên bài tập lớn của chúng em cịn nhiều sai sót, hạn chế.
Chúng em mong thầy góp ý và sửa chữa để hoàn thiện bản thân hơn. Chân thành cảm ơn
thầy!
2
1. TỔNG QUAN VỀ XỬ LÝ ÂM THANH
1.1 Khái niệm tín hiệu
Là đại lượng vật lý biến thiên theo thời gian, theo không gian, theo một hoặc nhiều
biến độc lập khác, ví dụ như:
Âm thanh, tiếng nói: dao động sóng theo thời gian (t)
Hình ảnh: cường độ sáng theo không gian (x, y, z)
Địa chấn: chấn động địa lý theo thời gian
Biểu diễn tốn học của tín hiệu: hàm theo biến độc lập
Ví dụ :
Thơng thường các tín hiệu tự nhiên khơng biểu diễn được bởi một hàm sơ cấp, cho
nên trong tính tốn, người ta thường dùng hàm xấp xỉ cho các tín hiệu tự nhiên.
Hệ thống: là thiết bị vật lý, thiết bị sinh học, hoặc chương trình thực hiện các phép
tốn trên tín hiệu nhằm biến đổi tín hiệu, rút trích thơng tin, … Việc thực hiện phép tốn
cịn được gọi là xử lý tín hiệu.
1.2 Phân loại tín hiệu:
Các tín hiệu trên thực tế được phân loại như sau:
3
Định nghĩa tín hiệu liên tục: Nếu biến độc lập của biểu diễn tốn học của một tín
hiệu là liên tục thì tín hiệu đó gọi là tín hiệu liên tục.
Định nghĩa tín hiệu tương tự: Nếu biên độ của tín hiệu liên tục là liên tục thì tín
hiệu đó gọi là tín hiệu tương tự.
Định nghĩa tín hiệu lượng tử hố: Nếu biên độ của tín hiệu liên tục là rời rạc thì
tín hiệu đó gọi là tín hiệu lượng tử hố.
Hình 1.1 Minh họa sự phân loại tín hiệu
Định nghĩa tín hiệu rời rạc: Nếu biến độc lập của biểu diễn tốn học của một tín
hiệu là rời rạc thì tín hiệu đó gọi là tín hiệu rời rạc.
Định nghĩa tín hiệu lấy mẫu: Nếu biên độ của tín hiệu rời rạc là liên tục và khơng
bị lượng tử hố thì tín hiệu đó gọi là tín hiệu lấy mẫu.
4
Định nghĩa tín hiệu số: Nếu biên độ của tín hiệu rời rạc là rời rạc thì tín hiệu đó gọi
là tín hiệu số.
Ngồi ra cịn có thể phân loại tín hiệu thành các loại sau:
Tín hiệu đa kênh: gồm nhiều tín hiệu thành phần ,cùng chung mơ tả một đối tượng
nào đó (thường được biểu diễn dưới dạng vector, ví dụ như tín hiệu điện tim (ECGElectroCardioGram),tín hiệu điện não (EEG – ElectroEncephaloGram), tín hiệu ảnh màu
RGB.
Tín hiệu đa chiều: biến thiên theo nhiều hơn một biến độc lập, ví dụ như tín hiệu
hình ảnh, tín hiệu tivi trắng đen.
Tín hiệu ngẫu nhiên: giá trị của tín hiệu trong tương lai khơng thể biết trước được.
Các tín hiệu trong tự nhiên thường thuộc nhóm này.
Tín hiệu tất định: giá trị tín hiệu ở quá khứ, hiện tại và tương lai đều được xác định
rõ, thơng thường có cơng thức xác định rõ ràng
1.3 Khái niệm âm thanh
- Âm thanh là các dao động cơ học (biến đổi vị trí qua lại) của các phân tử, nguyên
tử hay các hạt làm nên vật chất và lan truyền trong vật chất như các sóng. Âm thanh,
giống như nhiều sóng, được đặc trưng bởi tần số, bước sóng, chu kỳ, biên độ và vận tốc
lan truyền.
- Âm thanh là tác động của áp suất khơng khí lên trống của tai con người. Con người
nghe được với ngưỡng âm thanh tần số 20 Hz đến 20.000 Hz. Tham số khác đo âm
thanh là biên độ, cho phép âm thanh mềm hay thô.
- Âm thanh số là tín hiệu âm thanh tương tự đã được rởi rạc hóa thành các tính hiệu
số.
2 CÁC KỸ THUẬT NHẬN DẠNG ÂM THANH
Ý tưởng chính của việc nhận dạng âm thanh là ta tính tốn độ tương tự giữa câu truy
vấn so với các dữ liệu đã có (đại diện bởi vector đặc trưng).
Một số kỹ thuật nhận dạng âm thanh phổ biến
5
Kỹ thuật phân cụm K means
Dynamic time warping (DTW)
K nearest neighbor (KNN)
Trong phần này, ta sẽ tìm hiểu về 2 kỹ thuật đơn giản K means, K - NNs
2.1 Kỹ thuật phân cụm K means
Ý tưởng chính là sắp xếp đối tượng/véctơ đặc trưng tương tự vào cùng nhóm/cụm và
việc tìm kiếm chỉ thực hiện trong các cụm liên quan Mỗi cụm được biểu diễn bởi trọng
tâm của các véctơ đặc trưng trong cụm Trong khi truy vấn, ta tính tốn độ tương tự giữa
câu truy vấn và từng cụm (đại diện bởi véctơ đặc trưng). Cụm nào có mức độ tương tự lớn
hơn ngưỡng cho trước là được chọn. Tiếp theo đối sánh véctơ câu truy vấn với từng véctơ
đặc trưng trong cụm và k đối tượng gần nhất là kết quả.
Thuật toán Kmean thực hiện theo bước sau:
Đầu vào: Dữ liệu X và số lượng cluster cần tìm K.
Đầu ra: Các center M và label vector cho từng điểm dữ liệu Y.
1. Chọn K điểm bất kỳ làm các center ban đầu.
2. Phân mỗi điểm dữ liệu vào cluster có center gần nó nhất.
3. Nếu việc gán dữ liệu vào từng cluster ở bước 2 khơng thay đổi so với vịng lặp
trước nó thì ta dừng thuật toán.
4. Cập nhật center cho từng cluster bằng cách lấy trung bình cộng của tất các các
điểm dữ liệu đã được gán vào cluster đó sau bước 2.
5. Quay lại bước 2.
Ở đây, label vector có dạng y1=[yi1,yi2,…,yik] và
yik∈{0,1},
6
Thủ tục lặp sẽ luôn kết thúc khi điểm trung tâm không thay đổi. Tuy nhiên, cần lưu ý
rằng các thuật tốn khơng nhất thiết phải đưa ra những kết quả tối ưu.
7
Hình ảnh mơ phỏng việc phân cụm bằng K-means
Hạn chế
Chúng ta cần biết số lượng cluster cần clustering. Để ý thấy rằng trong thuật toán nêu
trên, chúng ta cần biết đại lượng KK là số lượng clusters. Trong thực tế, nhiều trường hợp
chúng ta không xác định được giá trị này.
Nghiệm cuối cùng phụ thuộc vào các centers được khởi tạo ban đầu. Tùy vào các center
ban đầu mà thuật tốn có thể có tốc độ hội tụ rất chậm, hoặc thậm chí cho chúng ta
nghiệm khơng chính xác (chỉ là local minimum - điểm cực tiểu - mà không phải giá trị
nhỏ nhất)
Có thể khắc phục bằng cách:
Chạy K-means clustering nhiều lần với các center ban đầu khác nhau rồi chọn cách phù
hợp nhất.
Tối ưu hóa q trình khởi tạo các centre.
2.2 Kỹ thuật K láng giềng gần nhất – K-nearest neighbor (K-NN)
Giả sử hệ thống đã được huấn luyện và các điểm dữ liệu (được thể hiện bằng
vector đặc trưng) đã được gán nhãn.
Thuật tốn K-NN được mơ tả như sau:
1) Xác định tham số K (số láng giềng gần nhất)
2) Tính tốn khoảng cách giữa vector đặc trưng của âm thanh cần tìm với vector
đặc trưng của tất cả dữ liệu âm thanh đã có.
8
3) Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gần nhất
với đoạn âm thanh cần nhận dạng.
4) Gán nhãn của đoạn âm thanh gần nhất cho đoạn âm thanh cần nhận dạng.
Ưu điểm của KNN
1. Độ phức tạp tính tốn của q trình training là bằng 0.
2. Việc dự đoán kết quả của dữ liệu mới rất đơn giản.
3. Không cần giả sử gì về phân phối của các class.
Nhược điểm của KNN
1. KNN rất nhạy cảm với nhiễu khi K nhỏ.
2. KNN là một thuật tốn mà mọi tính tốn đều nằm ở khâu test. Trong đó việc tính
khoảng cách tới từng điểm dữ liệu trong training set sẽ tốn rất nhiều thời gian, đặc biệt là
với các cơ sở dữ liệu có số chiều lớn và có nhiều điểm dữ liệu. Với K càng lớn thì độ
phức tạp cũng sẽ tăng lên. Ngoài ra, việc lưu toàn bộ dữ liệu trong bộ nhớ cũng ảnh
hưởng tới hiệu năng của KNN.
Tăng tốc cho KNN
Ngồi việc tính tốn khoảng cách từ một điểm test data đến tất cả các điểm trong
training set, có một số thuật tốn khác giúp tăng tốc việc tìm kiếm này như là cây K-D.
3 TRÍCH RÚT CÁC ĐẶC TRƯNG CỦA ÂM THANH TRONG VIỆC NHẬN
DẠNG NHẠC CỤ.
3.1 Đặc trưng âm thanh trong miền tần số
Thính giác con người phân biệt nguồn âm thông qua âm sắc của âm thanh phát ra.
Trong kỹ thuật nhận dạng âm thanh, âm sắc được thể hiện thơng qua phổ tín hiệu. Việc
phân tích phổ tín hiệu sẽ cho ra những đặc trưng mơ tả về phổ âm thanh, từ đó nhận dạng
được nguồn âm là gì.
Tập đặc trưng về âm sắc được sử dụng để biểu diễn các đặc trưng của âm nhạc liên
quan đến tiết tấu, âm sắc và nhạc cụ. Vectơ đặc trưng về âm sắc được sử dụng trong hệ
thống phân loại bao gồm 19 chiều với các đặc trưng: (Trung bình và độ lệch chuẩn của
Spectral Centroid, Rolloff, Flux, ZeroCrossing, LowEnergy, và Trung bình và độ lệch
chuẩn của 5 hệ số MFCC đầu tiên). Trung bình và độ lệch chuẩn của các đặc trưng này
được xác định dựa trên STFT với các cửa sổ phân tích chia tín hiệu đầu vào có độ dài 1s
9
thành các đoạn nhỏ khoảng 20ms. Sau đây là các đặc trưng được xác định trên mỗi cửa sổ
phân tích:
a) Spectral Centroid
Spectral Centroid là một độ đo liên quan hình dáng của phổ tần số. Nó xác định
điểm cân bằng của phổ tần số. Giá trị Centroid cao tương ứng với phổ có độ sáng chói
hơn và chứa nhiều tần số cao. Spectral Centroid được xác định bởi công thức
Trong đó: Mt [n] là biên độ của tần số thứ n trong phổ tần số tương ứng với cửa sổ t.
b) Rolloff
Rolloff cũng là một độ đo liên quan hình dáng của phổ tần số. Điểm Rolloff của phổ
tần số (Rt) được định nghĩa như tần số biên mà ở đó 85% phân bố năng lượng được tập
trung trong phổ là dưới điểm này. Công thức dưới đây xác định Rt - điểm Rolloff của phổ
tần số.
c) Spectral spread
Spread mô tả độ lệch trung bình của bản đồ tỷ lệ xung quanh tâm của nó, thường
liên quan đến băng thơng của tín hiệu. Các tín hiệu giống như nhiễu thường có sự lan
truyền phổ lớn, trong khi các âm thanh riêng lẻ với các đỉnh bị cô lập sẽ dẫn đến sự lan
truyền phổ thấp. Tương tự như trọng tâm, trải phổ được chuẩn hóa theo tần số trung tâm
bản đồ tỷ lệ cao nhất, sao cho giá trị tính năng nằm trong khoảng từ 0 đến 1. Spectral
spread được mô tả qua công thức:
10
Trong đó, fk là tần số thứ k
X(k) biên độ của tần số tại k
sc là Spetral centroid
d) Decrease
Decrease mô tả độ dốc phổ trung bình của phổ, nhấn mạnh hơn vào các tần số thấp.
e) Flatness
Flatness phản ánh tính chất phẳng của phổ. Có thể được sử dụng để phân biệt giữa
tín hiệu nhiễu và họa âm.
f) Noiseness
Noiseness là thơng số độc đáo và được tính bằng tỷ lệ năng lượng quang phổ trong
vùng tần số cao và tổng năng lượng quang phổ, theo công thức đơn giản:
g) Entropy
Spetral entropy (SE) của tín hiệu là thước đo phân bố cơng suất phổ của nó. SE coi
phân phối cơng suất chuẩn hóa của tín hiệu trong miền tần số là phân phối xác suất và
tính tốn entropy của Shannon. Entropy Shannon trong bối cảnh này là entropy phổ của
tín hiệu.
Các phương trình cho entropy phổ phát sinh từ các phương trình cho phổ cơng suất
và phân phối xác suất cho tín hiệu. Đối với tín hiệu x (n), phổ cơng suất là S (m) = | X (m)
| 2, trong đó X (m) là biến đổi Fourier rời rạc của x (n). Phân phối xác suất P (m) là:
11
Spetral entropy H:
Chuẩn hóa
h) Cao độ (pitch)
Cao độ (pitch) là đại lượng tỉ lệ nghịch với tần số cơ bản của tín hiệu audio và liên
quan đến đặc trưng về cảm thụ âm thanh của con người. Có nhiều cách để trích rút ra cao
độ, được chia thành 2 nhóm chính
+ Trích rút theo miền thời gian
+ Trích rút theo miền tần số
3.2 Đặc trưng âm thanh trong miền thời gian
Zero Crossings cho biết mức độ ồn (noisiness) của âm thanh trong tín hiệu. Nó xuất
hiện khi các mẫu kề nhau trong tín hiệu khác dấu. Nó được xác định bởi số lần tín hiệu
audio vượt qua trục zero trên một đơn vị thời gian và được tính bởi cơng thức
x[n] là tín hiệu trong miền thời gian đối với cửa sổ t.
4. CHƯƠNG TRÌNH NHẬN DẠNG NHẠC CỤ
Trong bài tập này, chúng em đã lựa chọn ngôn ngữ lập trình C# để lập trình chương
trình nhận dạng nhạc cụ. Sử dụng thư viện hỗ trợ xử lý âm thanh NWaves tại địa chỉ
12
4.1 Thu thập dữ liệu huấn luyện.
Theo yêu cầu đề bài, chúng em đã thu thập 100 mẫu âm thanh của 4 nhạc cụ gồm
Guitar, Flute, Violin, Piano. Mỗi nhạc cụ có 25 file âm thanh dưới định dạng wav, thời
lượng 10 giây.
13
4.2 Trích rút đặc trưng âm thanh.
Một file .wav thơng thường có 2 kênh tính hiệu (stereo) hoặc 1 kênh tín hiệu(mono).
Chúng em chọn kênh tín hiệu thứ nhất (qui ước là kênh tính hiệu trái).
Đoạn code dùng để đọc file wav
Biến waveFile chứa các thông tin như bit-rate, sampling-rate. Biến signal chứa một mảng
sample của âm thanh. Dưới đây là mảng các sample của file âm thanh.
14
Dùng fft để biến đổi tín hiệu từ miền thời gian sang miền tần số.
15
Kết quả sau khi biến đổi
Trích rút đặc trưng:
Centroid: centroid = Spectral.Centroid(spectrum, frequencies);
Spread: spread = Spectral.Spread(spectrum, frequencies);
Flatness: flatness = Spectral.Flatness(spectrum);
Noiseless: noiseness = Spectral.Noiseness(spectrum, frequencies);
Rolloff: rolloff = Spectral.Rolloff(spectrum, frequencies);
Decrease: decrease = Spectral.Decrease(spectrum);
Entropy: entropy = Spectral.Entropy(spectrum);
Pitch: pitch = Pitch.FromSpectralPeaks(spectrum, signal.SamplingRate, 80, 500 /*Hz*/);
16
Zero crossing rate:
Sau khi trích rút đặc trưng, ta lưu các đặc trưng này vào một file text. Mỗi loại nhạc cụ
một file.
17
4.3 Truy vấn nhận dạng âm thanh
Kỹ thuật nhận dạng âm thanh được sử dụng dựa trên kỹ thuật K-means.
Do tập dữ liệu huấn luyện đầu vào đã biết là gồm 4 loại (4 nhạc cụ) nên ta phân thành 4
cụm. Trích rút đặc trưng của dữ liệu mẫu sau đó tính tốn giá trị trung bình của cụm đó.
Ta thu được 4 vector đặc trưng của 4 giá trị trung bình.
Các bước truy vấn nhận dạng âm thanh:
B1. Trích rút đặc trưng của file âm thanh.
B2. Tính tốn khoảng cách giữa câu truy vấn với 4 giá trị mean đã tính trước đó.
18
B3. Lấy ra giá trị khoản cách nhỏ nhất rồi đưa ra kết quả.
19
Dưới đây là một demo của chương trình.
20
21
5. ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC.
Chương trình nhận dạng âm thanh chạy đúng với độ chính xác tương đối cao đối với
bộ test biết trước là đã có trong cơ sở dữ liệu huấn luyện. Nhưng sẽ nhận dạng sai đối với
nhạc cụ chưa được huấn luyện.
Dữ liệu huấn luyện thu thập chưa được phong phú về chủng loại.
Các đặc trưng trích rút chỉ là một phần nhỏ trong số các đặc trưng có thể sử dụng để
nhận dạng âm thanh nói chung và nhận dạng nhạc cụ nói riêng.
22