Nhận dạng giọng nói

Mở đầu

Đây là cuộc thi https://www.kaggle.com/c/tensorflow-speech-recognition-challenge. Bài toán cho dữ liệu bao gồm 65000 bản ghi. Yêu cầu nhận ra 30 từ ngắn “Yes”, “No”, “Up”, “Down”, “Left”, “Right”, “On”, “Off”, “Stop”, “Go”, “Zero”, “One”, “Two”, “Three”, “Four”, “Five”, “Six”, “Seven”, “Eight”, and “Nine”, Bed”, “Bird”, “Cat”, “Dog”, “Happy”, “House”, “Marvin”, “Sheila”, “Tree”, and “Wow”. Là một bài toán classify. Nhận dạng file ghi âm của từ gì. Mục đích của chúng ta là tạo được model deep learning, nhận dạng được các từ đơn lẻ. Nghĩ đơn giản, file ghi âm sẽ được mã hóa dưới dạng số, chắc phải có thư viện nào đó đọc file wav dưới dạng số từ đó làm đầu vào trong mô hình, và đây là bài toán classify đầu ra là 30 danh mục. Theo tìm hiểu thì mình biết được một cái gọi là MFCC, cũng tương tự như word2vec trong NLP và mô hình của mình cũng nhận dạng khá tốt. Và ta tìm hiểu tiếp xem mọi người làm thế nào. Trên kaggle có rất nhiều bài viết hay. Mình sẽ dịch https://www.kaggle.com/davids1992/speech-representation-and-data-exploration

Speech Representation

Có hai lý thuyết về sự nghe của con người là Place Theory (dựa trên tần số) và Temporal Theory(). Trong Speech Recognition, Tôi nhìn thấy hai hướng chính là Spectrogram quang phổ (frequencies - tần số) và dựa trên đặc tính MFCC(Mel-Frequency Cepstral Coefficients). Bạn hiếm khi làm việc với raw(dữ liệu thô), temporal data.

Place Theory và Temporal Theory

Place theory là một lý thuyết về sự nghe (Hearing hay auditory perception - sự nhận thức về thính giác) là sự nhận thức của chúng ta về âm thanh phụ thuộc vào các thành phần tần số cung cấp sự rung động của basilar membrane(màng đáy - thành phần ở trong tai). Theo lý thuyết này các pitch (cao độ) của âm thanh, giống như giọng nói của con người hay một tone trong âm nhạc, được xác định bởi nơi mà membrane rung động, dựa trên tần số tương ứng tới các tế bào thân kinh thính giác. Một lý thuyết thay thế là temporal theory, hay còn gọi là timing theory. Lý thuyết này được liên kết chặt chẽ với nguyên lý volley hay volley theory, một cơ chế các nhóm tế bào thần kinh có thể mã hóa các sóng âm thanh theo thời gian. Trong trường hợp này, neural firing theo thời gian sẽ nhận thức được cao độ (cao độ là một cảm giác của thính giác, trong đó người nghe có thể ấn định được những âm thanh vào các vị trí tương đối trên một thước đo chủ yếu dựa vào tần số rung.[5] Cao độ có quan hệ chặt chẽ với tần số, nhưng không phải là một mối quan hệ tương đương). Place–volley theory bao gồm cả hai cơ chế này, các cao độ thấp bởi temporal pattern và các cao độ cao bởi rate-place patterns. Place theory được tin tưởng nhiều hơn.

Visualize

Vậy chính xác chúng ta đang tìm kiếm gì? Mạng neural cần các con số đầu vào. Chúng ta không thể cho file wav vào để train được. Để biến raw data thành các con số và để dễ hình dung chúng ta hãy xem các ví dụ bên dưới.

Wave

Spectrogram (Quang phổ)

Nếu chúng ta sử dụng quang phổ như là các đầu vào của mạng neural, chúng ta phải normalize feature. (Chúng ta cần normalize qua toàn tập dữ liệu). Có một sự thật thú vị. Chúng ta có 160 features cho mỗi frame, tần số trong khoảng 0 đến 8000, nghĩa là mỗi feature tương ứng với 50Hz. Tuy nhiên tai nghe được từ 3.6Hz đến 1000-2000Hz. Có nghĩa là con người nghe được trong khoảng nhỏ hơn cái mà được trình bày trong quang phổ.

MFCC

Nếu bạn muốn biết chi tiết về MFCC hãy xem MFCC explained. Bạn sẽ nhìn thấy rằng nó mô phỏng lại các thuộc tính của thính giác con người. Bạn có thể tính toán Mel Power Spectrogram và MFCC sử dụng thư viện ví dụ librosa trong python.

Silence removal (xóa các phần im lặng)

Kết thúc