Các đặc trưng âm thanh nhịp thở

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu một số phương pháp phát hiện và phân loại nhịp thở sử dụng mạng học sâu đa nhiệm (Trang 40)

Để có thể biến đổi được tín hiệu âm thanh thành tín hiệu máy tính có thể hiểu được thì chúng ta thường sử dụng phương pháp MFCC. Về cơ bản luồng xử lý của MFCC sẽ là cắt chuỗi tín hiệu âm thanh thanh các đoạn ngắn bằng nhau (25ms) và overlap lên nhau (10ms). Rồi từ đó biến đổi, tính toán để thu được 39 đặc trưng (features). Mỗi danh sách 39 đặc trưng có tính độc lập cao, ít nhiễu, đủ nhỏ để đảm bảo tính toán, đủ thông minh để đảm bảo chất lượng cho các tính toán phân loại.

Luận văn sử dụng phương pháp trích chọn đặc trưng Mel-frequency cepstral coefficients (MFCC) để tách đặc trưng từ âm thanh nhịp thở. Trong xử lý âm thanh, mel-frequency cepstrum (MFC) là một biểu diễn của phổ năng lượng ngắn hạn của âm thanh, dựa trên biến đổi cosine tuyến tính của logarit phổ năng lượng trên thang tần số mel phi tuyến. Mel-frequency cepstral coefficients (MFCC) là các hệ số tạo thành một MFC. Để trích xuất MFCC, sau khi chia âm thanh dạng waveform thành các frame, ta biến đổi Fourier rời rạc trên từng frame đó.

Quá trình trích chọn đặc trưng từ dữ liệu âm thanh thành các hệ số Mel được thể hiện qua Hình

30

Framing

Dữ liệu âm thanh thay đổi liên tục dù trong khoảng thời gian rất nhỏ, vậy nên lượng thông tin khác nhau trong một mẫu 5 giây là vô cùng lớn. Để có thể khái quát được thông tin một cách tốt nhất, ta áp dụng phương pháp Framing.

Tại phương pháp này, âm thanh được tách thành các frame nhỏ khoảng 25- 30ms. Trong khoảng thời gian bé này, ta coi như thông tin âm thanh không thay đổi và ta có thể khái quát thông tin của nó bằng giá trị. Các frame liên tiếp thì sẽ chồng lấn lên nhau khoảng 10ms, việc này giúp chúng ta không bị mất mát thông tin bởi vì khi lấy các frame nối tiếp nhau, các thông tin ở biên rất có thể sẽ bị gián đoạn và mất đi. Trong thực nghiệm của đồ án, mỗi mẫu âm thanh dài 5 giây sẽ được tách thành các frame có độ lớn 30ms và chồng lấn lên nhau 10ms. Như vậy mỗi mẫu sẽ được tách thành 249 frame.

Pre-emphasis

Do âm thanh thu được có thể nhiều âm thanh nhiễu từ môi trường như tiếng nói, tiếng ti vi, ... Đây là công đoạn lọc nhiễu dựa vào vùng tần số. Theo thống kê thì âm hơi thở là âm thanh có vùng tần số thấp, khoảng dưới 2000Hz. Vậy nên ta sẽ loại bỏ những tạp âm có tần số lớn hơn vùng này.

Windowing

Sau khi tín hiệu đã được cắt nhỏ thành các đoạn và tiền xử lý với phương pháp lọc nhiễu ở trên, chúng ta cần làm mịn vùng giá trị cho từng frame bằng cách nhân toàn bộ giá trị dữ liệu của frame với cửa sổ Hamming. Vùng dữ liệu ở gần phía biên của frame sẽ được làm giảm nhỏ dần để thông tin được tập trung hơn ở chính giữa.

DFT

DFT - viết tắt của Discrete Fourier Transform, hay còn gọi là thuật toán biến đổi Fourier rời rạc. Nhiệm vụ của công đoạn này đó là chuyển đổi dữ liệu của mẫu âm thanh từ miền âm thanh về miền tần số.

