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

Nhận diện từ khóa sử dụng vi điều khiển

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 (2.34 MB, 88 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

NHẬN DIỆN TỪ KHÓA
SỬ DỤNG VI ĐIỀU KHIỂN
NGÀNH: KỸ THUẬT MÁY TÍNH

HỘI ĐỒNG : KỸ THUẬT MÁY TÍNH
GVHD

: NGUYỄN TRẦN HỮU NGUYÊN

GVPB

: PHẠM HOÀNG ANH

SVTH

: ĐỖ XUÂN THƠ (1713365)
NGUYỄN PHƯỚC SANG (1712938)

TP. HỒ CHÍ MINH, THÁNG 02 NĂM 2022


ĐẠI HỌC QUỐC GIA TP.HCM
---------TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA:KH & KT Máy tính ____
BỘ MƠN: KTMT____________



CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN ÁN TỐT NGHIỆP
Chú ý: Sinh viên phải dán tờ này vào trang nhất của bản thuyết trình

HỌ VÀ TÊN: Nguyễn Phước Sang ____________________ MSSV: 1712938________
HỌ VÀ TÊN: Đỗ Xuân Thơ __________________________ MSSV: 1713365________
NGÀNH: KỸ THUẬT MÁY TÍNH ______________ LỚP: ______________________
1. Đầu đề luận án:

Nhận diện từ khóa sử dụng vi điều khiển (Keyword spotting on Microcontrollers) ________

___________________________________________________________________________
2. Nhiệm vụ (yêu cầu về nội dung và số liệu ban đầu):
Hiện thực hệ thống nhận diện từ khóa sử dụng vi điều khiển bao gồm:
- Lấy dữ liệu từ cảm biến âm thanh
- Lọc nhiễu từ dữ liệu nhận được
- Tìm hiểu giải thuật neural network để hiện thực trên vi điều khiển
- Huấn luyện mộ hình _________________________________________________________
3. Ngày giao nhiệm vụ luận án:
4. Ngày hoàn thành nhiệm vụ:
5. Họ tên giảng viên hướng dẫn:
Phần hướng dẫn:
1) TS. Nguyễn Trần Hữu Nguyên ________________________________________________
2) __________________________________________________________________________
3) __________________________________________________________________________
Nội dung và yêu cầu LVTN đã được thông qua Bộ môn.
Ngày ........ tháng ......... năm ..........

CHỦ NHIỆM BỘ MƠN

GIẢNG VIÊN HƯỚNG DẪN CHÍNH

(Ký và ghi rõ họ tên)

(Ký và ghi rõ họ tên)

PHẦN DÀNH CHO KHOA, BỘ MÔN:
Người duyệt (chấm sơ bộ):______________________
Đơn vị: ____________________________________
Ngày bảo vệ:________________________________
Điểm tổng kết: ______________________________
Nơi lưu trữ luận án: ___________________________


TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KH & KT MÁY TÍNH

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
---------------------------Ngày 25 tháng 2 năm 2022

PHIẾU CHẤM BẢO VỆ LVTN
(Dành cho người hướng dẫn/phản biện)
1. Họ và tên SV:
Nguyễn Phước Sang
MSSV: 1712938
Đỗ Xuân Thơ
MSSV: 1713365


Ngành (chuyên ngành): Kỹ Thuật Máy Tính
Ngành (chuyên ngành): Kỹ Thuật Máy Tính

2. Đề tài: Nhận diện từ khóa sử dụng vi điều khiển (Keyword spotting on Microcontrollers)
3. Họ tên người hướng dẫn/phản biện: Nguyễn Trần Hữu Nguyên
4. Tổng quát về bản thuyết minh:
Số trang:
Số chương:
Số bảng số liệu
Số hình vẽ:
Số tài liệu tham khảo:
Phần mềm tính tốn:
Hiện vật (sản phẩm)
5. Tổng qt về các bản vẽ:
- Số bản vẽ:
Bản A1:
Bản A2:
Khổ khác:
- Số bản vẽ vẽ tay
Số bản vẽ trên máy tính:
6. Những ưu điểm chính của LVTN:
Nhóm sinh viên đã hiện thực được cơ bản một hệ thống nhận diện được từ khóa sử dụng vi điều
khiển bao gồm:
- Tìm hiểu sử dụng MEMS microphone để lấy được tín hiệu âm thanh, và sử dụng chip để lọc
nhiễu âm thanh.
- Tìm hiểu các giải thuật neuron network để hiện thực việc nhận diện từ khóa bao gồm thu thập
dữ liệu, huấn luyện mô hình và chuyển đổi mô hình sang định dạng vi điều khiển có thể đọc được.
- Hiện thực chương trình vi điều khiển để đọc dữ liệu từ microphone và suy luận ra từ khóa
được đọc.

Nhóm sinh viên cũng đã thiết kế thí nghiệm và tạo ra kết quả là một hệ thống có thể nhận dạng
được từ khóa đơn.
7. Những thiếu sót chính của LVTN:
- Đề tài vẫn chưa tập trung nhiều vào việc lọc nhiễu. Chưa thử nghiệm được với việc nói từ khóa ở
khoảng cách khác nhau, cũng như nếu như từ khóa là từ kép thì độ chính xác không cao.
8. Đề nghị: Được bảo vệ 
Bổ sung thêm để bảo vệ 
Không được bảo vệ 
9. 3 câu hỏi SV phải trả lời trước Hội đồng:
a. Cách làm hiện tại cứ 1 giây mới lấy mẫu một lần, sẽ dễ nhận diện bị sót. Nhóm sinh viên có thể
đề xuất cách nào để cải thiện việc nhận diện từ khóa hay không?
b. Hầu hết các hệ thống sử dụng neuron network đều cần phải cải tiến liên tục để tăng độ chính xác,
nhóm sinh viên có thể đề xuất cách nào để hỗ trợ việc cải tiến liên tục được dễ dàng hơn không?
10. Đánh giá chung (bằng chữ: giỏi, khá, TB): Khá giỏi

Điểm :

8.5/10

Ký tên (ghi rõ họ tên)

Nguyễn Trần Hữu Nguyên



Lời cam đoan
Nhóm cam đoan mọi điều được ghi trong báo cáo, cũng như mã nguồn là do nhóm tự
thực hiện - trừ các kiến thức tham khảo có trích dẫn cũng như mã nguồn mẫu do chính
nhà sản xuất cung cấp, hồn tồn khơng sao chép từ bất cứ nguồn nào khác. Nếu lời cam
đoan trái với sự thật, nhóm xin chịu mọi trách nhiệm trước Khoa và Nhà trường.


Đỗ Xuân Thơ & Nguyễn Phước Sang
Ngày 14 tháng 02 năm 2022

i


