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

Thiết kế hệ nhúng nhận dạng tiếng việt nói

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 (3.52 MB, 134 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

---------------- * ------------------

LUẬN VĂN THẠC SĨ KHOA HỌC
Ngành: Xử lý Thông tin và Truyền thông

Đề tài:

THIẾT KẾ HỆ NHÚNG NHẬN DẠNG
TIẾNG VIỆT NÓI

LÊ BÁ VUI

Hà Nội, 2009


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

---------------- * ------------------

LUẬN VĂN THẠC SĨ KHOA HỌC
Ngành: Xử lý Thông tin và Truyền thông

Đề tài:

THIẾT KẾ HỆ NHÚNG NHẬN DẠNG
TIẾNG VIỆT NÓI
Design of embedded system for Vietnamese recognition


LÊ BÁ VUI

Người hướng dẫn khoa học: TS. TRỊNH VĂN LOAN

Hà Nội, 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

-1-

LỜI MỞ ĐẦU
Nhận dạng tiếng nói tự động hiện nay đã khơng cịn xa lạ với con người. Đã có
những hệ thống được xây dựng có sử dụng nhận dạng tiếng nói như điều khiển máy
tính bằng giọng nói, quay số điện thoại bằng giọng nói… Tuy nhiên, các hệ thống
đó đều được phát triển dựa trên nền công nghệ hiện đại với hệ thống máy tính lớn
và cơ sở dữ liệu tiếng nói khá hồn chỉnh (ngơn ngữ chủ yếu là tiếng Anh, tiếng
Pháp). Ở Việt Nam, việc nghiên cứu và phát triển hệ thống nhận dạng tiếng nói vẫn
cịn đang ở bước đầu và chủ yếu thực hiện trên máy tính và việc phát triển hệ thống
nhận dạng tiếng nói trên các hệ nhúng chưa được nghiên cứu nhiều. Với mục đích
tìm hiểu và góp phần phát triển chương trình nhận dạng tiếng nói trên hệ nhúng, tác
giả đã thực hiện đề tài “Thiết kế hệ nhúng nhận dạng tiếng Việt nói”. Đề tài này
thực hiện việc tìm hiểu và thiết kế hệ nhúng có khả năng nhận dạng từ tiếng Việt rời
rạc, số lượng từ vựng hạn chế.
Để hoàn thành được luận văn, tôi xin cảm ơn TS. TRỊNH VĂN LOAN, mặc dù rất
bận rộn nhưng đã dành thời gian hướng dẫn tận tình và cho tơi những lời khuyên rất
quý báu.

Đại học Bách khoa Hà Nội, 11/2009
Học viên thực hiện

Lê Bá Vui

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

-2-

MỤC LỤC

PHẦN I. TỔNG QUAN VỀ HỆ NHÚNG ................................................................9
1.1. Giới thiệu chung ............................................................................................9
1.2. Đặc điểm hệ nhúng ........................................................................................9
1.3. Các kiến trúc phần mềm hệ thống nhúng ....................................................12
1.4. Giới thiệu một số hệ nhúng..........................................................................15
1.4.1. DSK C6713 ...........................................................................................15
1.4.2. T-Engine ................................................................................................17
PHẦN II. TÌM HIỂU DSPIC30F6014A VÀ CODEC SI3000 ...............................21
2.1. Vi điều khiển dsPIC30F6014A ....................................................................21
2.1.1. Giới thiệu chung ....................................................................................21
2.1.2. Nhân vi điều khiển dsPIC30F6014A ....................................................22
2.2. Module DCI (Data Converter Interface)......................................................24
2.2.1. Giới thiệu chung về module DCI ..........................................................24
2.2.2. Hoạt động của khối DCI .......................................................................26
2.3. Codec Si3000 ...............................................................................................37
2.3.1. Sơ đồ chân .............................................................................................37
2.3.2. Đặc điểm của codec Si3000 ..................................................................38
2.3.3. Các thanh ghi.........................................................................................39
2.3.4. Mô tả chức năng ....................................................................................43

PHẦN III. TỔNG QUAN VỀ LÝ THUYẾT NHẬN DẠNG TIẾNG NÓI ...........48
3.1. Giới thiệu chung ..........................................................................................48
3.2. Tín hiệu tiếng nói .........................................................................................49
3.2.1. Cơ chế tạo tiếng nói ..............................................................................49
3.2.2. Biểu diễn tín hiệu tiếng nói ...................................................................51
3.3. Trích chọn tham số tiếng nói .......................................................................52
3.3.1. Phương pháp tiên đốn tuyến tính ........................................................52

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

-3-

3.3.2. Phương pháp phổ mel – tần số ..............................................................53
3.3.2.1. Cepstrum ........................................................................................54
3.3.2.2. Thang đo mel..................................................................................55
3.4. Trích chọn các tham số đặc trưng tiếng nói theo phương pháp phổ mel – tần
số .........................................................................................................................56
3.4.1. Xác định khoảng lặng ...........................................................................57
3.4.2. Lọc hiệu chỉnh .......................................................................................58
3.4.3. Phân khung ............................................................................................59
3.4.4. Lấy cửa sổ .............................................................................................60
3.4.5. Tính DFT ...............................................................................................60
3.4.6. Băng lọc tam giác ..................................................................................61
3.4.7. Biến đổi Cosine rời rạc .........................................................................62
3.4.8. Cepstral có trọng số...............................................................................62
3.5. Lượng tử hóa vector.....................................................................................62
3.5.1. Đặc điểm của lượng tử hóa vector ........................................................63

3.5.2. Xây dựng codebook ..............................................................................64
3.6. Mơ hình Markov ẩn .....................................................................................66
3.6.1. Giới thiệu chung về mơ hình Markov ẩn ..............................................66
3.6.2. Mơ hình Markov rời rạc về mặt thời gian .............................................66
3.6.3. Mơ hình Markov ẩn rời rạc về mặt thời gian ........................................67
3.6.4. Ba bài toán cơ bản của mơ hình Markov ẩn..........................................68
3.6.4.1. Bài tốn thứ nhất, đánh giá xác suất ..............................................68
3.6.4.2. Bài tốn thứ hai, tìm dãy trạng thái tối ưu .....................................70
3.6.4.3. Bài toán thứ ba, ước lượng tham số của mơ hình ..........................71
3.6.5. Những vấn đề khác trong mơ hình Markov ẩn .....................................73
3.6.5.1. Các loại mơ hình Markov ẩn ..........................................................73
3.6.5.2. Mật độ quan sát rời rạc và mật độ quan sát liên tục.......................76
3.6.5.3. Huấn luyện với nhiều dãy quan sát ................................................76
3.6.5.4. Khởi tạo các tham số ước lượng của mơ hình ...............................77

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

-4-

PHẦN IV. THIẾT KẾ HỆ THỐNG NHÚNG ........................................................78
4.1. Yêu cầu chung của hệ thống ........................................................................78
4.2. Thiết kế sơ đồ khối hệ thống nhúng ............................................................78
4.3. Thiết kế chi tiết phần cứng ..........................................................................79
4.3.1. Khối vi điều khiển dsPIC ......................................................................79
4.3.2. Khối giao tiếp Codec.............................................................................81
4.3.3. Khối giao tiếp MMC .............................................................................82
4.3.4. Khối ghép nối LCD ...............................................................................83

4.3.5. Khối ghép nối UART ............................................................................83
4.3.6. Khối cung cấp nguồn ............................................................................84
4.3.7. Khối ghép nối các nút bấm ...................................................................85
4.3.8. Khối giao tiếp Led .................................................................................86
4.3.9. Khối tạo dao động .................................................................................86
4.3.10. Khối ghép nối với kit lập trình ............................................................87
4.4. Thiết kế chi tiết phần mềm ..........................................................................87
4.4.1. Giao tiếp với Codec...............................................................................87
4.4.2. Giao tiếp với MMC ...............................................................................89
4.4.3. Giao tiếp với LCD .................................................................................90
4.4.4. Giao tiếp với nút bấm ............................................................................92
4.4.5. Giao tiếp với Led...................................................................................93
4.4.6. Giao tiếp UART ....................................................................................93
4.4.7. Mô đun trích chọn đặc trưng .................................................................94
4.4.8. Mơ đun nhận dạng.................................................................................95
4.4.9. Mô đun tạo codebook (thực hiện trên PC) ............................................97
4.4.10. Mô đun huấn luyện (thực hiện trên PC) ..............................................99
4.4.11. Một số phương pháp tối ưu chương trình .........................................100
PHẦN V. KẾT QUẢ THỬ NGHIỆM HỆ THỐNG.............................................103
PHẦN VI. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ..........................................110

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

-5-

PHỤ LỤC Bài báo dự kiến tham gia hội nghị FAIR tháng 12 năm 2009 tại Hà Nội
...............................................................................................................................111

TÀI LIỆU THAM KHẢO.....................................................................................122

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

-6-

MỤC LỤC HÌNH

Hình 1.1. Kit xử lý tín hiệu số C6713 .....................................................................15
Hình 1.2. Sơ đồ khối DSK C6713...........................................................................16
Hình 1.3. Kit T-Engine SH7760 .............................................................................19
Hình 1.4. Sơ đồ khối kit T-Engine SH7760 ............................................................20
Hình 2.1. Sơ đồ các chân của dsPIC30F6014A-30I/PF ..........................................22
Hình 2.2. Sơ đồ khối module DCI ..........................................................................26
Hình 2.3. Khung đồng bộ thời gian, chế độ đa kênh ..............................................30
Hình 2.4. Khung đồng bộ thời gian, AC-link Start của khung ...............................30
Hình 2.5. Khung giao diện I2S đồng bộ thời gian ...................................................30
Hình 2.6. Sơ đồ cấu tạo chân Si3000 ......................................................................37
Hình 2.7. Sơ đồ mơ tả chức năng của Si3000 .........................................................43
Hình 2.8. Giản đồ thời gian khi yêu cầu một khung thứ cấp ..................................45
Hình 2.9. Giản đồ thời gian của chu kỳ viết trong khung thứ cấp ..........................46
Hình 2.10. Giản đồ thời gian của chu kỳ đọc trong khung thứ cấp ........................46
Hình 2.11. Hệ thống phát clock Si3000 ..................................................................46
Hình 3.1. Sơ đồ quá trình hình thành và cảm nhận tiếng nói..................................49
Hình 3.2. Bộ máy phát âm của con người...............................................................50
Hình 3.3. Sơ đồ khối bộ máy phát âm.....................................................................50
Hình 3.4. Biểu diễn tín hiệu trong miền thời gian ..................................................51

Hình 3.5. Biểu diễn tín hiệu trong miền tần số .......................................................51
Hình 3.6. Biểu diễn Spectrogram của tín hiệu ........................................................52
Hình 3.7. Mơ hình của tuyến âm .............................................................................52
Hình 3.8. Các bước tính tốn cepstrum thực...........................................................54
Hình 3.9.Cepstrum của tín hiệu kích thích và bộ lọc tuyến âm ..............................55
Hình 3.10. Đồ thị hàm chuyển đổi giữa Hz và mel ................................................56
Hình 3.11. Sơ đồ trích chọn tham số đặc trưng tiếng nói .......................................57

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

-7-

Hình 3.12. Phân khung tín hiệu tiếng nói ...............................................................59
Hình 3.13. Sơ đồ các băng lọc tam giác ..................................................................61
Hình 3.14. Mơ hình Markov ẩn liên kết đầy đủ với 4 trạng thái ............................74
Hình 3.15. Mơ hình Markov ẩn liên kết trái-phải với 4 trạng thái..........................75
Hình 4.1. Sơ đồ khối của hệ nhúng .........................................................................78
Hình 4.2. Vi điều khiển dsPIC ................................................................................80
Hình 4.3. Giao tiếp với Codec Si3000 ....................................................................81
Hình 4.4. Giao tiếp với thẻ nhớ MMC ....................................................................82
Hình 4.5. Ghép nối với LCD ...................................................................................83
Hình 4.6. Ghép nối với máy tính thơng qua UART ................................................84
Hình 4.7. Khối cung cấp nguồn cho hệ thống .........................................................84
Hình 4.8. Giao tiếp với nút bấm ..............................................................................85
Hình 4.9. Giao tiếp với các đèn Led .......................................................................86
Hình 4.10. Khối tạo dao động .................................................................................86
Hình 4.11. Khối ghép nối với kit lập trình ..............................................................87

Hình 4.12. Sơ đồ thực hiện mơ đun nhận dạng .......................................................95
Hình 4.13. Sơ đồ thực hiện việc tạo codebook ......................................................97
Hình 4.14. Sơ đồ thực hiện module huấn luyện mơ hình .......................................99
Hình 5.1. Hệ nhúng nhận dạng tiếng Việt rời rạc .................................................103

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

-8-

MỤC LỤC BẢNG

Bảng 1.1. Các đặc tả cơ bản về T-Engine SH7760 .................................................19
Bảng 2.1. Tần số clock tương ứng với tốc độ lấy mẫu ...........................................32
Bảng 2.2. Chức năng các chân của Si3000 .............................................................38
Bảng 2.4. Các chế độ của Si3000............................................................................44
Bảng 5.1. Thử nghiệm hệ thống nhận dạng cho một người nói đã được huấn luyện.
...............................................................................................................................107
Bảng 5.2. Thử nghiệm hệ thống nhận dạng cho một người nói chưa được huấn
luyện. .....................................................................................................................108
Bảng 5.3. Thử nghiệm hệ thống nhận dạng với nhiều người nói đã được huấn
luyện. .....................................................................................................................109
Bảng 5.4. Thử nghiệm hệ thống nhận dạng với người nói chưa được huấn
luyện. .....................................................................................................................109

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009



Thiết kế hệ nhúng nhận dạng tiếng Việt nói

-9-

PHẦN I. TỔNG QUAN VỀ HỆ NHÚNG

1.1. Giới thiệu chung
Hệ thống nhúng (embedded system) được định nghĩa là một hệ thống máy tính
chuyên biệt được thiết kế để thực hiện một chức năng chuyên dụng. Hệ thống
nhúng được sử dụng trong rất nhiều lĩnh vực từ các thiết bị cao cấp như vệ tinh, tên
lửa, tàu con thoi đến các thiết bị tiêu dùng như lò vi ba, máy sấy, máy hút bụi…
Thị trường phần mềm cho hệ thống nhúng lớn hơn gấp nhiều lần so với phần mềm
của những chiếc máy tính cá nhân PC. Chẳng hạn, trong một chiếc xe hơi đời mới
có tới trên 80 chương trình xử lý cho các ứng dụng từ điều khiển, phanh, nạp nhiên
liệu, dẫn đường cho tới túi khí…Và số lượng vi xử lý trên các hệ thống hiện đại
ngày càng tăng.
Theo thống kê của BCC Research Group, đến năm 2009, tổng thị trường của các hệ
thống nhúng toàn cầu sẽ đoạt khoảng 88 tỷ USD. Trong đó phần cứng là 78 tỷ USD
và phần mềm chiếm 3,5 tỷ. Tuy nhiên tốc độ tăng trưởng của phần mầm nhúng sẽ
cao hơn và hiện tại đang ở mức 16%/năm.

1.2. Đặc điểm hệ nhúng
Hệ thống nhúng thường có một số đặc điểm chung như sau:
• Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chun dụng chứ
khơng phải đóng vai trị là các hệ thống máy tính đa chức năng. Một số hệ thống địi
hỏi ràng buộc về tính hoạt động thời gian thực để đảm bảo độ an toàn và tính ứng
dụng; một số hệ thống khơng địi hỏi hoặc ràng buộc chặt chẽ, cho phép đơn giản
hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất.
• Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ thống
phức tạp nằm trong thiết bị mà nó điều khiển.

• Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được lưu trữ
trong các chip bộ nhớ chỉ đọc (read-only memory) hoặc bộ nhớ flash chứ không
phải là trong một ổ đĩa. Phần mềm thường chạy với số tài nguyên phần cứng hạn
chế: khơng có bàn phím, màn hình hoặc có nhưng với kích thước nhỏ, bộ nhớ hạn
chế. Sau đây, ta sẽ đi sâu, xem xét cụ thể đặc điểm của các thành phần của hệ thống
nhúng.

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 10 -

Giao diện
Các hệ thống nhúng có thể khơng có giao diện (đối với những hệ thống đơn nhiệm)
hoặc có đầy đủ giao diện giao tiếp với người dùng tương tự như các hệ điều hành
trong các thiết bị để bàn. Đối với các hệ thống đơn giản, thiết bị nhúng sử dụng nút
bấm, đèn LED và hiển thị chữ cỡ nhỏ hoặc chỉ hiển thị số, thường đi kèm với một
hệ thống menu đơn giản.
Còn trong một hệ thống phức tạp hơn, một màn hình đồ họa, cảm ứng hoặc có các
nút bấm ở lề màn hình cho phép thực hiện các thao tác phức tạp mà tối thiểu hóa
được khoảng không gian cần sử dụng; ý nghĩa của các nút bấm có thể thay đổi theo
màn hình và các lựa chọn. Các hệ thống nhúng thường có một màn hình với một nút
bấm dạng cần điểu khiển (joystick button). Sự phát triển mạnh mẽ của mạng toàn
cầu đã mang đến cho những nhà thiết kế hệ nhúng một lựa chọn mới là sử dụng một
giao diện web thông qua việc kết nối mạng. Điều này có thể giúp tránh được chi phí
cho những màn hình phức tạp nhưng đồng thời vẫn cung cấp khả năng hiển thị và
nhập liệu phức tạp khi cần đến, thơng qua một máy tính khác. Điều này là hết sức
hữu dụng đối với các thiết bị điều khiển từ xa, cài đặt vĩnh viễn. Ví dụ, các router là

các thiết bị đã ứng dụng tiện ích này.

Kiến trúc CPU
Các bộ xử lý trong hệ thống nhúng có thể được chia thành hai loại: vi xử lý và vi
điều khiển. Các vi điều khiển thường có các thiết bị ngoại vi được tích hợp trên chip
nhằm giảm kích thước của hệ thống. Có rất nhiều loại kiến trúc CPU được sử dụng
trong thiết kế hệ nhúng như ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051,
Atmel AVR, Renesas H8, SH, V850, FR-V, M32R, Z80, Z8 … Điều này trái ngược
với các loại máy tính để bàn, thường bị hạn chế với một vài kiến trúc máy tính nhất
định. Các hệ thống nhúng có kích thước nhỏ và được thiết kế để hoạt động trong
môi trường công nghiệp thường lựa chọn PC/104 và PC/104++ làm nền tảng.
Những hệ thống này thường sử dụng DOS, Linux, NetBSD hoặc các hệ điều hành
nhúng thời gian thực như QNX hay VxWorks. Cịn các hệ thống nhúng có kích
thước rất lớn thường sử dụng một cấu hình thơng dụng là hệ thống on chip (System
on a chip – SoC), một bảng mạch tích hợp cho một ứng dụng cụ thể (an applicationspecific integrated circuit – ASIC). Sau đó nhân CPU được mua và thêm vào như
một phần của thiết kế chip. Một chiến lược tương tự là sử dụng FPGA (field-

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 11 -

programmable gate array) và lập trình cho nó với những thành phần nguyên lý thiết
kế bao gồm cả CPU.

Thiết bị ngoại vi
Hệ thống nhúng giao tiếp với bên ngồi thơng qua các thiết bị ngoại vi, ví dụ như:
• Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485...

• Synchronous Serial Communication Interface: I2C, JTAG, SPI, SSC và ESSI
• Universal Serial Bus (USB)
• Networks: Controller Area Network, LonWorks...
• Bộ định thời: PLL(s), Capture/Compare và Time Processing Units
• Discrete IO: General Purpose Input/Output (GPIO)

Cơng cụ phát triển
Tương tự như các sản phẩm phần mềm khác, phần mềm hệ thống nhúng cũng được
phát triển nhờ việc sử dụng các trình biên dịch (compilers), chương trình dịch hợp
ngữ (assembler) hoặc các công cụ gỡ rối (debuggers). Tuy nhiên, các nhà thiết kế hệ
thống nhúng có thể sử dụng một số cơng cụ chun dụng như:
• Bộ gỡ rối mạch hoặc các chương trình mơ phỏng (emulator)
• Tiện ích để thêm các giá trị checksum hoặc CRC vào chương trình, giúp hệ thống
nhúng có thể kiểm tra tính hợp lệ của chương trình đó.
• Đối với các hệ thống xử lý tín hiệu số, người phát triển hệ thống có thể sử dụng
phần mềm workbench như MathCad hoặc Mathematica để mơ phỏng các phép tốn.
• Các trình biên dịch và trình liên kết (linker) chuyên dụng được sử dụng để tối ưu
hóa một thiết bị phần cứng.
• Một hệ thống nhúng có thể có ngơn ngữ lập trình và cơng cụ thiết kế riêng của nó
hoặc sử dụng và cải tiến từ một ngơn ngữ đã có sẵn.
Các cơng cụ phần mềm có thể được tạo ra bởi các công ty phần mềm chuyên dụng
về hệ thống nhúng hoặc chuyển đổi từ các công cụ phát triển phần mềm GNU. Đôi

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 12 -


khi, các cơng cụ phát triển dành cho máy tính cá nhân cũng được sử dụng nếu bộ xử
lý của hệ thống nhúng đó gần giống với bộ xử lý của một máy PC thông dụng.
Độ tin cậy
Các hệ thống nhúng thường nằm trong các cỗ máy được kỳ vọng là sẽ chạy hàng
năm trời liên tục mà không bị lỗi hoặc có thể khơi phục hệ thống khi gặp lỗi. Vì thế,
các phần mềm hệ thống nhúng được phát triển và kiểm thử một cách cẩn thận hơn
là phần mềm cho máy tính cá nhân. Ngồi ra, các thiết bị rời không đáng tin cậy
như ổ đĩa, công tắc hoặc nút bấm thường bị hạn chế sử dụng. Việc khơi phục hệ
thống khi gặp lỗi có thể được thực hiện bằng cách sử dụng các kỹ thuật như
watchdog timer – nếu phần mềm không đều đặn nhận được các tín hiệu watchdog
định kì thì hệ thống sẽ bị khởi động lại.
Một số vấn đề cụ thể về độ tin cậy như:
• Hệ thống khơng thể ngừng để sửa chữa một cách an tồn, ví dụ như ở các hệ thống
không gian, hệ thống dây cáp dưới đáy biển, các đèn hiệu dẫn đường,… Giải pháp
đưa ra là chuyển sang sử dụng các hệ thống con dự trữ hoặc các phần mềm cung
cấp một phần chức năng.
• Hệ thống phải được chạy liên tục vì tính an tồn, ví dụ như các thiết bị dẫn đường
máy bay, thiết bị kiểm sốt độ an tồn trong các nhà máy hóa chất,… Giải pháp đưa
ra là lựa chọn backup hệ thống.
• Nếu hệ thống ngừng hoạt động sẽ gây tổn thất rất nhiều tiền của ví dụ như các
dịch vụ bn bán tự động, hệ thống chuyển tiền, hệ thống kiểm soát trong các nhà
máy …

1.3. Các kiến trúc phần mềm hệ thống nhúng
Một số loại kiến trúc phần mềm thông dụng trong các hệ thống nhúng như sau:
Vịng lặp kiểm sốt đơn giản
Theo thiết kế này, phần mềm được tổ chức thành một vòng lặp đơn giản. Vòng lặp
gọi đến các chương trình con, mỗi chương trình con quản lý một phần của hệ thống
phần cứng hoặc phần mềm.


Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 13 -

Hệ thống ngắt điều khiển
Các hệ thống nhúng thường được điểu khiển bằng các ngắt. Có nghĩa là các tác vụ
của hệ thống nhúng được kích hoạt bởi các loại sự kiện khác nhau. Ví dụ, một ngắt
có thể được sinh ra bởi một bộ định thời sau một chu kỳ được định nghĩa trước,
hoặc bởi sự kiện khi cổng nối tiếp nhận được một byte nào đó.
Loại kiến trúc này thường được sử dụng trong các hệ thống có bộ quản lý sự kiện
đơn giản, ngắn gọn và cần độ trễ thấp. Hệ thống này thường thực hiện một tác vụ
đơn giản trong một vịng lặp chính. Đơi khi, các tác vụ phức tạp hơn sẽ được thêm
vào một cấu trúc hàng đợi trong bộ quản lý ngắt để được vịng lặp xử lý sau đó. Lúc
này, hệ thống gần giống với kiểu nhân đa nhiệm với các tiến trình rời rạc.
Đa nhiệm tương tác
Một hệ thống đa nhiệm khơng ưu tiên cũng gần giống với kỹ thuật vịng lặp kiểm
sốt đơn giản ngoại trừ việc vịng lặp này được ẩn giấu thơng qua một giao diện lập
trình API. Các nhà lập trình định nghĩa một loạt các nhiệm vụ, mỗi nhiệm vụ chạy
trong một môi trường riêng của nó. Khi khơng cần thực hiện nhiệm vụ đó thì nó gọi
đến các tiến trình con tạm nghỉ (bằng cách gọi “pause”, “wait”, “yeild” …).
Ưu điểm và nhược điểm của loại kiến trúc này cũng giống với kiểm vòng lặp kiểm
soát đơn giản. Tuy nhiên, việc thêm một phần mềm mới được thực hiện dễ dàng
hơn bằng cách lập trình một tác vụ mới hoặc thêm vào hàng đợi thông dịch (queueinterpreter).

Đa nhiệm ưu tiên
Ở loại kiến trúc này, hệ thống thường có một đoạn mã ở mức thấp thực hiện việc
chuyển đổi giữa các tác vụ khác nhau thông qua một bộ định thời. Đoạn mã này

thường nằm ở mức mà hệ thống được coi là có một hệ điều hành và vì thế cũng gặp
phải tất cả những phức tạp trong việc quản lý đa nhiệm.
Bất kỳ tác vụ nào có thể phá hủy dữ liệu của một tác vụ khác đều cần phải được
tách biệt một cách chính xác. Việc truy cập tới các dữ liệu chia sẻ có thể được quản
lý bằng một số kỹ thuật đồng bộ hóa như hàng đợi thơng điệp (message queues),
semaphores … Vì những phức tạp nói trên nên một giải pháp thường được đưa ra
đó là sử dụng một hệ điều hành thời gian thực. Lúc đó, các nhà lập trình có thể tập

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 14 -

trung vào việc phát triển các chức năng của thiết bị chứ không cần quan tâm đến các
dịch vụ của hệ điều hành nữa.
Vi nhân (Microkernel) và nhân ngoại (Exokernel)
Khái niệm vi nhân (microkernel) là một bước tiếp cận gần hơn tới khái niệm hệ điều
hành thời gian thực. Lúc này, nhân hệ điều hành thực hiện việc cấp phát bộ nhớ và
chuyển CPU cho các luồng thực thi. Còn các tiến trình người dùng sử dụng các
chức năng chính như hệ thống file, giao diện mạng lưới,… Nói chung, kiến trúc này
thường được áp dụng trong các hệ thống mà việc chuyển đổi và giao tiếp giữa các
tác vụ là nhanh.
Còn nhân ngoại (exokernel) tiến hành giao tiếp hiệu quả bằng cách sử dụng các lời
gọi chương trình con thơng thường. Phần cứng và tồn bộ phần mềm trong hệ thống
ln đáp ứng và có thể được mở rộng bởi các ứng dụng.
Nhân khối (monolithic kernels)
Trong kiến trúc này, một nhân đầy đủ với các khả năng phức tạp được chuyển đổi
để phù hợp với môi trường nhúng. Điều này giúp các nhà lập trình có được một mơi

trường giống với hệ điều hành trong các máy để bàn như Linux hay Microsoft
Windows và vì thế rất thuận lợi cho việc phát triển. Tuy nhiên, nó lại địi hỏi đáng
kể các tài nguyên phần cứng làm tăng chi phí của hệ thống. Một số loại nhân khối
thông dụng là Embedded Linux và Windows CE. Mặc dù chi phí phần cứng tăng
lên nhưng loại hệ thống nhúng này đang tăng trưởng rất mạnh, đặc biệt là trong các
thiết bị nhúng mạnh như Wireless router hoặc hệ thống định vị GPS. Lý do của điều
này là:
• Hệ thống này có cổng để kết nối đến các chip nhúng thơng dụng
• Hệ thống cho phép sử dụng lại các đoạn mã sẵn có phổ biến như các trình điều
khiển thiết bị, Web Servers, Firewalls, …
• Việc phát triển hệ thống có thể được tiến hành với một tập nhiều loại đặc tính,
chức năng cịn sau đó lúc phân phối sản phẩm, hệ thống có thể được cấu hình để
loại bỏ một số chức năng không cần thiết. Điều này giúp tiết kiệm được những vùng
nhớ mà các chức năng đó chiếm giữ.

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 15 -

• Hệ thống có chế độ người dùng để dễ dàng chạy các ứng dụng và gỡ rối. Nhờ đó,
qui trình phát triển được thực hiện dễ dàng hơn và việc lập trình có tính linh động
hơn.
• Có nhiều hệ thống nhúng thiếu các yêu cầu chặt chẽ về tính thời gian thực của hệ
thống quản lý. Còn một hệ thống như Embedded Linux có tốc độ đủ nhanh để trả
lời cho nhiều ứng dụng. Các chức năng cần đến sự phản ứng nhanh cũng có thể
được đặt vào phần cứng.


1.4. Giới thiệu một số hệ nhúng
1.4.1. DSK C6713
DSK C6713 do hãng Spectrum Digital sản xuất. Trong đó, bộ xử lý trung tâm là
chíp xử lý tín hiệu số DSP TMS320C6713, do hãng Texas Instruments chế tạo. Nó
cho phép người sử dụng có thể thực hiện và phát triển các ứng dụng thời gian thực
với dòng DSP C67xx. DSK C6713 hỗ trợ các thành phần phần cứng chuyên dụng
cho việc xử lý tín hiệu âm thanh như codec stereo TLV320AIC23 với các đường tín
hiệu âm thanh. Ngồi các thiết bị trên kit như bộ nhớ SDRAM, bộ nhớ FLASH,
DSK C6713 cịn có khả năng giao tiếp với nhiều thiết bị khác như các hệ vi điều
khiển, các loại bộ nhớ, … Nhờ khả năng giao tiếp phong phú như vậy, người sử
dụng có thể phát triển những ứng dụng xử lý âm thanh thời gian thực ghép nối với
nhiều mạch chức năng khác nhau. Hai ứng dụng xử lý âm thanh chủ yếu là nhận
dạng và tổng hợp tiếng nói. Hình ảnh của kit DSK C6713 và các khối chức năng
được mơ tả qua hình 1.1 và hình 1.2.

Hình 1.1. Kit xử lý tín hiệu số C6713

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 16 -

Hình 1.2. Sơ đồ khối DSK C6713

DSK C6713 có những tính năng chính như sau:
• Sử dụng chip xử lý tín hiệu số dấu chấm động TMS320C6713 hoạt động ở tần
số 225MHz
• Bộ mã hố / giải mã âm thanh đa kênh TLV320AIC23

• Bộ nhớ DRAM đồng bộ 16 MB
• Bộ nhớ Flash 512KB, trong đó 256KB được sử dụng để lưu cấu hình mặc định
• Bốn đèn LED và công tắc DIP cho phép tương tác với người sử dụng
• Cấu hình hoạt động bằng phần mềm thơng qua các thanh ghi lưu trong CPLD
• Có thể tuỳ chọn cấu hình khởi động bởi các cơng tắc cấu hình
• Các khe cắm để giao tiếp với các thiết bị mở rộng
• Giả lập chuẩn JTAG và giao tiếp với máy tính thơng qua đường USB
• Nguồn cấp 5V

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 17 -

1.4.2. T-Engine
T-Engine SH7760 là một hệ vi xử lí tích hợp bộ điều khiển LCD, USB host và các
chức năng ngoại vi khác. SuperHRISC engine là một vi xử lí nền tảng 32bit
RISC. SH7760 có một CPU SH-4 mà tại mức độ đối tượng lệnh là hồn tồn tương
thích với các vi xử lí SH-1, SH-2 và SH-3. Vi xử lí này có một bộ nhớ cache lệnh,
một bộ nhớ cache tốn hạng mà có thể chuyển đổi giữa các chế độ copy-back và
write-through, bộ quản lí bộ nhớ với 64 phần tử liên kết đầy đủ được chia sẻ TLB
(Translation Look aside Buffer). Kích thước của bộ nhớ cache lệnh và bộ nhớ cache
toán hạng là 16 kbyte và 32 kbyte. Vi mạch này cũng có tính năng bộ điều khiển
trạng thái bus (Bus State Controller – BSC) mà có thể lên kết với SDRAM. Và bởi
vì nó có các chức năng on-chip như bộ điều khiển LCD, một USB host, các bộ định
giờ và các chức năng truyền tin nối tiếp yêu cầu cho các phương tiện multimedia và
OA nên vi mạch này cho phép giảm thiểu rất lớn giá thành trong hệ thống.


Đặc tả T-Engine
Các đặc tả cơ bản về T-Engine được trình bày như trong bảng 1.1.

Mục

Đặc tả

CPU

SH7760 HD6417760BP200D (RENESAS Technology)
Tần số đồng hồ cung cấp: 16.6667MHz
Tần số hoạt động (Internal): 200MHz (x 12)
(External): 66MHz (x 4)
Mạch: 256-pin BGA

Flash memory

Dung lượng: 8MB
MBM29DL640E90TN (Fujitsu) x 1

SDRAM

Dung lượng: 64MB

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 18 -


EDS2516APTA-75 (ELPIDA) x 2
Một khe
Controller: MR-SHPC-01 V2T (Marubun)
PC Card I/F
Mạch: 144pin TQFP
Serial I/F

Controller gồm 2 kênh: ST16C2550CQ48 (EXAR)
Package: 48pin TQFP

Sound

Tên model: UDA1342TS (Philips) Mạch: 28pin SSOP
Earphone/microphone:
- Một đầu ra tai nghe
- Một đầu vào micro
- Trở kháng: 2.2Kohm
Độ nhạy: -51dB/Pa
- Tai nghe ra có trở kháng: 32Ohm
1kênh

USB Host
Controller: SH7760 on-chip USB Host
TFT color
module

LCD NL2432DR22-02B (NEC)
Số màu hiển thị : 262,144 màu
Kích thước: 240(Chiều ngang) x 320 (chiều dọc)

Controller: SH7760 on-chip LCDC

Bộ điều khiển nguồn H8/3048F-ONE
cung cấp
Tên
model:

HD64F3048BVTE25

(Renesas

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói
Technology)
Tần số hoạt động: 7.3728MHz
Mạch: 100-pin TQFP
Tên model: RV5C348B (RICOH)
RTC
Mạch: 10pin SSOP-G
Màn hình cảm ứng
Tên Model: ADS7843 (TI) Package: 16pin SSOP
I/F
Dung lượng: 512 bytes
Serial EEPROM
Tên model: S-29391AFJA (SII)
Bảng 1.1. Các đặc tả cơ bản về T-Engine SH7760

Hình 1.3 và hình 1.4 mơ tả hình ảnh và sơ đồ khối kit T-Engine.


Hình 1.3. Kit T-Engine SH7760

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009

- 19 -


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 20 -

Hình 1.4. Sơ đồ khối kit T-Engine SH7760

Hai hệ nhúng DSK C6713 và T-Engine được giới thiệu ở trên là những hệ nhúng có
cấu hình hồn tồn phù hợp với các ứng dụng xử lý tiếng nói nói chung và nhận
dạng tiếng nói nói riêng. Chúng đều là các bộ xử lý mạnh, hỗ trợ các lệnh xử lý tín
hiệu số. Trên bo mạch tích hợp codec giao tiếp với tín hiệu âm thanh hỗ trợ tần số
lấy mẫu cao. Tuy nhiên, chúng đều là các hệ nhúng được sản xuất ở nước ngồi
theo những quy trình cơng nghệ hiện đại. Việc xây dựng và lắp đặt từ đầu những hệ
nhúng như vậy ở Việt Nam tương đối khó khăn. Khó khăn lớn nhất chính là việc
tìm mua các linh kiện, các mạch tích hợp cần thiết để xây dựng hệ nhúng.
Do vậy, với mục đích của đề tài là thiết kế hệ nhúng nhận dạng tiếng Việt, tác giả
đã chọn dòng vi điều khiển dsPIC của hãng Microchip để tiến hành thiết kế và cài
đặt hệ nhúng có khả năng nhận dạng từ tiếng Việt rời rạc với số lượng từ vựng hạn
chế.

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009



Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 21 -

PHẦN II. TÌM HIỂU DSPIC30F6014A VÀ CODEC SI3000

2.1. Vi điều khiển dsPIC30F6014A
2.1.1. Giới thiệu chung
dsPIC30F6014A là loại vi điều khiển tín hiệu số mạnh nhất của dịng dsPIC30F với
những tính năng chung như sau:
Thuộc họ vi điều khiển tín hiệu số 16 bit của hãng Microchip
Dải hoạt động:
• DC-30MIPS (tốc 30 triu lnh trờn giõy)
ã Di ngun VDD 2.5ữ5.5V
Tớnh năng CPU:












Thuộc kiến trúc Havard
Tối ưu với tập lệnh và lập trình C
Độ dài bus dữ liệu 16 bit

Độ dài bus điều khiển 24 bit
Khơng gian bộ nhớ chương trình đến 4M từ lệnh
Không gian bộ nhớ dữ liệu đến 64Kbytes
Tập lệnh với 84 lệnh
16 thanh ghi đa chức năng 16 bit
2 thanh ghi tích lũy 40 bit
Chế độ định địa chỉ linh hoạt
Thực hiện các lệnh dsp trong một chu kỳ

Bộ nhớ:
• Flash Program Memory 144 Kbytes
• Data EEPROM 4 Kbytes
• Data SRAM 8 Kbytes
Hình 2.1 mơ tả sơ đồ chân của vi điều khiển dsPIC30F6014A.

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 22 -

Hình 2.1. Sơ đồ các chân của dsPIC30F6014A-30I/PF

2.1.2. Nhân vi điều khiển dsPIC30F6014A
Nhân vi điều khiển dsPIC30F6014A cũng như dòng dsPIC30F nói chung có tập
lệnh 24 bit. Thanh ghi bộ đếm chương trình PC độ rộng 23 bit với bit LSB (bit thấp
nhất) luôn trống và bit MSB (bit cao nhất) bị từ chối truy nhập trong suốt quá trình
thực hiện các lệnh thơng thường. Vì vậy thanh ghi PC có khả năng đánh địa chỉ cho
4Mb từ lệnh trong khơng gian bộ nhớ. Một cơ chế tìm nạp lệnh (pre-fetch) được sử

dụng để đảm bảo sự thông suốt quá trình truy cập thanh ghi PC. Việc xây dựng
vịng lặp và thốt khỏi vịng lặp được hỗ trợ bằng cách sử dụng các câu lệnh DO và
REPEAT, cả hai lệnh này đều có thể bị ngắt trong bất cứ thời điểm nào.

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


Thiết kế hệ nhúng nhận dạng tiếng Việt nói

- 23 -

Các thanh ghi làm việc bao gồm các thanh ghi 16x16 bit, mỗi thanh ghi có thể đóng
vai trị thanh ghi dữ liệu, thanh ghi địa chỉ hay thanh ghi offset. Thanh ghi W15 hoạt
động như một con trỏ ngăn xếp phục vụ cho các ngắt và các lời gọi CALL.
Khơng gian dữ liệu với kích thước 64 bytes (32 từ nhớ) được chia làm hai khối X và
Y. Mỗi khối sử dụng một đơn vị nhớ riêng (AGU-Address Generation Unit). Khối
nhân - tích lũy của DSP hoạt động trên cả AGU của bộ nhớ X và bộ nhớ Y, chia
không gian địa chỉ làm hai phần.
Với hầu hết các lệnh, dịng dsPIC30F có thể thực hiện các thao tác đọc dữ liệu từ bộ
nhớ (hoặc dữ liệu chương trình), dọc dữ liệu các thanh ghi làm việc, ghi dữ liệu lên
bộ nhớ hoặc ghi lệnh lên không gian chương trình trong một chu kỳ làm việc. Do
đó, kể cả các lệnh có 3 tốn hạng cũng có thể được hỗ trợ, nó cho phép thực hiện
phép cộng A + B = C trong một chu kỳ làm việc.
Bộ máy DSP hoạt động nhanh, bao gồm bộ nhân 17x17 bit, bộ ALU 40 bit, hai bộ
tích lũy bão hịa 40 bit, và một bộ dịch hai chiều 40 bit. Bộ dịch này có thể thực
hiện phép dịch một giá trị 40 bit sang trái 16 bit hoặc sang phải 16 bit trong một chu
kỳ. Các lệnh DSP hoạt động không giống như các lệnh thông thường khác và được
thiết kế để tối ưu hóa hiệu năng về thời gian thực. Lệnh MAC và các lệnh khác có
thể lấy đồng thời hai toán hạng từ bộ nhớ trong khi vẫn thực hiện phép nhân hai
thanh ghi làm việc. Việc này đòi hỏi không gian dữ liệu được chia làm đôi với các

lệnh này và tuyến tính đối với các lệnh khác.

Hỗ trợ phép toán chia
dsPIC30F nổi bật ở phép toán chia 16/16 bit có dấu cũng như phép chia số nguyên
32/16 bit, 16/16 bit có dấu. Các câu lệnh sau đây được hỗ trợ :






DIVF - 16/16 signed factional
DIV.sd - 32/16 signed divide
DIV.ud – 32/16 unsigned divide
DIV.sw – 16/16 signed divide
DIV.uw -16/16 unsigned divide

Câu lệnh chia được thực hiện bởi một vòng lặp REPEAT

Lê Bá Vui – Lớp Cao học Xử lý Thông tin và Truyền thông 2007 – 2009


×