31

Mel Filtering

Phổ tín hiệu tần số được chuyển đổi từ công đoạn trước, sẽ được đưa qua bộ lọc thang Mel. Bộ lọc thang Mel, hay còn gọi là Mel Filtering. Bộ lọc sẽ chỉ giữ lại miền tín hiệu nằm phía trong bộ lọc và loại bỏ đi tất cả những vùng giá trị bên ngoài. Dữ liệu sau khi đưa qua bộ lọc mel sẽ trở thành dữ liệu dạng phổ Mel. Ta có thể thấy so dữ liệu dạng phổ âm ở Hình 2.4, thông tin của 2 phổ được thể hiện bởi màu sắc không có nhiều sự thay đổi, dường như phổ Mel vẫn thể hiện được thông tin toàn cục so với phổ âm, tuy nhiên thì màu sắc trên ảnh phổ Mel đã mịn hơn và có độ phân giải tốt hơn ở vùng tập trung nhiều thông tin.

Hình 2-4: Dữ liệu âm thanh hơi thở biểu diễn dưới dạng phổ đặc trưng Mel

Logarithmic compression

Dữ liệu dạng vector thu được là những miền giá trị nằm trong bộ lọc được lấy logarith với mục đích mô phỏng lại sự cảm nhận độ to của âm thanh của tai người. Đồng thời việc lấy logarith cũng làm giảm độ lớn dữ liệu đi đáng kể, giảm độ phức tạp tính toán về sau.

32

DCT, viết tắt của Discrete Cosine Transformation, hay còn gọi là biến đổi cosine rời rạc. Đây là công đoạn cuối cùng trong quá trình rút trích đặc trưng MFCC. Biến đổi cosine cho phép tính toán, rút ra các hệ số tương ứng với các bậc khác nhau từ dãy dữ liệu ở công đoạn trước. Cụ thể trong bài toán này, đồ án đề xuất sẽ lấy 40 hệ số đặc trưng Mel (MFCC) để làm đặc trưng cho một frame.

Như vậy mỗi frame sau khi trích chọn đặc trưng, ta được một mảng dữ liệu có 40 phần tử. Mỗi mẫu dữ liệu có độ dài 5 giây lại bao gồm 249 frame. Như vậy sau khi trích chọn đặc trưng MFCC, dữ liệu sẽ được biến đổi thành ma trận có kích thước 40x294. Đây là phổ đặc trưng Mel - dữ liệu được xem như dạng ảnh, và có thể làm dữ liệu đưa vào mạng các mạng CNN. Ta có thể thấy dữ liệu sau khi trích chọn nhìn tổng thể vẫn chưa đầy đủ thông tin như ở phổ tần số, tuy nhiên kích thước dữ liệu đã giảm đi rất nhiều, tiết kiệm chi phí và tài nguyên tính toán.

2.3 Mô hình học sâu đa nhiệm cho phát hiện và phân loại nhịp thở

Con người tư duy theo kiểu sử dụng bộ nhớ để kết nối, ghi nhớ các sự kiện đã có trước đó, giống như việc đọc một bài báo, con người không hề đọc tới đâu ném đi tới đó mà ghi nhớ lại nó để không hề phải suy nghĩ lại từ đầu. Các mạng nơ-ron truyền thống không làm được việc giống như suy nghĩ của não người – đây chính là một khuyết điểm chính của các mạng nơ-ron này [8]. Ví dụ, để có thể hiểu về một tình tiết đang diễn ra của một bộ phim thì buộc phải xâu chuỗi các sự kiện đã có từ đầu bộ phim.

2.3.1 Mạng nơ-ron Hồi quy

Mạng nơ-ron hồi quy RNN (Recurrent Neural Network) sinh ra để giải quyết vấn đề đó. Mạng này chứa các vòng lặp bên trong cho phép thông tin có thể lưu lại được [8].

33

Hình 2-5: Một đoạn của mạng nơ-ron hồi quy