Lời cảm ơn
Sau khoảng thời gian theo học tại trường Đại học Bách khoa TP. Hồ Chí Minh, khoa
Khoa học Kĩ thuật Máy tính, đã đến lúc chúng em áp dụng tất cả những kiến thức đã
học để thực hiện luận văn tốt nghiệp, đề tài cuối cùng mang tính quyết định kết quả học
tập và quá trình tốt nghiệp.
Để có thể hồn thiện cuốn luận văn này, thật sự không thể chỉ dựa vào khả năng của
chúng em, mà còn phải nhờ đến sự hỗ trợ, giúp đỡ của nhiều người khác. Vậy nên, trong
cuốn luận văn này, chúng em xin gửi lời cảm ơn chân thành nhất tới thầy Nguyễn Trần
Hữu Nguyên. Trước hết, thầy đã đồng ý nhận lời hướng dẫn luận văn cho chúng em.
Trong khoảng thời gian hơn một năm vừa qua, thầy đã bỏ nhiều thời gian và cơng sức,
tận tình hướng dẫn từng bước để chúng em thực hiện bản demo cũng như cuốn luận văn
này. Bên cạnh đó, những lời khuyên răn, nhắc nhở, động viên của thầy đã giúp cho quá
trình thực hiện luận văn của chúng em được suôn sẻ và thuận lợi hơn rất nhiều. Những
câu chuyện, những kinh nghiệm cuộc sống mà thầy đã chia sẻ cũng sẽ là những kiến thức
hết sức bổ ích cho quãng đường chơng gai phía trước của chúng em. Sau hết, chúng em
xin chân thành cảm ơn thầy và chúng em cũng xin kính chúc thầy và gia đình dồi dào
sức khoẻ, niềm vui và thành cơng.
Chúng con xin hết lịng cảm ơn ba mẹ, là những người đã ln đứng phía sau hỗ trợ hết
mình, cả vật chất lẫn tinh thần, để chúng con có được kết quả như ngày hơm nay. Trong
suốt khoảng thời gian vừa qua, chúng con đã gặp nhiều khó khăn, trắc trở. Tuy nhiên, ba
mẹ đã luôn ở bên động viên và giúp đỡ chúng con vượt qua những khó khăn đó. Chúng
con cũng xin cảm ơn những người thân u trong gia đình, đã ln quan tâm đến chúng
con trong giai đoạn mà chúng con chập chững bước vào đời. Bên cạnh đó, chúng em xin

chân thành cảm ơn quý anh chị em, bạn bè đã đồng hành và giúp đỡ chúng em trong
suốt khoảng thời gian vừa qua.
Chúng em cũng xin cảm ơn quý nhà trường đã tạo điều kiện thuận lợi nhất cho chúng
em học tập và rèn luyện trong suốt thời gian theo học tại trường. Đồng thời, chúng em
cũng cũng xin cảm ơn quý thầy cô đã truyền đạt lại những kiến thức cần thiết và bổ ích
cho chúng em.
Trong quá trình thực hiện đề tài, chúng em đã cố gắng hết sức để tránh các sai sót, nhưng
nếu có phát hiện thì mong q thầy cơ góp ý để em càng hoàn thiện đề tài hơn. Cuối
cùng, chúng em xin gửi lời chúc sức khỏe và cảm ơn chân thành nhất tới tất cả mọi người.

ii


Tóm tắt

Trong những năm gần đây, khái niệm Cách mạng Công nghiệp 4.0 được nhắc đến nhiều
trên truyền thông và mạng xã hội. Cùng với đó là những hứa hẹn về cuộc đổi đời của
các doanh nghiệp tại Việt Nam nếu đón được làn sóng này. Cách mạng cơng nghiệp 4.0
sẽ diễn ra trên 3 lĩnh vực chính gồm: Cơng nghệ sinh học, Kỹ thuật số và Vật lý. Những
yếu tố cốt lõi của Kỹ thuật số sẽ là: Trí tuệ nhân tạo (AI), Vạn vật kết nối - Internet of
Things (IoT). Trong đó IoT sẽ đảm nhiệm việc kết nối, thu nhập thông tin từ các thiết
bị và vật dụng còn AI sẽ đảm nhiệm việc xử lý chúng.
Hiện nay có rất nhiều doanh nghiệp tham gia vào phát triển các hệ thống IoT kết hợp
với AI , các dự án luôn bám sát với các ứng dụng thực tế: Nhận diện khn mặt , nhận
diện giọng nói , chữ kí điện tử ,... Đã có rất nhiều doanh nghiệp lớn trên thế giới đã có
những thành cơng trong các lĩnh vực nghiên cứu trên như Google, Apple, Microsoft,...
Trong đề tài này, nhóm sẽ thảo luận, nghiên cứu và hiện thực chủ đề Nhận diện từ
khóa sử dụng Vi điều khiển. Vi điều khiển đã xuất hiện từ rất lâu, nó được ứng dụng
trong hầu hết các thiết bị điện tử mà ta dùng hằng ngày. Việc ứng dụng AI chạy trên các
thiết bị Vi điều khiển là chủ đề được bàn luận qua nhiều năm, với những ưu điểm của

mình, các thiết bị vi điều khiển được mong đợi sẽ giải quyết được các vấn đề ở hiện tại.
Hiện nay có rất nhiều các thiêt bị vi điều khiển từ nhiều nhà cung cấp khác nhau đáp
ứng được nhu cầu trên. Một trong số chúng phải kể đến là STM32F746NG Discovery kit
đến từ nhà sản xuất STMicroelectronic, với nhiều tính năng trên board cũng như hệ sinh
thái mà STM cung cấp, thì ta có thể dễ dàng xây dựng một ứng dụng giải quyết được
các vấn đề trên.

iii


Mục lục
Lời cam đoan

i

Lời cảm ơn

ii

Tóm tắt

iii

Danh mục hình ảnh

vii

Danh mục từ viết tắt

x


1 Giới thiệu

1

1.1

Tại sao lại là "Nhận diện từ khoá"? . . . . . . . . . . . . . . . . . . . . . .

1

1.2

Mục tiêu và giới hạn của đề tài . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3

Ý nghĩa của đề tài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3.1

Ý nghĩa thực tiễn . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3.2


Ý nghĩa khoa học . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

Cấu trúc luận văn tốt nghiệp . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.4

2 Cơ sở lý thuyết và nền tảng công nghệ
2.1

2.2

2.3

4

Âm thanh và các đặc trưng của âm thanh . . . . . . . . . . . . . . . . . .

5

2.1.1

Âm thanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5


2.1.2

Các đặc trưng vật lý của âm thanh [31] . . . . . . . . . . . . . . . .

5

2.1.3

Cách tạo ra âm thanh và thu nhận âm thanh bởi con người [29] . .

5

2.1.4

Các đặc trưng của tiếng nói [29] . . . . . . . . . . . . . . . . . . . .

6

Thiết bị thu nhận âm thanh . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2.2.1

Tổng quan về bộ thu âm thanh - Microphone . . . . . . . . . . . .

