Tải bản đầy đủ (.pdf) (26 trang)

Tìm hiểu về nhận dạng âm thanh để xây dựng ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (886.54 KB, 26 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 1

ĐỀ TÀI : TÌM HIỂU VỀ NHẬN DẠNG ÂM THANH
ĐỂ XÂY DỰNG ỨNG DỤNG

GVHD: Ths. Mai Trọng Khang
LỚP: SE121.M11

Nhóm sinh viên thực hiện:
Trần Đặng Hồng Anh

MSSV: 19521213

Nguyễn Văn Huấn

MSSV: 19521556

Tp. Hồ Chí Minh, 24/12/2021


2


MỤC LỤC
Chương 1: GIỚI THIỆU CHUNG .................................................................................. 6
1. Thông tin nhóm ............................................................................................................ 6
2. Tổng quan đề tài ........................................................................................................... 6


1.2.1 Giới thiệu đề tài ................................................................................................... 6
1.2.2 Động lực nghiên cứu............................................................................................ 6
1.2.3 Phạm vi nghiên cứu ............................................................................................. 7
1.2.4 Nội dung nghiên cứu............................................................................................ 7
1.2.5 Cách thức nghiên cứu .......................................................................................... 7
1.2.6 Kết quả hướng tới ................................................................................................ 7
3. Công cụ sử dụng ........................................................................................................... 7
Chương 2: CƠ SỞ LÍ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN .................. 8
1. Tổng quan về Machine Learning ................................................................................. 8
2. Logistic Regression ...................................................................................................... 8
3. Neural network ............................................................................................................. 9
4. CNN – Convolutional Neural Network ..................................................................... 10
5. Fourier transform & spectrogram............................................................................... 12
6. Transformer model ..................................................................................................... 13
Chương 3: XÂY DỰNG MƠ HÌNH ............................................................................. 15
1. Nhận dạng giọng nói với mơ hình transformer .......................................................... 15
3.1.1 Dataset ............................................................................................................... 15
3.1.2 Giới thiệu mơ hình ............................................................................................. 15
3.1.3 Định nghĩa mơ hình ........................................................................................... 15
3.1.4 Kết quả ............................................................................................................... 18
2. Keyword classiffier .................................................................................................... 19
3.2.1 Dataset ............................................................................................................... 19
3.2.2 Kết quả ............................................................................................................... 22
Chương 4: TRIỂN KHAI MƠ HÌNH DƯỚI DẠNG WEB SERVICE API ............. 23
Chương 5: KẾT LUẬN .................................................................................................. 25
3


1. Nhận xét ..................................................................................................................... 25
2. Hướng phát triển ........................................................................................................ 25

DANH MỤC TÀI LIỆU THAM KHẢO ....................................................................... 25

4


DANH MỤC HÌNH ẢNH

Hình 1 Logistic regression ............................................................................................................................ 9
Hình 2 Neural network................................................................................................................................ 10
Hình 3 CNNs............................................................................................................................................... 10
Hình 4 Sliding Windows ............................................................................................................................. 11
Hình 5 Spectrogram .................................................................................................................................... 13
Hình 6 Transformer..................................................................................................................................... 14
Hình 7 Định nghĩa mơ hình Transformer.................................................................................................... 16
Hình 8 Huấn luyện model Transformer ...................................................................................................... 18
Hình 9 Kết quả kiểm tra mơ hình................................................................................................................ 19
Hình 10 Chuẩn bị data cho keyword classifier ........................................................................................... 20
Hình 11 Xử lí data cho keyword classifier.................................................................................................. 21
Hình 12 Định nghĩa model keyword classifier ........................................................................................... 22
Hình 13 Sơ đồ hệ thống của API ................................................................................................................ 23
Hình 14 Code API với flask ........................................................................................................................ 23
Hình 15 Docker container ........................................................................................................................... 24
Hình 16 Chạy API....................................................................................................................................... 24
Hình 17 Kết quả chạy API .......................................................................................................................... 24

5


CHƯƠNG 1:


GIỚI THIỆU CHUNG

1. Thơng tin nhóm
Nhóm gồm 2 thành viên.
MSSV

Họ và tên

19521213

Trần Đặng Hoàng Anh

19521056

Nguyễn Văn Huấn

2. Tổng quan đề tài
1.2.1 Giới thiệu đề tài
Trong cuộc sống hiện tại, tầm quan trọng của việc nhận dạng giọng nói là
khơng thể chối cãi, từ việc ứng dụng trong việc dạy phát âm cho đến trợ lý ảo,
IoT, Smarthome,... Trước nhu cầu vơ cùng lớn này, việc tìm hiểu, nghiên cứu và
phát triển công nghệ nhận dạng âm thanh cũng không ngừng tăng nhanh.
1.2.2 Động lực nghiên cứu
❖ Tính khoa học
Các nghiên cứu về nhận dạng tiếng nói dựa trên ba ngun tắc cơ bản:
Tín hiệu tiếng nói được biểu diễn chính xác bởi các giá trị phổ trong một
khung thời gian ngắn (short-term amplitude spectrum). Nhờ vậy ta có thể trích ra
các đặc điểm tiếng nói từ những khoảng thời gian ngắn và dùng các đặc điểm này
làm dữ liệu để nhận dạng tiếng nói.
Nội dung của tiếng nói được biểu diễn dưới dạng chữ viết, là một dãy các ký

hiệu ngữ âm. Do đó ý nghĩa của một phát âm được bảo toàn khi chúng ta phiên âm
phát âm thành dãy các ký hiệu ngữ âm.
Nhận dạng tiếng nói là một q trình nhận thức. Thơng tin về ngữ nghĩa
(semantics) và suy đốn (pragmatics) có giá trị trong q trình nhận dạng tiếng
nói, nhất là khi thơng tin về âm học là không rõ ràng.
Cách tiếp cận nhận dạng tiếng nói bằng thống kê bao gồm: sử dụng mơ hình
Markov ẩn, mạng nơ-ron, sử dụng cơ sở tri thức, v.v..
❖ Tính ứng dụng
6


Như đã đề cập ở phần giới thiệu ứng dụng của nhận dạng giọng nói nằm ở
đa lĩnh vực như công nghệ thông tin, quân sự, y tế,..
1.2.3 Phạm vi nghiên cứu
Nghiên cứu ở phạm vi cơ bản, tìm hiểu các thư viện liên quan, áp dụng thư
viện để xây dựng ứng dụng cơ bản, xây dựng bộ dữ liệu để huấn luyện và kiểm tra
mơ hình.
1.2.4 Nội dung nghiên cứu
Nghiên cứu về CNNs, Transformers, các API liên quan và thư viện Keras,
bộ data lấy từ Kagle và thu âm thủ cơng.
1.2.5 Cách thức nghiên cứu
Tự tìm hiểu tài liệu trên internet, tổ chức các buổi meeting hàng tuần để đưa
ra kết quả nghiên cứu, định hướng nghiên cứu trong tương lai.
1.2.6 Kết quả hướng tới
Hiểu được logic đằng sau các model được huấn luyện để nhận dạng giọng
nói, từ đó tìm hiểu cách triển khai các model này lên các ứng dụng thực tế.
3. Công cụ sử dụng
-

Công cụ liên lạc : Meta Messenger, Microsoft Teams

Công cụ lưu trữ : Google Drive
Công cụ thực hiện : Google collab, Visual Studio Code

7


CHƯƠNG 2:

CƠ SỞ LÍ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN

1. Tổng quan về Machine Learning
Học máy (tiếng Anh: machine learning) là một lĩnh vực của trí tuệ nhân tạo liên
quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự
động từ dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ như các máy có thể "học"
cách phân loại thư điện tử xem có phải thư rác (spam) hay khơng và tự động xếp thư
vào thư mục tương ứng. Học máy rất gần với suy diễn thống kê (statistical inference)
tuy có khác nhau về thuật ngữ.
Học máy có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu, chẩn
đốn y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khốn, phân loại
các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trị chơi và cử
động rơ-bốt (robot locomotion).
Các thuật toán học máy được phân loại theo kết quả mong muốn của thuật toán.
Các loại thuật toán thường dùng bao gồm:
-

-

-

-


Học có giám sát—trong đó, thuật tốn tạo ra một hàm ánh xạ dữ liệu vào tới kết
quả mong muốn. Một phát biểu chuẩn về một việc học có giám sát là bài tốn
phân loại: chương trình cần học (cách xấp xỉ biểu hiện của) một hàm ánh xạ một
tới một vài lớp bằng cách xem xét một số mẫu dữ liệu - kết quả của hàm đó.
Học khơng giám sát—mơ hình hóa một tập dữ liệu, khơng có sẵn các ví dụ đã
được gắn nhãn.
Học nửa giám sát—kết hợp các ví dụ có gắn nhãn và khơng gắn nhãn để sinh một
hàm hoặc một bộ phân loại thích hợp.
Học tăng cường—trong đó, thuật tốn học một chính sách hành động tùy theo các
quan sát về thế giới. Mỗi hành động đều có tác động tới mơi trường, và mơi trường
cung cấp thông tin phản hồi để hướng dẫn cho thuật tốn của q trình học.
Chuyển đổi—tương tự học có giám sát nhưng không xây dựng hàm một cách rõ
ràng. Thay vì thế, cố gắng đốn kết quả mới dựa vào các dữ liệu huấn luyện, kết
quả huấn luyện, và dữ liệu thử nghiệm có sẵn trong q trình huấn luyện.
Học cách học—trong đó thuật tốn học thiên kiến quy nạp của chính mình, dựa
theo các kinh nghiệm đã gặp.

Phân tích hiệu quả các thuật tốn học máy là một nhánh của ngành thống kê, được
biết với tên lý thuyết học điện tốn.
2. Logistic Regression
Logistic regression là một dạng mơ hình để giải quyết bài tốn phân loại nhị phân
(bài tốn phân loại có 2 lớp hay class) sử dụng hàm sigmoid là hàm kích hoạt. Đầu ra
8


của mơ hình là một giá trị trong đoạn từ 0 đến 1 biểu thị xác suất mẫu dữ liệu đưa vào
thuộc một lớp (class) là bao nhiêu.

Hình 1 Logistic regression

3. Neural network
Như tên gọi của nó thì Neural Network được lấy ý tưởng từ hệ thần kinh của con
người. Nó gồm có một nhóm các neural nhân tạo (nút) nối với nhau, và xử lý thông
tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nút. Mạng neural nhân
tạo là một hệ thống thích ứng (adaptive system) tự thay đổi cấu trúc của mình dựa trên
các thơng tin bên ngồi hay bên trong chảy qua mạng trong quá trình học.
Lợi thế lớn nhất của mạng neural nhân tạo là khả năng xấp xỉ hàm tùy ý từ quá
trình 'học' được từ các dữ liệu quan sát. Tuy nhiên, để sử dụng được chúng một cách
hiệu quả thì cần có một sự hiểu biết nhất định về cơ chế tốn học đằng sau mơ hình
này.
Neural Network gồm 3 phần chính:
-

Input Layer (Lớp đầu vào)
Hidden layers (Các lớp ẩn)
Ouput layer (Lớp đầu ra)

9


Hình 2 Neural network
4. CNN – Convolutional Neural Network
Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong
những mơ hình Deep Learning tiên tiến. Nó giúp cho chúng ta xây dựng được những
hệ thống thông minh với độ chính xác cao như hiện nay.

Hình 3 CNNs
CNN được sử dụng nhiều trong các bài toán nhận dạng các object trong ảnh. Để
tìm hiểu tại sao thuật tốn này được sử dụng rộng rãi cho việc nhận dạng (detection),
chúng ta hãy cùng tìm hiểu về thuật tốn này.

Mạng CNN sử dụng 3 ý tưởng cơ bản:

10


-

Các trường tiếp nhận cục bộ (local receptive field)
Trọng số chia sẻ (shared weights)
Tổng hợp (pooling).

Convolutional là gì?
-

Là một cửa sổ trượt (Sliding Windows) trên một ma trận như mô tả hình dưới:

Hình 4 Sliding Windows
Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh lấy
ra những thơng tin chính xác nhất mà khơng cần chọn các feature.
Trong hình ảnh ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa.
Ma trận có kích thước 5×5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng
và cột.
Convolution hay tích chập là nhân từng phần tử trong ma trận 3. Sliding Window
hay còn gọi là kernel, filter hoặc feature detect là một ma trận có kích thước nhỏ như
trong ví dụ trên là 3×3.
Convolution hay tích chập là nhân từng phần tử bên trong ma trận 3×3 với ma trận
bên trái. Kết quả được một ma trận gọi là Convoled feature được sinh ra từ việc nhận
ma trận Filter với ma trận ảnh 5×5 bên trái.

11



5. Fourier transform & spectrogram
2.5.1 Fourier transform
Biến đổi Fourier hay chuyển hóa Fourier, được đặt tên theo nhà tốn học
người Pháp Joseph Fourier, là phép biến đổi một hàm số hoặc một tín hiệu theo
miền thời gian sang miền tần số. Chẳng hạn như một bản nhạc có thể được phân
tích dựa trên tần số của nó.
2.5.2 Spectrogram

12


Spectrogram là kết quả của việc áp dụng fourier transform vào sóng của đoạn âm
thanh.

Hình 5 Spectrogram
6. Transformer model
Transformer là mơ hình deep learning sử dụng cơ chế tập trung (self-attention
mechanism). Nó được sử dụng chủ yếu trong xử lý ngơn ngữ tự nhiên (NLP) và thị
giác máy tính (CV). Tương tự RNNs, transformer được thiết kế để xử lý đầu vào dạng
chuỗi ví dụ như ngơn ngữ tự nhiên cho các bài tốn dịch máy (machine translation),
tóm tắt văn bản,... Kể từ khi ra mắt năm 2017, transformer ngày càng phổ biến cho
13


các bài tốn xử lý ngơn ngữ tự nhiên, nó dần thay thế các mơ hình RNN như LSTM,...
nhờ lợi thế về tốc độ huấn luyện cũng như dự đoán.

Hình 6 Transformer


14


CHƯƠNG 3:

XÂY DỰNG MƠ HÌNH

1. Nhận dạng giọng nói với mơ hình transformer
3.1.1 Dataset
Sử dụng LJSpeech dataset từ LibriVox project dataset link, dung lượng
tổng 2,6 GB gồm 13100 file âm thanh ngắn của một người đọc các đoạn văn từ 7
cuốn sách.
3.1.2 Giới thiệu mơ hình
Automatic speech recognition (ASR) dùng để chuyển đoạn ghi âm giọng
nói sang câu văn. ASR có thể được xem là một bài tốn sequence-to-sequence,
một đoạn ghi âm có thể được thể hiện bằng một chuỗi các vectors và câu văn như
là một chuỗi token các kí tự, các từ.
3.1.3 Định nghĩa mơ hình

15


Hình 7 Định nghĩa mô hình Transformer

16


17



Hình 8 Huấn luyện1model Transformer
3.1.4 Kết quả
Sau khi train xong model, thực hiện test trên tập test cho ra độ chính xác chưa
cao.

18


Hình 9 Kết quả kiểm tra mơ hình
Kết quả này có thể đốn trước được vì bộ data sử dụng để train chỉ có một
người đọc nên độ đa dạng khơng cao, khiến cho mơ hình này bị q khớp. Hơn
nữa, để huấn luyện mơ hình AST cần lượng lớn dữ liệu từ nhiều vùng khác nhau
(mình cần sự đa dạng chất giọng, phát âm,...).
Do sự hạn chế về mặt thời gian nên việc kiếm dữ liệu đa dạng về giới tính,
giọng, phương ngữ,... khó có thể thực hiện được nên nhóm đã quyết định xây dựng
thêm mơ hình khác là Keyword classifier.
2. Keyword classiffier
3.2.1 Dataset
Bộ data lấy từ Free Spoken Digit Dataset (FSDD) | Kaggle gồm 3000 bảng
ghi âm từ 6 người đọc, nội dung bản ghi âm là các số từ zero đến nine do từng
người đọc 50 lần mỗi số, mỗi lần là một bản ghi âm. Bên cạnh đó nhóm cịn tự thu
âm thêm mỗi chữ số 100 bản ghi âm từ 2 người đọc và thêm data cho chữ số mới
là 10.

19


Hình 10 Chuẩn bị data cho keyword classifier


20


Hình 11 Xử lí data cho keyword classifier

21


Hình 12 Định nghĩa model keyword classifier

3.2.2 Kết quả
Khi thử nghiệm mơ hình cho ra độ chính xác cao, các file test được ghi âm
mới hồn tồn.
So với mơ hình transformer được huấn luyện thì mơ hình keyword
classifier có độ chính xác vượt trội.

22


CHƯƠNG 4:

TRIỂN KHAI MƠ HÌNH DƯỚI DẠNG WEB SERVICE API

Để triển khai mơ hình machine learning trong các ứng dụng thực tế chúng ta có thể
gọi trực tiếp mơ hình hoặc là viết web API để có thể gọi trên nhiều thiết bị khác nhau có
kết nối internet. Mỗi cách sẽ có ưu và nhược điểm riêng, đối với các mơ hình Deep
Learning thì thường chi phí tính tốn sẽ cao nên sẽ cần một khoảng thời gian nhất định để
cho ra kết quả. Vì vậy các mơ hình Deep Learning không phù hợp để chạy trên các thiết
bị di động mà nó thường được triển khai trên các Cloud Service.
Chúng em đã tiến hành xây dựng API sử dụng package flask của Python vì tính đơn

giản, dễ sử dụng và triển khai trên docker.

Hình 13 Sơ đồ hệ thống của API

Hình 14 Code API với flask

API này nhận vào file âm thanh và trả về keyword tương ứng với file âm thanh đó
Demo:

23


Hình 15 Docker container

Hình 16 Chạy API

Hình 17 Kết quả chạy API

24


CHƯƠNG 5:

KẾT LUẬN

1. Nhận xét
Speech to Text là bài toán lớn nên mơ hình AST với Transformer model thể hiện
khơng được tốt trên tập dữ liệu mới hoàn toàn mà phần lớn là do sự thiếu đa dạng về dữ
liệu. Ngồi ra cịn do việc tiền xử lý dữ liệu chưa triệt để khiến các dữ liệu mới không
“sạch” như dữ liệu huấn luyện,...

Mơ hình Keyword classifier thì thực hiện khá tốt trên tập dữ liệu mới do số lớp (class)
cịn ít (11 lớp), mỗi đoạn ghi âm ngắn nên có thể tiền xử lý khá tốt.

2. Hướng phát triển
-

-

Thu thập thêm dữ liệu để huấn luyện mơ hình, từ đó triển khai xây dựng ứng dụng
đa nền tảng từ API, các ứng dụng như ứng dụng học ngoại ngữ, ứng dụng điều
khiển bằng giọng nói, tạo phụ đề tự động...
Deploy API lên cloud triển khai mọi lúc mọi nơi.

25


×