Hình vẽ 2-3 trên mô tả một đoạn của mạng nơ-ron hồi quy A với đoạn đầu vào xt và đầu ra ht. Một vòng lặp cho phép thông tin được truyền từ bước này qua bước khác của mạng nơ-ron. Mạng nơ-ron hồi quy không hề khác mạng nơ-ron truyền thống quá nhiều, điểm đáng chú ý nhất là việc trong một chuỗi mạng nơ-ron hồi quy thì đầu ra của mạng này lại là đầu vào của mạng kế tiếp. Các nút mạng vẫn nhận đầu vào giống hệt như các mạng nơ-ron đơn thuần.

Hình 2-6: Chuỗi mạng nơ-ron hồi quy

Trong những năm gần đây, việc ứng dụng RNN đã đưa ra nhiều kết quả tốt trong nhiều lĩnh vực nghiên cứu: nhận dạng giọng nói, mô hình hóa ngôn ngữ, dịch máy, mô tả ảnh… [21]. RNN có khả năng xâu chuỗi các thông tin từ trước đó để đưa ra xử lý cho bước hiện tại, tuy nhiên khi các thông tin bắt đầu ở quá xa thì vấn đề xử lý phụ thuộc xa (long-term dependencies) của RNN là không tốt. Vấn đề này đã được khám phá và nghiên cứu bởi Hochreiter (1991) và Bengio (1994) [22], trong các bài báo của mình, hai tác giả đã trình bày các lý do căn bản giải thích tại sao RNN lại xử lý không tốt đối với các phụ thuộc xa.

34

Mạng bộ nhớ ngắn hạn (Long Short Term Memory Networks), thường được gọi là LSTM – là một dạng đặc biệt của RNN. Một điều khá thú vị là LSTM lại không bị ảnh hưởng bởi vấn đề phụ thuộc xa và có khả năng học được các phụ thuộc xa.

2.3.2 Mạng nơ-ron BiLSTM

LSTM được giới thiệu bởi Hochreiter và Schmidhuber (1997) [22] sau đó đã dần được cải tiến và phổ biến rất nhiều trong nhiều bài toán khác nhau bởi tính hiệu quả của nó. LSTM cũng được thiết kế để tránh được vấn đề phụ thuộc xa (long-term dependencies). Việc nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của chúng, việc huấn luyện để nó nhớ được là không cần thiết.

Hình 2-7: Một chuỗi mạng LSTM với mỗi module bao gồm 4 tầng tương tác

Ý tưởng cốt lõi của LSTM là các trạng thái tế bào (cell state) – chính là đường chạy ngang kết nối thông suốt các module trong mạng. Giống như một băng truyền, chạy thông suốt kết nối tất cả các mắt xích trong mạng và chỉ tương tác tuyến tính chút ít. Vì vậy mà thông tin có thể truyền đi dễ dàng thông suốt mà không sợ bị thay đổi. LSTM có khả năng bỏ đi hoặc thêm thông tin cần thiết cho các trạng thái tế bào, khả năng này có được là nhờ vào các nhóm cổng (gate). Các cổng là nơi sàng lọc thông tin đi qua nó, chúng được kết hợp bởi một tầng mạng sigmoid và một phép nhân. Tầng Sigmoid sẽ cho đầu ra là một số trong khoảng [0, 1] mô tả việc có bao nhiêu thông tin được thông qua cổng. Khi đầu ra là 0 nghĩa là không có thông tin nào được qua, ngược lại nếu đầu ra là 1 nghĩa là tất cả thông tin đều được đi qua cổng.

35