7

2.2.2


Một số loại Microphone hiện nay . . . . . . . . . . . . . . . . . . .

8

STM32F746NG Discovery Board . . . . . . . . . . . . . . . . . . . . . . .

9

2.3.1

Tổng quan [25] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3.2

Các thành phần chính [25] . . . . . . . . . . . . . . . . . . . . . . . 10
iv


2.4

2.5

2.3.3

Một số ứng dụng của vi điều khiển STM32F746 [25] . . . . . . . . . 10

2.3.4

Trình điều khiển HAL (HAL driver)[23] . . . . . . . . . . . . . . . . 11


Nhận dạng giọng nói tự động - Automatic Speech Recognition (ASR) . . . 11
2.4.1

Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.4.2

Vì sao cần thiết kế hệ thống nhận diện giọng nói? . . . . . . . . . . 11

2.4.3

Phương pháp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Về mã nguồn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.1

C++ & Standard Library . . . . . . . . . . . . . . . . . . . . . . . 12

2.5.2

Thư viện hỗ trợ lập trình

2.5.3
2.6

2.5.2.1

Board Support Package (BSP) [4][33] . . . . . . . . . . . . 13

2.5.2.2


Common Microcontroller Software Interface Standard (CMSIS)
[17] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

TensorFlow & TensorFlow Lite [26][27] . . . . . . . . . . . . . . . . 14

Các kiến thức liên quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6.1

Analog, Digital và ADC . . . . . . . . . . . . . . . . . . . . . . . . 14

2.6.2

Các chuẩn kết nối . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.6.3

2.6.4

2.7

. . . . . . . . . . . . . . . . . . . . . . . 13

2.6.2.1

Serial Audio Interface (SAI) [16] . . . . . . . . . . . . . . 16

2.6.2.2

Universal Asynchronous Receiver/Transmitter (UART) . . 16


Fourier Transform [36] . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6.3.1

Fast Fourier Transform [35] . . . . . . . . . . . . . . . . . 18

2.6.3.2

Inverse Fast Fourier Transform [12] . . . . . . . . . . . . . 19

Tín hiệu PDM và PCM [24] . . . . . . . . . . . . . . . . . . . . . . 19
2.6.4.1

PDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.6.4.2

PCM

2.6.4.3

Chuyển từ PDM sang PCM [1] . . . . . . . . . . . . . . . 20

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.7.1

Tổng quan về Neural Network . . . . . . . . . . . . . . . . . . . . . 20


2.7.2

Các mơ hình Neural Network thường dùng trong Nhận Diện Từ Khóa 23

3 Thiết kế hệ thống
3.1

28

Hệ thống phần cứng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.1

Thiết kế tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1.2

Thiết bị huấn luyện mơ hình - Laptop . . . . . . . . . . . . . . . . 29

3.1.3

Thiết bị thu âm - Microphone [24] . . . . . . . . . . . . . . . . . . . 30

3.1.4

3.1.3.1

Cảm biến digital MEMS microphone . . . . . . . . . . . . 30

3.1.3.2


Kết nối cơ bản giữa các module . . . . . . . . . . . . . . . 31

Bộ giải mã âm thanh - Audio codec . . . . . . . . . . . . . . . . . . 33
v


3.2

3.1.5

Thiết bị xử lý - MCU . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.1.6

Thiết bị xuất dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Lưu đồ hoạt động . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.1

Thiết kế tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2.2

Trích xuất đặc trưng sử dụng MFCC [28] . . . . . . . . . . . . . . . 37

3.2.3

3.2.2.1

A/D Conversion . . . . . . . . . . . . . . . . . . . . . . . 37


3.2.2.2

Pre-emphasis . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.2.2.3

Spectrogram [37] [14] . . . . . . . . . . . . . . . . . . . . . 38

Xây dựng mơ hình DS-CNN [21]

4 Hiện thực hệ thống

. . . . . . . . . . . . . . . . . . . 44
48

4.1

Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.2

Tập dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.3

Huấn luyện mơ hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.4


4.3.1

Mã nguồn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

4.3.2

Luồng hoạt động . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Vi điều khiển STM32F746NG . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.4.1

4.4.2

Mã nguồn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.4.1.1

Mbed Platform . . . . . . . . . . . . . . . . . . . . . . . . 53

4.4.1.2

BSP - DISCOF746NG . . . . . . . . . . . . . . . . . . . . 53

4.4.1.3

CMSIS_5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Luồng hoạt động . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5 Triển khai hệ thống
5.1


5.2

5.3

56

Môi trường triển khai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.1.1

Ubuntu - Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.1.2

GNU Arm Embedded Toolchain . . . . . . . . . . . . . . . . . . . . 56

Thực hiện thí nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2.1

Các thông số đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.2.2

Thu thập dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.2.3

Thí nghiệm kiểm thử mơ hình trên máy tính . . . . . . . . . . . . . 58

5.2.4


Thí nghiệm kiểm thử mơ hình trên vi điều khiển . . . . . . . . . . . 58

Các bước triển khai hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3.1

Huấn luyện mơ hình . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.3.1.1

Thu thập dữ liệu mẫu . . . . . . . . . . . . . . . . . . . . 59

5.3.1.2

Huấn luyện mơ hình . . . . . . . . . . . . . . . . . . . . . 59

5.3.1.3

Chuyển đổi tệp tflite sang tệp C-array . . . . . . . . . . . 60
vi


5.3.2

Build chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.3.3

Nạp chương trình vào board . . . . . . . . . . . . . . . . . . . . . . 62

6 Kết quả thực nghiệm

6.1

63

Thí nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.1

So sánh 02 mơ hình DNN và DS-CNN . . . . . . . . . . . . . . . . 63

6.1.2

Theo số lượng từ khoá nhận diện . . . . . . . . . . . . . . . . . . . 64

6.1.3

Nhận diện từ khoá thực tế trên vi điều khiển . . . . . . . . . . . . . 64

6.2

Huấn luyện mơ hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.3

Nhận diện từ khóa bằng mơ hình đã huấn luyện . . . . . . . . . . . . . . . 65
6.3.1

Khi ở khơng có âm thanh xung quanh . . . . . . . . . . . . . . . . 65

6.3.2


Phát âm từ "Go" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.3.3

Phát âm từ "Up" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

7 Kết luận và khuyến nghị
7.1

7.2

7.3

7.4

68

Đánh giá kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.1.1

Đối với tìm hiểu các vấn đề liên quan đến lĩnh vực nhận diện từ khóa 68

7.1.2

Đối với các cơ sở lý thuyết và nền tảng công nghệ . . . . . . . . . . 68

7.1.3

Đối với việc phân tích và thiết kế hệ thống . . . . . . . . . . . . . . 68


7.1.4

Đối với việc hiện thực hệ thống . . . . . . . . . . . . . . . . . . . . 69

Đánh giá công việc chưa thực hiện được . . . . . . . . . . . . . . . . . . . 69
7.2.1

Đối với cơ chế nhận diện từ khóa . . . . . . . . . . . . . . . . . . . 69

7.2.2

Đối với việc ứng dụng nhận diện từ khóa vào các ứng dụng IoT . . 69

7.2.3

Đối với hiệu suất của hệ thống nhận diện từ khóa hiện tại . . . . . 69

Những thuận lợi và khó khăn . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.3.1

Thuận lợi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

7.3.2

Khó khăn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Hướng phát triển tương lai . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
7.4.1

Cải thiện tốc độ nhận diện và độ chính xác . . . . . . . . . . . . . . 70


7.4.2

Ứng dụng hệ thống nhận diện từ khóa vào IoT . . . . . . . . . . . . 70

Tài liệu tham khảo

73

vii


Danh sách hình vẽ
2.1

Tiếp nhận âm thanh với các tần số khác nhau ở tai người [29] . . . . . . .

6

2.2

Nguyên lý hoạt động của microphone tụ điện.[13] . . . . . . . . . . . . . .

7

2.3

Các biến thể thiết kế của MEMS microphone dựa trên tụ điện.[7] . . . . .

9


2.4

Board STM32F746NG.[22] . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.5

Dòng dữ liệu trong mơ hình MFCC . . . . . . . . . . . . . . . . . . . . . . 12

2.6

Tín hiệu dạng Analog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.7

Tín hiệu dạng Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.8

Biến đổi ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.9

Serial Audio Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.10 Cấu trúc gói tin của UART . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.11 Biến đổi Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.12 Fast Fourier Transform


. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.13 Tín hiệu dạng PDM [24] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.14 Tín hiệu dạng PCM [24] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.15 Cấu trúc của một Nơ-ron . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.16 Mô hình mạng Neural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.17 Cấu trúc của một Nơ-ron . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.18 Nhận diện chữ viết tay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.19 Nhận diện khuôn mặt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.20 Nhận diện từ khóa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.21 Nhận diện văn bản . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.22 Kiến trúc mơ hình DNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.23 Kiến trúc mơ hình CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.24 Kiến trúc mô hình RNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.25 3D Convolution to 2D Convolution . . . . . . . . . . . . . . . . . . . . . . 26
2.26 So sánh performance giữa các Model [3] . . . . . . . . . . . . . . . . . . . . 27
3.1

Thiết kế tổng quan các thành phần của hệ thống . . . . . . . . . . . . . . 29

3.2

Các bộ phận chính của cảm biến [24] . . . . . . . . . . . . . . . . . . . . . 30

viii


3.3


Tín hiệu DOUT theo LR và CLK [24] . . . . . . . . . . . . . . . . . . . . . 31

3.4

Tạo data ở kênh bên phải (Right channel) [24] . . . . . . . . . . . . . . . . 31

3.5

Mẫu data ở kênh phải (Right channel) [24] . . . . . . . . . . . . . . . . . . 31

3.6

Tạo data ở kênh bên trái (Left channel) [24] . . . . . . . . . . . . . . . . . 32

3.7

Mẫu data ở kênh trái (Left channel) [24] . . . . . . . . . . . . . . . . . . . 32

3.8

Gộp dữ liệu ở 2 kênh vào chung 1 đường truyền [24] . . . . . . . . . . . . . 33

3.9

Mẫu data theo xung clock [24] . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.10 WM8994ECS/R [29] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.11 Thiết kế tổng quan cách hiện thực hệ thống . . . . . . . . . . . . . . . . . 36
3.12 Luồng hoạt động chính . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.13 Cách thức lấy frame âm thanh dùng cho biến đổi Fourier . . . . . . . . . . 38

3.14 Ví dụ về các loại window . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.15 Tác dụng các loại window . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.16 Công thức biến đổi Fourier rời rạc . . . . . . . . . . . . . . . . . . . . . . . 40
3.17 Âm thanh biểu diễn trên miền tần số . . . . . . . . . . . . . . . . . . . . . 41
3.18 Spectrogram của 4 nguyên âm . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.19 Cơ chế Mapping dùng Trianular band-pass filters . . . . . . . . . . . . . . 41
3.20 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA . . . . . . . 42
3.21 IDFT để loại bỏ thông tin về F0 . . . . . . . . . . . . . . . . . . . . . . . . 43
3.22 Mơ hình các Layer trong DS-CNN . . . . . . . . . . . . . . . . . . . . . . . 44
3.23 Thông số chi tiết từng Layer . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.24 Conv 1 Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.25 ReLu Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.26 Depthwise Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.27 Average Polling Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.28 Full Connect Layer và Softmax Function . . . . . . . . . . . . . . . . . . . 47
4.1

Tập dữ liệu Google Speech Dataset . . . . . . . . . . . . . . . . . . . . . . 50

4.2

File wav trong từng Từ Khóa . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.3

Cấu trúc mã nguồn huấn luyện mơ hình . . . . . . . . . . . . . . . . . . . 51

4.4

Luồng huấn luyện mơ hình . . . . . . . . . . . . . . . . . . . . . . . . . . . 52


4.5

Cấu trúc mã nguồn chương trình cho Vi điều khiển STM32F746NG . . . . 53

4.6

Luồng hoạt động trên Vi điều khiển STM32F746NG . . . . . . . . . . . . . 55

6.1

Slience trên Console

6.2

Kết quả từ "Go" trên Console . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.3

Kết quả của từ "Up" trên Console . . . . . . . . . . . . . . . . . . . . . . . 67

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

ix


Danh mục từ viết tắt
ADC Analog-to-Digital Converter.
AI Artificial Intelligence.
API Application Programming Interface.

ASR Audio Speech Recognition.
BSP Board Support Package.
CAN Controller Area Network.
CLK Clock.
CMSIS Common Microcontroller Software Interface Standard.
DFT Discrete Fourier Transform.
DMA Direct Memory Access.
DNN Deep Neural Network.
DS_CNN Depthwise Separable Convolutional Neural Network.
DSP Digital Signal Processing.
FPU Floating Point Unit.
GPIO General Purpose Input/Output.
GUI Graphic User Interface.
HAL Hardware Abstraction Layer.
HDMI-CEC High Definition Multimedia Interface - Consumer Electronics Control.
I2C Inter-Integrated Circuit.
IDFT Inverse Discrete Fourier Transform.
IoTs Internet of Things.
JTAG Joint Test Action Group.
LCD-TFT Liquid Crystal Display - Thin Film Transistor.
x


LPC Linear predictive coding.
MEMS Micro-Electro-Mechanical Systems.
MFCC Mel frequency cepstral coefficients.
NDTK Nhận diện từ khóa.
PCM Pulse Code Modulation.
PDM Pulse Density Modulation.
PLC Programmable Logic Controller.