Việc nhận dạng chính xác thông tin trong một đoạn dữ liệu phụ thuộc không chỉ vào các thông tin phía trước của dữ liệu đang xét mà còn cả các thông tin phía sau. Tuy nhiên, kiến trúc LSTM truyền thống với một lớp duy nhất chỉ có thể dự đoán nhãn của dữ liệu hiện tại dựa trên thông tin có được từ thời gian trước đó. Bidirectional LSTM (BiLSTM) đã được tạo ra để khắc phục điểm yếu trên. Một kiến trúc BiLSTM thường chưa hai mạng LSTM đơn được sử dụng đồng thời và độc lập để mô hình hóa chuỗi đầu vào theo hai hướng: từ trái sang phải (forward LSTM) và từ phải sang trái (backward LSTM). Chính vì những ưu điểm này của BiLSTM nên học viên đã xây dựng mô hình BiLSTM cho bài toán phát hiện và nhận dạng nhịp thở.

Hình 2-8: Mô hình mạng BiLSTM

2.3.3 Mô hình học sâu BiLSTM đa nhiệm

Nghiên cứu này tập trung vào việc xây dựng mô hình học sâu BiLSTM đa nhiệm để phát hiện được một chuỗi âm thanh có phải là nhịp thở hay không đồng thời phân loại âm thanh đó thuộc loại nhịp thở nào. Việc áp dụng mô hình học sâu BiLSTM đa nhiệm không giống như việc áp dụng các thuật toán học máy (Machine Learning) hay học sâu (Deep Learning) thông thường, các hệ thống sử dụng mô hình học sâu đa nhiệm vừa không cần phải quan tâm đến đặc trưng dữ liệu từ đó trích xuất ra các đặc trưng (Feature Extraction); vừa có thể phát hiện (detection) và phân loại (classification) nhịp thở đồng thời.

36

2.3.4 Xây dựng mô hình BiLSTM

a. Bộ thư viện hỗ trợ Học sâu Tensorflow và Keras

Trong thực nghiệm, luận văn đã sử dụng ngôn ngữ lập trình Python với bộ thư viện hỗ trợ nghiên cứu học sâu là TensorflowKeras. TensorFlow thế hệ thứ hai của hệ thống học máy của Google Brain, với một bản cài đặt tham khảo đã phát hành dưới dạng phần mềm mã nguồn mở vào ngày 9/11/2015. Keras là một library được phát triển vào năm 2015 bởi François Chollet, là một kỹ sư nghiên cứu deep learning tại google. Nó là một open source cho neural network được viết bởi ngôn ngữ python. Keras là một API bậc cao có thể sử dụng chung với các thư viện deep learning nổi tiếng như Tensorflow (được phát triển bởi Google), CNTK (được phát triển bởi Microsoft), Theano (người phát triển chính Yoshua Bengio). Keras có một số ưu điểm như:

- Dễ sử dụng, xây dựng model nhanh.

- Có thể chạy trên cả CPU và GPU.

- Hỗ trợ xây dựng CNN, RNN hoặc có thể kết hợp cả hai.

Về cơ bản thì Tensorflow sẽ là một thư viện đắc lực giúp hỗ trợ xây dựng các mô hình học sâu cũng như cài đặt một cách dễ dàng. Học viên đã sử dụng thư viện Tensorflow để xây dựng mô hình học máy phát hiện và phân loại nhịp thở từ dữ liệu đầu vào.

37

Hình 2-9: Cấu trúc bộ thư viện Keras

b. Xây dựng mô hình BiLSTM

Để xây dựng được BiLSTM Model thì có hai thành phần chính cần phải quan tâm đến là các API liên quan đến Models và API liên quan đến Layers. Trong hình 2-8 thể hiện cấu trúc của một đơn vị LSTM được sử dụng trong báo cáo. Như đã trình

38

bày ở phần trên, cấu trúc của một khối LSTM gồm 4 mạng noron tương ứng với input gate, forget gate, output gate và new candidate.

Hình 2-10: Cấu trúc một khối LSTM

Hàm kích hoạt cho input gate, forget gate, output gate là hàm hard sigmoid. Một xấp xỉ của hàm sigmoid được cho bởi công thức 2.21. Việc tính hàm hard sigmoid nhanh hơn nhiều so với hàm sigmoid do không phải thực hiện tính 𝑒−𝑥. Hàm kích hoạt cho Output Hidden State và Candidate hidden state là hàm Tanh.