PLP Perceptual Linear Prediction.
RAM Random Access Memory.
RISC Reduced Instructions Set Computer.
SAI Serial Audio Interface.
SPI Serial Peripheral Interface.
SWD Serial Wire Debugging.
UART Universal Asynchronous Receiver/Transmitter.
USB Universal Serial Bus.
VDK Vi điều khiển.
XGA Extended Graphics Array.

xi


Chương 1
Giới thiệu
1.1

Tại sao lại là "Nhận diện từ khoá"?

Từ xa xưa, tiếng nói đã trở thành một cơng cụ giao tiếp phổ biến nhất của con người.
Khác với âm thanh giao tiếp của động vật, tiếng nói của con người phát ra nhờ vào sự
điều chỉnh chuyển động của các bộ phận mơi, lưỡi. Trải qua q trình phát triển lâu dài,
tiếng nói con người từ lâu đã khơng còn được xem chỉ là để giao tiếp mà đã có nhiều
mục đích khác hơn như giải trí. Trong thời đại công nghiệp 4.0 phát triển bùng nổ như
hiện nay, tiếng nói con người cũng đã khơng cịn gói gọn trong việc giao tiếp giữa người
với người mà cịn có thể dùng để giao tiếp với những thiết bị điện tử thơng minh như
Smartphone, SmartTV,... Bên cạnh đó, việc các trợ lý ảo (Siri, Alexa,...) ngày càng hồn
thiện và thơng minh hơn thì việc giao tiếp với các thiết bị điện tử bằng tiếng nói ngày
càng dễ dàng hơn. Do đó, nhu cầu xử lý tiếng nói để các thiết bị điện tử có thể hiểu được

ngày càng tăng cao.
Với mong muốn bắt kịp với xu hướng phát triển các thiết bị thơng minh trong việc giao
tiếp bằng giọng nói, thì nhóm chúng em đã chọn đề tài "Nhận diện từ khóa sử dụng vi
điều khiển". Nhận diện từ khóa (Keyword spotting) là một thành phần quan trọng cho
việc giao tiếp thơng qua giọng nói trong các thiết bị thơng minh. Trong đề tài này, nhóm
em sử dụng vi điều khiển STM32F746NG trên board STM32F7 Discovery kit và đã:
• Học được cách lấy tín hiệu âm thanh trên vi điều khiển STM32F746
• Quyết định được cách tiếp cận đề tài.
Trong thời gian thực hiện luận văn tới đây, nhóm chúng em sẽ cố gắng thực hiện hồn
chỉnh chức năng chính của đề tài là nhận diện từ khóa. Sau đó sẽ thực hiện một số chức
năng khác giúp cho đề tài có tính ứng dụng thực tiễn cao hơn.

1


1.2

Mục tiêu và giới hạn của đề tài

Mục tiêu của đề tài này là tìm hiểu và đề xuất ra một phương pháp để xây dựng hệ thống
Nhận diện từ khóa thời gian thực. Qua đó có thể ứng dụng hệ thống như một module
để phát triển những hệ thống lớn hơn trong tương lai. Một số vấn đề cần giải quyết bao
gồm:
• Tìm hiểu cách các từ khóa được tạo ra bởi giọng nói của con người.
– Âm và âm vị.
– Đặc trưng của các từ khóa.
– Cách các từ khóa được hình thành từ nhiều âm vị khác nhau.
• Tìm hiểu cách board STM32F746NG thu và chuyển tín hiệu từ Analog sang Digital.
• Tìm hiểu các cách phân tích đặc trưng của một mẫu âm thanh ở dạng Digital.
• Tìm hiểu mơ hình DS_CNN và cách để ứng dụng nó vào việc Nhận diện từ khóa

dựa vào các đặc trưng.
• Viết báo cáo về đề tài.
Trong đề tài Nhận diện từ khóa này, có nhiều cơng việc cần thực hiện để có thể cho ra
một bộ Nhận diện từ khóa hồn chỉnh. Vì vậy, trong giới hạn thời gian cho phép, đề tài
nhóm thực hiện khơng bao gồm những nội dung sau::
• Việc tự thiết kế và hiện thực phần cứng mà sử dụng thiết bị có sẵn (STM32F746NG
discovery kit).
• Việc tự xây dựng chương trình và tập dữ liệu phục vụ cho thuật tốn học máy.
Chương trình dựa trên mã nguồn mở của ARM-Software và tập dữ liệu âm thanh
để đào tạo thuộc tập dữ liệu của Google.
• Hiện thực giải thuật lọc nhiễu đối với dữ liệu âm thanh đầu vào.
• Hiện thực một ứng dụng thực tế có tích hợp bộ Nhận diện từ khóa.

1.3
1.3.1

Ý nghĩa của đề tài
Ý nghĩa thực tiễn

Với sự hỗ trợ của hệ thống nhận diện từ khóa , người dùng sẽ có được những lợi ích sau:
• Đơn giản hóa cách thức giao tiếp giữa người dùng với hệ thống. Thay vì tương tác
qua các phím bấm thì giờ đây có tương tác với hệ thống bằng ngơn ngữ tự nhiên,
phù hợp với nhiều đối tượng người dùng như : Người già, trẻ nhỏ, người khiếm thị,...
• Tích hợp để xây dựng những hệ thống thông minh như SmartHome, SmartGarden,
... đóng vai trị như một trung tâm điều khiển chỉ với một bộ thu âm thanh.

2


1.3.2


Ý nghĩa khoa học

Xây dựng hệ thống Nhận diện từ khóa trên Vi điều khiển là cơ hội để chúng tôi tổng hợp
các kiến thức đã học về vi xử lí - vi điều khiển, xử lí tín hiệu số, trí tuệ nhân tạo và kỹ
thuật lập trình. Bên cạnh đó nó cịn giúp chúng tơi phát triển, nâng cao khả năng tự học,
tự tìm hiểu các đề tài khoa học cũng như các vấn đề nóng trong ngành hiện nay như AI,
IoTs,...
Việc nghiên cứu về vấn đề Nhận diện từ khóa cũng là một góc nhìn của nhóm, nhóm
mong rằng nó sẽ giúp ích cho những cá nhân/tổ chức muốn nghiên cứu vấn đề này.

1.4

Cấu trúc luận văn tốt nghiệp

Chương 1: Giới thiệu
Trong chương này, chúng tôi sẽ nêu ra các vấn đề liên quan đến NDTK sử dụng Vi điều
khiển bao gồm: Tại sao lại chọn chủ đề NDTK sử dụng VDK, mục tiêu, ý nghĩa thực tế
và khoa học của đề tài.
Chương 2: Cơ sở lý thuyết và nền tảng cơng nghệ
Tiếp theo, chương này sẽ trình bày những lý thuyết có liên quan hoặc được áp dụng trong
đề tài: Các thông số âm thanh, đặc trưng âm thanh của con người, một số chuẩn kết nối:
ADC, UART, SAI,... Ngồi ra, chương này cịn mơ tả một số phương pháp tiếp cận đề
tài: MFCC, DS_CNN,... sử dụng bộ thư viện của Tensorflow.
Chương 3 : Thiết kế hệ thống
Chương 3 sẽ trình bày sơ đồ kết nối của hệ thống phần cứng, thông số của từng thành
phần trong hệ thống: Microphone, Bộ giải mã âm thanh Audio Codec, MCU và thiết bị
xuất dữ liệu - Laptop. Ngoài ra chương này cịn mơ tả chi tiết luồng hoạt động của hệ
thống: MFCC, DS_CNN, ...
Chương 4 : Hiện thực hệ thống

Trong chương này, chúng tơi sẽ trình bày cấu trúc mã nguồn của hệ thống bao gồm 2
phần: Huẩn luyện mơ hình và mã nguồn chạy trên Vi điều khiển.
Chương 5 : Triển khai hệ thống
Chương 5, chúng tôi sẽ hướng dẫn cách triển khai hệ thống từ bộ mã nguồn đã cung cấp,
bao gồm: Huấn luyện mơ hình, xây dựng chương trình và nạp chương trình vào Vi điều
khiển.
Chương 6 : Kết quả thực nghiệm
Chương 6, chúng tơi trình bày kết quả thu được từ việc chạy kiểm thử trên mơ hình đã
được huấn luyện và kiểm thử trên mơ hình của Vi điều khiển. Kết quả thực nghiệm được
kiểm thử dựa trên một số yếu tố môi trường khác nhau như: Tiếng ồn và tốc độ nói, ...
Chương 7 : Kết luận và khuyến nghị
Chương 7 đánh giá kết quả đạt được so với những yêu cầu đặt ra, những hạn chế gặp
phải - đồng thời đề ra giải pháp để tối ưu hệ thống và phát triển trong tương lai.

3


Chương 2
Cơ sở lý thuyết và nền tảng công
nghệ
Trong chương này, nhóm sẽ trình bày một số kiến thức cơ bản về các nội dung lý thuyết
cũng như công nghệ nền tảng dùng trong đề tài. Nội dung chương sẽ bao gồm 7 phần
chính, bắt đầu với các khái niệm liên quan đến âm thanh, tiếng nói và các đặc trưng,
tham số của chúng (phần 2.1). Đồng thời, cách con người tạo ra và thu nhận các loại âm
thanh cũng được trình bày một cách cơ bản trong chương này. Tiếp theo, ở phần 2.2,
các kiến thức tổng quan về bộ thu âm thanh (microphone) như là khái niệm, các loại
microphone phổ biến sẽ được đưa ra. Phần 2.3 mô tả về bộ STM32F746NG discorvery
kit, bao gồm các thông tin tổng quan về thơng số cấu hình, chức năng và thành phần
chính. Bên cạnh đó, trình điều khiển HAL của thiết bị cũng được thảo luận trong phần
này. Một số thơng tin cơ bản về nhận dạng giọng nói tự động được trình bày trong phần

2.4. Phần 2.5 gồm các nội dung về ngơn ngữ lập trình C++ là ngơn ngữ lập trình chính
được nhóm sử dụng, cùng với đó là việc giới thiệu về các thư viện hỗ trợ lập trình đối
với board STM32F746NG cũng như là nền tảng hỗ trợ cho các vấn đề liên quan đến học
máy và áp dụng suy luận trên thiết bị nhúng. Phần tiếp theo (phần 2.6) là các nội dung
về mạng nơ-ron bao gồm khái niệm, kiến trúc chung, ứng dụng và các mơ hình thường
dùng. Phần cuối cùng là các kiến thức cần thiết đối với đề tài nhận diện từ khố như các
loại và mơ hình tín hiệu trong xử lý âm thanh (analog/digital, PCM/PDM), phép biến
đổi Fourier và các chuẩn kết nối có sử dụng trong đề tài.

4


2.1
2.1.1

Âm thanh và các đặc trưng của âm thanh
Âm thanh

• Khái niệm: Trong vật lý, âm thanh được định nghĩa là một loại sóng âm mang năng
lượng truyền đi trong không gian thông qua các môi trường truyền dẫn như khơng
khí, chất lỏng hoặc chất rắn. Âm thanh có các đặc trưng của sóng âm như: biên độ,
bước sóng, tần số dao động, hướng và vận tốc lan truyền.[39][40]
• Trong sinh lý học và tâm lý học con người, âm thanh là sự tiếp nhận các loại sóng
âm như vậy và được nhận thức và xử lý bởi bộ não. Tai người có thể cảm nhận
được các âm thanh ở tần số trong khoảng 20Hz - 20kHz một cách phi tuyến tính,
thơng thường tai người nhạy cảm ở tần số thấp và kém nhạy cảm ở tần số cao. [39]
• Âm thanh có vai trị đặc biệt quan trọng đối với đời sống con người. Trước hết, âm
thanh là phương tiện giao tiếp của con người cũng như của động vật. Con người sử
dụng tiếng nói, một số loại động vật như cá heo hoặc cá voi dùng siêu âm để giao
tiếp. Ngoài ra, cùng với sự phát triển của văn minh lồi người, âm thanh cịn được

sử dụng như một phương thức để giải trí, tiêu biểu là âm nhạc.
2.1.2

Các đặc trưng vật lý của âm thanh [31]

a. Tần số
• Tần số là số lần dao động của sóng âm trên một đơn vị thời gian. Trong vật
lý, tần số có đơn vị là Hertz (Hz), 1 Hz = 1 dao động/giây.
• Âm thanh là loại sóng âm có tần số nằm trong ngưỡng có thể nghe được (16Hz
- 20kHz). Ngồi âm thanh, sóng âm cịn 2 loại khác là hạ âm (những âm có
tần số dưới 16Hz) và siêu âm (âm có tần số lớn hơn 20kHz).
b. Cường độ âm I là năng lượng được sóng âm truyền qua mỗi đơn vị diện tích được
đặt vng góc với phương truyền sóng trong mỗi đơn vị thời gian. Đơn vị đo cường
độ âm là W/m2 .
c. Mức cường độ âm
• Mức cường độ âm L của âm có cường độ âm I là L = lg II0 . Với I0 là cường độ
âm chuẩn, là cường độ âm nhỏ nhất mà con người có thể nghe được ở tần số
1kHz và I0 = 10−12 (W/m2 )
• Mức cường độ âm cho biết cường độ âm I lớn hơn bao nhiêu lần so với cường
độ âm chuẩn I0 .
2.1.3

Cách tạo ra âm thanh và thu nhận âm thanh bởi con người [29]

• Tiếng nói là một dạng âm thanh đặc trưng giúp con người giao tiếp với nhau.
• Tiếng nói được tạo ra bằng cách đẩy một luồng hơi từ phổi đi qua hệ thống dây
thanh quản, giúp tạo ra một áp lực lên các dây thanh quản khiến nó mở ra, sau đó
luồng hơi thốt ra ngồi qua miệng, áp lực tạo ra bởi luồng hơi đó tác động lên các
5