ℎ𝑎𝑟𝑑_𝑠𝑖𝑔𝑚𝑜𝑖𝑑(𝑥) = {

0 𝑖𝑓 𝑥 < −2.5 1 𝑖𝑓 𝑥 > 2.5 0.2 ∗ 𝑥 + 0.5 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

(2.21) Kích thước của output hidden state là 64. Sẽ là một phần đầu vào cho các khối LSTM phía sau. Một mô hình BiLSTM sẽ là kết hợp của nhiều khối LSTM, có nghĩa là LSTM hai chiều. Ở lớp cuối, sau khi qua lớp BiLSTM, học viên đã tạo hai hàm

39

softmax với ý nghĩa thực hiện đồng thời hai nhiệm vụ: thứ 1 là phân loại nhịp thở (normal, deep, heavy, other) và thứ 2 là phát hiện nhịp thở (breath – có tiếng nhịp thở, non-breath – không có tiếng nhịp thở). Hình trạng mạng đầy đủ của mạng BiLSTM thể hiện trong hình 2-9 sau:

Hình 2-11: Kiến trúc mạng BiLSTM phát hiện tiếng nhịp thở

Hình 2-12: Hai thành phần chính tham gia xây dựng mô hình

Có nhiều phương thức khởi tạo model nhưng đơn giản hơn là sử dụng thông qua function API. Ưu điểm của phương pháp này có thể tùy biến nhiều hơn, giúp xây dựng các model phức tạp nhiều input và output. Tương tự như trong mạng CNN, dữ liệu cũng được đặt vào các hàng của một ma trận X_train rồi tiến hành chuẩn hóa sử dụng công thức 2.12 và one hot vector các nhãn.

40

Như đã phân tích ở trên mỗi một ma trận đặc trưng sẽ bao gồm 93 hàng tương ứng với số frame của bản ghi âm thanh đó, số cột tương ứng với số đặc trưng mô tả frame đó 39 đối với đặc trưng MFCC, đây cũng là kích thước đầu vào tại mỗi bước thời gian cho mạng LSTM.

Việc học trong mạng LSTM thông qua hai quá trình là lan truyền xuôi theo thời gian và lan truyền ngược theo thời gian. Do mạng phải đi lần lượt từ bước thời gian đầu tiên để tính output hidden state và cell state phục vụ quá trình tính toán cho các bước thời gian sau.

Cụ thể với kích thước mỗi batch được sử dụng trong báo cáo là 64, để tiết kiệm tính toán một ma trận có kích thước (64, đặc trưng mô tả 1 frame) tương ứng với một batch được đưa vào bước thời gian đầu tiên của mạng để tính toán ra ngay kết quả của output gate và cell state của 64 mẫu thuộc batch này. Kết quả output gate sẽ và cell state có kích thước (64, 64) sẽ được chuyển vào làm một phần đầu vào cho bước thời gian thứ hai, ngoài ra kết quả của output gate cũng được đưa thành đầu vào của lớp LSTM ở phía trên có kết nối một một với lớp LSTM ở dưới.

Tương tự như lớp LSTM ở dưới lớp LSTM ở trên cũng cho đầu ra là ma trận kích thước (64, 64). Quá trình lan truyền xuôi sẽ được thực hiện lần lượt theo thời gian. Tuy nhiên chỉ đầu ra bước thời gian cuối cùng (bước thời gian thứ 93 do dữ liệu của bài toán) của lớp trên được kết nối với 1 noron cùng hàm kích hoạt là hàm sigmoid để đưa ra xác suất tương ứng với 64 mẫu trong batch đó. Quá trình lan truyền xuôi

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu một số phương pháp phát hiện và phân loại nhịp thở sử dụng mạng học sâu đa nhiệm (Trang 40)

Tải bản đầy đủ (PDF)

(81 trang)