dây thanh quản giảm xuống khiến nó đóng lại. Quá trình này cứ liên tục lặp lại tạo
ra các tần số sóng âm cơ bản, với nam là khoảng 125Hz, 210Hz với nữ. Cùng với đó,
các bộ phận khác như vịm họng, khoang miệng, lưỡi, mơi,... có tác dụng như một
bộ cộng hưởng có thể thay đổi linh hoạt giúp triệt tiêu một vài tần số hoặc khuếch
đại một vài tần số, từ đó phát ra tiếng nói hồn chỉnh.
• Cách hoạt động của tai người: Khi âm thanh truyền tới tai va đập vào màng nhĩ,
màng nhĩ rung lên, truyền rung động lên 3 ba xương nhỏ: malleus, incus, stapes tới
ốc tai. Ốc tai là 1 bộ phận dạng xoắn, rỗng như 1 con ốc. Ốc tai chứa các dịch nhầy
bên trong giúp truyền âm thanh, dọc theo ốc tai là các tế bào lông cảm nhận âm
thanh. Các tế bào lơng này rung lên khi có sóng truyền qua và gửi tín hiệu tới não
bộ. Các tế bào ở đoạn đầu cứng hơn, rung động với các tần số cao. Càng sâu vào
trong, các tế bào càng bớt cứng, đáp ứng các tần số thấp. Hình 2.1 dưới đây cho ta
cái nhìn rõ hơn về điều đó.

Hình 2.1: Tiếp nhận âm thanh với các tần số khác nhau ở tai người [29]
Do cấu tạo ốc tai cùng số lượng các tế bào đáp ứng tần số thấp chiếm phần lớn
khiến cho việc cảm nhận của tai người (và động vật) là phi tuyến tính, nhạy cảm ở
tần số thấp, kém nhạy cảm ở tần số cao
2.1.4

Các đặc trưng của tiếng nói [29]

• Âm tiết: Một từ có thể được ghép bởi một hoặc nhiều âm tiết. Các âm tiết lại được
tạo ra bởi một hoặc nhiều nguyên âm ghép với nhau và có thể có hoặc khơng có
phụ âm đi kèm. Theo wikipedia, trong ngữ âm học, nguyên âm hay mẫu âm là một
âm thanh trong ngôn ngữ nói, như trong tiếng Việt /a/ hay /e/, được phát âm với
thanh quản mở, do đó khơng có sự tích lũy áp suất khơng khí trên bất cứ điểm nào
ở thanh môn. Đối lập với nguyên âm, phụ âm là âm thanh của lời nói, được phát
âm rõ ràng với sự đóng hồn tồn hay một phần của thanh quản.

• Âm vị là phân đoạn nhỏ nhất của âm thanh dùng để cấu tạo nên sự phân biệt giữa
các cách phát âm. Do đó, âm vị là một nhóm các âm thanh với sự khác biệt tương
đối nhỏ cùng đảm nhận một chức năng ý nghĩa tùy theo người nói và phương ngữ.
• Âm tiết, cịn gọi là chữ, tiếng, là một đơn vị cấu tạo nên một sự phối hợp trong
tiếng nói.
6


2.2
2.2.1

Thiết bị thu nhận âm thanh
Tổng quan về bộ thu âm thanh - Microphone

• Bộ thu âm thanh - microphone là thiết bị hỗ trợ quá trình thu nhận âm thanh (sóng
âm) và chuyển tín hiệu âm thanh tương tự đó thành tín hiệu điện mà thiết bị điện
tử có thể xử lý được. Microphone được sử dụng trong nhiều ứng dụng như điện
thoại, máy trợ thính, sản xuất phim, thu âm, phát thanh và truyền hình,... [38]
• Microphone đầu tiên được cấp bằng sáng chế là của Alexander Graham Bell vào
năm 1876. Microphone này gồm một sợi dây dẫn điện một chiều. Tín hiệu âm thanh
được sinh ra và thu nhận bởi một bộ phát phần ứng chuyển động và bộ thu của
nó và có thể truyền từ cả hai hướng. Thiết bị truyền thứ hai của ông là một máy
phát chất lỏng và được trình diễn lần đầu tiên tại buổi triển lãm kỷ niệm 100 năm
Philadelphia vào năm 1876. Microphone này sử dụng nguyên tắc tiếp điểm thay đổi
để cung cấp một phương pháp điều chế tín hiệu điện hiệu quả hơn thiết kế trước
đó của ơng.[9]
• Nguyên tắc hoạt động của microphone: Tuỳ theo thành phần cấu tạo của từng
loại microphone thì sẽ có những cách thức hoạt động riêng cho từng loại, tuy nhiên
nguyên tắc chung là sóng âm sẽ tác động đến các thành phần động trong microphone,
làm cho các thành phần này dịch chuyển thay đổi vị trí so với các thành phần tĩnh

(cố định), từ đó gây ra sự thay đổi về điện áp hoặc dịng điện.
• Ví dụ về loại microphone tụ điện, loại microphone này gồm hai bản dẫn điện nằm
song song nhau, một bản được đặt cố định và một bản động.
Theo công thức: Q = SU/d (với Q là điện tích,  là hằng số điện mơi của khơng
khí, S là diện tích bản tụ, U là điện áp giữa hai bản tụ, d là khoảng cách giữa hai
bản tụ), khi có sóng âm tác động lên bản động, khoảng cách giữa hai bản dẫn này
sẽ thay đổi, từ đó sẽ làm thay đổi điện tích của tụ, tạo ra một dòng điện chạy qua
điện trở và dòng điện này chính là "hình ảnh" của sóng âm tác động lên bản tụ
điện.[13]

Hình 2.2: Nguyên lý hoạt động của microphone tụ điện.[13]
Hình 2.2 mơ tả cách một microphone dạng tụ chuyển tín hiệu âm thanh thành
tín hiệu điện. Ta có thể thấy âm thanh tác động một áp lực lên bản động của
microphone, làm cho khoảng cách giữa 2 bản tụ thay đổi dẫn đến việc lượng điện
tích giữa hai bản tụ cũng thay đổi. Ta lại có mối quan hệ giữa dịng điện (current)
và điện tích (electric charge) được biểu diễn bởi 2 công thức như sau: i(t) = dQ/dt
7


và dQ = C.dU (Với i(t) là giá trị dòng điện tại thời điểm t, dQ/dt là giá trị tức thời
của điện tích tại thời điểm t, C là điện dung của tụ điện, dU/dt là giá trị tức thời
của điện áp đặt vào 2 bản tụ tại thời điểm t). Từ hai cơng thức này, ta có thể hiểu,
khi lượng điện tích thay đổi theo thời gian sẽ làm cho dòng điện cũng thay đổi theo
thời gian. Cho dòng điện này chạy qua một điện trở, theo định luật Ohm, ta sẽ có
được các giá trị hiệu điện thế thay đổi theo thời gian khi có âm thanh tác động vào
bản tụ của microphone.[18][30]
2.2.2

Một số loại Microphone hiện nay


1. Dynamic microphone [13][5]:
Dynamic microphones là loại microphone sử dụng một cuộn dây có thể di chuyển
trong một từ trường khi có lực tác động bởi sóng âm để sinh ra một dịng điện chạy
trong cuộn dây, dịng điện này chính là tín hiệu âm thanh thu được. Vì cách hoạt
động này mà tín hiệu đầu ra của loại dynamic microphone thấp hơn so với tín hiệu
đầu ra của loại condenser microphone. Cũng chính vì ngun do này mà dynamic
microphone là loại tốt nhất để sử dụng trực tiếp trong môi trường nhiều tiếng ồn
xung quanh như là các chương trình ca nhạc, phòng karaoke,...
2. Condenser microphone[13][5]:
Condenser microphone là loại micro sử dụng một tấm màng chắn nhẹ được treo bởi
một tấm cố định. Sóng âm tác động một áp lực lên tấm màng làm nó di chuyển so
với tấm cố định, từ đó tạo ra sự khác biệt về dịng điện để thiết bị ghi lại được tín
hiệu âm thanh.
Loại micro này là lựa chọn tốt nhất trong việc ghi lại âm thanh giọng nói cũng như
các âm thanh tần số cao, do vậy nó rất thích hợp để sử dụng trong các phòng thu
studio, đặc biệt là đối với thu âm giọng hát cũng như các loại nhạc cụ như acoustic
ghi-ta, sáo,...
3. MEMS microphones (micro-electro-mechanical systems - hệ thống vi cơ
điện tử) [7]
• Khái niệm: MEMS microphones là những thiết bị vi mơ được tích hợp vào
các thiết bị điện tử một cách chặt chẽ. Chúng cung cấp khả năng thu nhận âm
thanh với mức độ trung thực cao. Với những công dụng như ghi lại âm thanh
hỗ trợ âm thanh nổi (stereo), khử tiếng ồn tích cực, mang tính định hướng,
nhận dạng giọng nói,... các thiết bị điện tử như điện thoại thông minh, loa
thông minh, tai nghe,v.v cần phải được tích hợp nhiều MEMS microphone.
• Phương thức hoạt động: Với nguyên lý hoạt động tương tự các loại microphone
khác là cảm nhận âm thanh dựa trên sự dịch chuyển của tấm màng linh hoạt
(flexible membrane) để tạo ra sự thay đổi về dòng điện, MEMS mỉcrophone
hoạt động bằng cách đo điện dung giữa tấm màng vi mô linh hoạt (flexible
micro-scale membrane) với tấm nền cố định phía sau. Áp lực khơng khí thay

đổi bởi sóng âm làm cho tấm màng linh hoạt dịch chuyển. Tấm nền phía sau
được đục lỗ để khơng khí có thể lưu thơng qua nó. Và khi tấm màng phía trước
dịch chuyển, điện dung giữa hai tấm sẽ thay đổi, từ đó những sự thay đổi về
dịng điện tương ứng được phân tích và lưu lại để tạo thành tín hiệu điện của
sóng âm.

8


Hình 2.3 dưới đây mơ tả ba biến thể thiết kế của bộ thu âm thanh vi cơ điện
tử dựa trên tụ điện. Hình vẽ thứ nhất (bên trái) là bộ thu âm thanh với chỉ
một tấm nền. Hình vẽ ở giữa mô tả microphone với hai tấm nền, với mỗi tấm
nằm ở hai phía của tấm màng linh hoạt. Hình cuối cùng (bên phải) là loại
microphone với tấm nền nằm ở giữa hai tấm màng linh hoạt.

Hình 2.3: Các biến thể thiết kế của MEMS microphone dựa trên tụ điện.[7]
• Một số điểm mạnh của MEMS digital microphone: Độ nhạy và chính
xác cao, kích thước nhỏ dễ dàng tích hợp lên các thiết bị nhúng, điện thoại di
động...

2.3

STM32F746NG Discovery Board

Hình 2.4: Board STM32F746NG.[22]
Hình 2.4 là hình chụp mặt trước của bộ STM32F746NG discovery kit. Và như ta thấy ở
đây, thiết bị này có tích hợp sẵn một màn hình và hai microphone nằm ở cạnh phải giúp
hỗ trợ cho việc hiển thị thông tin cũng như việc thu nhận âm thanh dành cho các ứng
dụng cần xử lý âm thanh.
9



2.3.1

Tổng quan [25]

• STM32F746NG là một thiết bị dựa trên bộ vi xử lý hiệu suất cao ARM Cortex-M7
32-bit RISC với cấu hình chính như sau: Tần số hoạt động 216MHz, 340 Kbytes
RAM, 1 Mbyte bộ nhớ flash.
• STM32F746NG có nhiều chuẩn kết nối thông dụng của một hệ thống nhúng như:
I2C, SPI, GPIO, UART, USB, ...
• Vi xử lý Cortex-M7 này hỗ trợ tập lệnh DSP giúp tăng hiệu quả cho những tác vụ
liên quan đến xử lý tín hiệu số và thực thi các thuật toán số phức.
Bộ FPU đơn trên vi xử lý này giúp tăng tốc việc phát triển phần mềm bằng cách
sử dụng các bộ công cụ phát triển "metalanguage", đồng thời giúp tránh bão hồ.
2.3.2

Các thành phần chính [25]

• Vi xử lý ARM 32-bit Cortex-M7 với FPU, hỗ trợ tập lệnh DSP.
• Bộ nhớ: 1MB bộ nhớ Flash, 340KB RAM,...
• Bộ cấp xung đồng hồ & năng lượng.
• Các cổng ngoại vi: 168 cổng GPIO có ngắt.
• Các chuẩn kết nối: 25 giao diện kết nối, bao gồm: 4xI2 C, 4xUSART, 6xSPI, 2xSAI,
2xCAN, HDMI-CEC, giao diện SDMMC, USB 2.0 (high-speed và full-speed), ethernet.
• LCD-TFT với độ phân giải XGA (1024x768 pixels).
• Bộ định thời (timer): 18 bộ định thời (gồm 2 dạng 16-bit và 32-bit).
• Trình gỡ lỗi: giao diện SWD & JTAG.
2.3.3


Một số ứng dụng của vi điều khiển STM32F746 [25]

• Thiết bị y tế.
• Các ứng dụng cơng nghiệp: PLC, máy biến tần (inverters), thiết bị ngắt mạch
(circuit breakers).
• Máy in, máy scan.
• Hệ thống cảnh báo,
• Hệ thống âm thanh gia đình
• Các ứng dụng mobile, Internet of Things (IoTs)

10


×