nhận dạng giọng nói tiếng việt Để Điều khiển xe lăn thông minh

46
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng i Li cảm ơn Để thc hiện đề tài: “Nhn dng ging nói Tiếng Việt để điều khiển xe lăn thông minh”, bản thân tôi đã nhận đƣợc rt nhiu schdẫn, giúp đỡ và động viên quý báu tgia đình, thầy cô và bn bè. Trƣớc hết, tôi xin bày tlòng cảm ơn sâu sắc đối vi Thy Hunh Thái Hoàng, giáo viên hƣớng dn đã động viên và tận tình hƣớng dn cho tôi vphƣơng pháp nghiên cu khoa học, đã cung cấp cho tôi rt nhiu kiến thức chuyên sâu để thc hiện đề tài này. Tôi cũng vô cùng cảm ơn các Thầy, Cô trong Khoa Điện Điện tử, Trƣờng Đại Học Bách Khoa Tp.HCM đã giảng dạy và hƣớng dn tôi trong sut thi gian học đại hc. Nhcác Thy, Cô mà tôi có đủ kiến thc và ttin để thc hiện đề tài nghiên cứu này cũng nhƣ các đề tài nghiên cứu khác trong tƣơng lai. Bên cạnh đó, sự hợp tác và giúp đỡ ca bn bè và các thế hđàn anh đi trƣớc cũng giúp tôi rt nhiu trong vic thc hiện đề tài này. Tôi cũng xin cảm ơn gia đình đã luôn chăm sóc, quan tâm và động viên trong quá trình hc tp. Và cui cùng, tôi xin gi li cảm ơn tới những ngƣời đã giúp đỡ tôi trong quá trình thc hiện Đồ án II mà tôi thiếu sót chƣa nêu tên ở đây, sự giúp đỡ ca hdù ít hay nhiều cũng đóng góp một phn vào kết quthc hiện đề tài đồ án môn hc này để chun btht tốt cho đề tài luận văn sắp ti. Tp. HChí Minh, ngày 17 tháng 06 năm 2014 Nguyễn Vũ Nhật Hoàng

Upload: nhat-hoang

Post on 27-Dec-2015

139 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

i

Lời cảm ơn

Để thực hiện đề tài: “Nhận dạng giọng nói Tiếng Việt để điều khiển xe lăn

thông minh”, bản thân tôi đã nhận đƣợc rất nhiều sự chỉ dẫn, giúp đỡ và động viên

quý báu từ gia đình, thầy cô và bạn bè.

Trƣớc hết, tôi xin bày tỏ lòng cảm ơn sâu sắc đối với Thầy Huỳnh Thái

Hoàng, giáo viên hƣớng dẫn đã động viên và tận tình hƣớng dẫn cho tôi về phƣơng

pháp nghiên cứu khoa học, đã cung cấp cho tôi rất nhiều kiến thức chuyên sâu để

thực hiện đề tài này.

Tôi cũng vô cùng cảm ơn các Thầy, Cô trong Khoa Điện – Điện tử, Trƣờng

Đại Học Bách Khoa Tp.HCM đã giảng dạy và hƣớng dẫn tôi trong suốt thời gian

học đại học. Nhờ các Thầy, Cô mà tôi có đủ kiến thức và tự tin để thực hiện đề tài

nghiên cứu này cũng nhƣ các đề tài nghiên cứu khác trong tƣơng lai.

Bên cạnh đó, sự hợp tác và giúp đỡ của bạn bè và các thế hệ đàn anh đi trƣớc

cũng giúp tôi rất nhiều trong việc thực hiện đề tài này.

Tôi cũng xin cảm ơn gia đình đã luôn chăm sóc, quan tâm và động viên trong

quá trình học tập.

Và cuối cùng, tôi xin gửi lời cảm ơn tới những ngƣời đã giúp đỡ tôi trong quá

trình thực hiện Đồ án II mà tôi thiếu sót chƣa nêu tên ở đây, sự giúp đỡ của họ dù ít

hay nhiều cũng đóng góp một phần vào kết quả thực hiện đề tài đồ án môn học này

để chuẩn bị thật tốt cho đề tài luận văn sắp tới.

Tp. Hồ Chí Minh, ngày 17 tháng 06 năm 2014

Nguyễn Vũ Nhật Hoàng

Page 2: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

ii

Giới thiệu đề tài:

Tiếng nói là phƣơng tiện giao tiếp cơ bản nhất của con ngƣời, sử

dụng lời nói là một cách diễn đạt đơn giản và hiệu quả nhất. Đã từ lâu,

con ngƣời luôn mơ ƣớc đến các hệ thống máy điều khiển tự động có thể

giao tiếp bằng tiếng nói tự nhiên của con ngƣời. Ngày nay, cùng với sự

phát triển của khoa học kỹ thuật và công nghệ, đặc biệt trong lĩnh vực

tin học, các hệ thống máy tự động đã dần thay thế con ngƣời trong

nhiều công việc. Nhu cầu giao tiếp với thiết bị máy bằng tiếng nói là rất

cần thiết, đó là phƣơng thức giao tiếp văn minh và tự nhiên nhất.

Nhận dạng tiếng nói là một vấn đề không mới. Trên thế giới đã và

đang có có rất nhiều công trình nghiên cứu về vấn đề này với rất nhiều

phƣơng pháp nhận dạng tiếng nói khác nhau. Và những nghiên cứu đó

cũng có những thành công đáng kể. Nhƣng đối với nƣớc ta, nhận dạng

tiếng nói vẫn là một lĩnh vực khá mới mẻ. Chỉ có một số công trình của

các nhóm nhƣ: AILab, Vietvoice, Vspeech… nghiên cứu đến vấn đề

này. Đến nay tuy đã có nhiều nghiên cứu về nhận dạng tiếng nói tiếng

Việt và đã đạt đƣợc một số thành tựu, nhƣng nhìn chung vẫn chƣa đạt

đƣợc kết quả cần thiết để có thể tạo ra các sản phẩm mang tính ứng

dụng cao.

Với mong muốn có thể dùng tiếng nói Tiếng Việt để điều khiển xe

lăn thông minh, đồ án này nghiên cứu các phƣơng pháp nhận dạng tiếng

nói Tiếng Việt, từ đó xây dựng một chƣơng trình demo nhận dạng tiếng

nói tiếng Việt để phát triển lên luận văn “ Nhận dạng giọng nói Tiếng

Việt để điều khiển xe lăn thông minh”.

Page 3: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

iii

Đồ án gồm 05 chƣơng:

Chương 1: Tổng quan về tình hình trong và ngoài nƣớc liên

quan đến việc nhận dạng tiếng nói, mục tiêu đề tài và giới

hạn của đề tài.

Chương 2: Trình bày về hệ nhận dạng tiếng nói.

Chương 3: Các khái niệm liên quan đến hệ nhận dạng tiếng

nói và hỗ trợ cho công cụ SPHINX.

Chương 4: Giới thiệu về công cụ hỗ trợ nhận dạng tiếng nói

CMUSphinx

Chương 5: Kết quả chƣơng trình demo nhận dạng tiếng nói

Tiếng Việt dùng trong điều khiển xe lăn thông minh sử dụng

công cụ Sphinx và kết luận.

Page 4: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

iv

MỤC LỤC

Lời cảm ơn .............................................................................................................. i

Giới thiệu đề tài ...................................................................................................... ii

Mục lục................................................................................................................... iv

Chƣơng 1: Tổng quan ............................................................................................. 1

1.1. Tổng quan về tình hình trong và ngoài nƣớc ....................................... 2

1.2. Mục tiêu đạt đƣợc ................................................................................. 4

1.3. Giới hạn đề tài ...................................................................................... 5

Chƣơng 2: Trình bày về hệ nhận dạng tiếng nói .................................................... 6

2.1. Giới thiệu ............................................................................................. 7

2.2. Phân loại các hệ thống nhận dạng tiếng nói ........................................ 8

2.3. Một số phƣơng pháp nhận dạng tiếng nói ........................................... 8

Chƣơng 3: Các khái niệm liên quan đến hệ nhận dạng tiếng nói và hỗ trợ cho công

cụ Sphinx ................................................................................................................ 10

3.1. Rút trích đặc trƣng tín hiệu tiếng nói ................................................... 11

3.1.1. Khái niệm ..................................................................................... 11

3.1.2. Làm rõ tín hiệu ............................................................................. 12

3.1.3. Tách từ ......................................................................................... 12

3.1.4. Phân đoạn thành các khung ......................................................... 13

3.1.5. Lấy cửa sổ khung tín hiệu ............................................................ 14

3.2. Rút trích đặc trƣng bằng phƣơng pháp MFCC ....................................... 15

3.2.1. Biến đổi FFT ................................................................................ 17

3.2.2. Lọc qua bộ lọc Mel- Scale ........................................................... 18

3.2.3. Logarit giá trị năng lƣợng ............................................................ 21

3.2.4. Biến đổi cosin rời rạc ................................................................... 21

Chƣơng 4: Giới thiệu về công cụ hỗ trợ nhận dạng tiếng nói CMU SPHINX ...... 23

Page 5: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

v

4.1. Giới thiệu CMU Sphinx ....................................................................... 24

4.2. Các đặc điểm của CMU Sphinx .......................................................... 24

4.3. Kiến trúc Sphinx 4 .............................................................................. 25

4.3.1. Bộ ngoại vi – FrontEnd ............................................................... 27

4.3.2. Bộ ngôn ngữ - Linguist ................................................................ 28

4.3.3. Bộ giải mã – Decoder .................................................................. 31

Chƣơng 5: Xây dựng chƣơng trình demo nhận dạng giọng nói tiếng Việt điều

khiển xe lăn ............................................................................................................ 33

5.1. Cài đặt Sphinx ..................................................................................... 34

5.1.1. Chuẩn bị hệ điều hành ................................................................. 34

5.1.2. Chuẩn bị các gói cài đặt Sphinx .................................................. 34

5.2. Cài đặt và huấn luyện .............................................................................. 35

5.2.1. Xây dựng mô hình ngôn ngữ ....................................................... 36

5.2.2. Xây dựng mô hình ngữ âm .......................................................... 37

5.2.3. Xây dựng từ điển ......................................................................... 37

5.3. Kết quả thử nghiệm ................................................................................. 38

Chƣơng 5: Kết luận ................................................................................................ 39

6.1. Kết quả đạt đƣợc ................................................................................. 40

6.2. Những hạn chế .................................................................................... 40

6.3. Hƣớng nghiên cứu và phát triển ......................................................... 41

Page 6: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

1

1

TỔNG QUAN

Page 7: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

2

1.1. Tổng quan về tình hình trong và ngoài nước:

Vấn đề nghiên cứu các phƣơng pháp nhận dạng tiếng nói đã và đang

thu hút rất nhiều sự đầu tƣ và nghiên cứu của các nhà khoa học trên khắp thế

giới. Ý tƣởng về xây dựng các hệ thống nhận dạng tiếng nói đã có từ những

năm 50 của thế kỷ 20 và đến nay đã đạt đƣợc nhiều kết quả đáng kể.

Trên thế giới đã có rất nhiều hệ thống nhận dạng tiếng nói tiếng Anh đã

và đang đƣợc ứng dụng rất hiệu quả nhƣ: Via Voice của IBM, Spoken

Toolkit của CSLU (Central of Spoken Laguage Under-standing), Speech

Recognition Engine của Microsoft, Hidden Markov Model toolkit của đại

học Cambridge, CMU Sphinx của đại học Carnegie Mellon,… ngoài ra, một

số hệ thống nhận dạng tiến nói tiếng Pháp, Đức, Trung Quốc,… cũng khá

phát triển.

Đối với nƣớc ta, nhận dạng tiếng nói vẫn là một lĩnh vực khá mới mẻ.

Đến nay tuy đã có nhiều nghiên cứu về nhận dạng tiếng nói tiếng Việt và đã

đạt đƣợc một số thành tựu, nhƣng nhìn chung vẫn chƣa đạt đƣợc kết quả cần

thiết để có thể tạo ra các sản phẩm mang tính ứng dụng cao. Có thể kể đến

các công trình sau:

AILab: Đây là công trình đƣợc phòng thí nghiệm Trí tuệ Nhân tạo -

AILab thuộc Đại học Khoa học Tự nhiên tạo ra dựa trên các công nghệ tiên

tiến nhất về nhận dạng và tổng hợp tiếng nói để đáp ứng nhu cầu của ngƣời

dùng. Dựa trên công nghệ xử lí tiếng nói tiếng Việt, AILab đã xây dựng phần

mềm iSago chuyên hỗ trợ tìm kiếm thông tin qua tiếng nói. Thông qua ứng

dụng phần mềm ngƣời sử dụng có khả năng hỗ trợ giao tiếp với điện thoại di

động trực tiếp bằng lời nói. Từ đó ngƣời sử dụng tìm kiếm thông tin nhà hàng,

quán Bar, Café trên địa bàn TP. HCM. Khi ngƣời dùng đặt câu hỏi bằng tiếng

Page 8: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

3

nói, iSago sẽ truyền nội dung truy vấn này về server để xử lý và gửi lại kết

quả tìm kiếm, dạng một danh sách: tên nhà hàng, địa chỉ.

Vietvoice: Đây là phần mềm của một ngƣời dân Việt Nam ngụ tại

Canada. Phần mềm có khả năng nói tiếng Việt từ các tập tin. Để chạy đƣợc

chƣơng trình, cần cài đặt Microsoft Visual C++ 2005 Redistributable

Package (x86). Đối với ngƣời khiếm thị, phần mềm này cho phép sử dụng

cách gõ tắt (nhấn nút Ctrl và một chữ) để chọn lựa một trong các tính năng

hiển thị trên màn hình. Ngƣời dùng có thể cập nhật từ điển các chữ viết tắt

và các từ ngữ tiếng nƣớc ngoài.

Vspeech: Đây là một phần mềm điều khiển máy tính bằng giọng nói do

một nhóm sinh viên Đại học Bách Khoa TP. HCM viết. Phần mềm sử dụng

thƣ viện Microsoft Speech SDK để nhận dạng tiếng Anh nhƣng đƣợc chuyển

thành tiếng Việt. Nhóm đã khá thành công với ý tƣởng này, do sử dụng lại

thƣ viện nhận dạng engine nên thời gian thiết kế rút ngắn lại mà hiệu quả

nhận dạng khá tốt. Phần mềm Vspeech có các lệnh gọi hệ thống đơn giản

nhƣ gọi thƣ mục My Computer, nút Start,… Phiên bản mới nhất có tƣơng

tác với MS Word 2003, lƣớt web với trình duyệt Internet Explorer. Không

có các chức năng tùy chỉnh lệnh và gọi tắt các ứng dụng. Phần mềm chạy

trên nền Windows XP, microphone và card âm thanh sử dụng tiêu chuẩn

thông thƣờng.

Tuy nhiên việc ứng dụng nhận dạng giọng nói vào điều khiển máy tính

còn nhiều hạn chế. Ở Việt Nam thì hầu nhƣ chỉ mới có bộ phần mềm

Vspeech của nhóm sinh viên trƣờng Đại học Bách Khoa TP. HCM, các phần

mềm khác chỉ thử nghiệm trong phòng thí nghiệm, chƣa đƣợc sử dụng thực

tế vì chƣa đạt trên 100 từ. Phần mềm Vspeech đƣợc phát triển từ mã nguồn

mở Microsoft Speech SDK nhận dạng tiếng Anh, thông qua dữ liệu, phƣơng

Page 9: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

4

thức trung gian, việc nhận dạng đƣợc chuyển trong Vspeech để nhận biết

tiếng Việt.

1.2. Mục tiêu đạt được:

Đồ án nghiên cứu những ý tƣởng cơ bản và các phƣơng pháp đƣợc sử

dụng trong nhận dạng tiếng nói. Đồng thời đồ án đã tìm hiểu về công cụ

nhận dạng tiếng nói SPHINX từ đó xây dựng một chƣơng trình demo nhận

dạng từ dùng để điều khiển.

Mục đích chi tiết:

Tìm hiểu các khái niệm có liên quan đến hệ nhận dạng tiếng nói để

làm rõ hơn một số yếu tố quan trọng trong việc sử dụng công cụ hỗ

trợ SPHINX nhƣ: rút trích đặc trƣng bằng MFCC (Mel – Scale

Frequency Capstral Coefficient), mô hình Markov ẩn, mô hình âm

học, vị học áp dụng cho tiếng Việt.

Tìm hiểu phƣơng pháp cài đặt công cụ hỗ trợ xây dựng hệ nhận dạng

tiếng nói trên hệ điều hành UBUNTU 12.04.

Tìm hiểu xây dựng mô hình âm học, mô hình ngôn ngữ thích hợp

cho tiếng Việt.

Xây dựng chƣơng trình demo mô phỏng, thực nghiệm giữa các mô

hình với nhau, nhận dạng khoảng 20 từ, 5 câu lệnh tiếng Việt để điều

khiển xe lăn thông minh.

Page 10: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

5

1.3. Giới hạn đề tài:

Đồ án chỉ giới hạn trong việc tìm hiểu về tiếng nói, các phƣơng pháp xử

lý tiếng nói, rút trích đặc trƣng tiếng nói; mô hình Markov ẩn, mô hình âm

học, âm vị áp dụng cho tiếng Việt; kiến trúc hệ thống nhận dạng tiếng nói

qua công cụ Sphinx. Vì thời gian hạn chế nên chƣơng trình demo chỉ dừng ở

mức nhận dạng đƣợc khoảng 10 câu lệnh cơ bản điều khiển xe lăn. Khi đọc

lệnh điều khiển, máy tính sẽ hiểu và xuất hiện dòng lệnh đó trên màn hình

của chƣơng trình.

Do thời gian có hạn nên demo chƣơng trình chỉ mới thực hiện nhận

dạng thành công với một, hai ngƣời dùng. Xác suất đúng thực tế xấp xỉ lớn

hơn 80%.

Page 11: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

6

2

TRÌNH BÀY VỀ HỆ NHẬN DẠNG

TIẾNG NÓI

Page 12: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

7

2.1. Giới thiệu:

Nhận dạng tiếng nói là một hệ thống tạo khả năng để máy tính nhận

biết ngữ nghĩa của lời nói. Về bản chất, đây là quá trình biến đổi tín hiệu âm

thanh thu đƣợc của ngƣời nói qua Micro thành một chuỗi các từ. Kết quả của

quá trình nhận dạng có thể đƣợc ứng dụng trong điều khiển thiết bị, nhập dữ

liệu, soạn thảo văn bản bằng lời nói, quay số điện thoại tự động hoặc đƣa tới

một quá trình xử lý ngôn ngữ ở mức cao hơn.

Tín hiệu tiếng nói đầu tiên đƣợc tiền xử lý và rút trích đặc trƣng. Kết

quả thu đƣợc sau quá trình này là tập hợp các đặc trƣng âm học (aucostic

features), đƣợc tạo dựng thành một hay nhiều vecto gọi là vecto đặc trƣng.

Để có thể thực hiện việc so sánh, trƣớc hết hệ thống phải đƣợc huấn

luyện và xây dựng các đặc trƣng, sau đó mới có thể dùng để so sánh với các

tham số đầu vào để nhận dạng.

Trong quá trình huấn luyện, hệ thống dùng các vecto đặc trƣng đƣợc

đƣa vào để ƣớc lƣợng, tính toán các tham số cho các mẫu. Một mẫu tham

khảo là bản mẫu dùng để so sánh và nhận dạng, các mẫu tham khảo này mô

phỏng cho một từ, một âm tiết, hoặc thậm chí một âm vị.

Trong quá trình nhận dạng, dãy các vecto đặc trƣng đƣợc đem so sánh

với các mẫu tham khảo. Sau đó hệ thống tính toán độ tƣơng đồng của dãy

vecto đặc trƣng và mẫu tham khảo. Việc tính toán độ tƣơng đồng đƣợc thực

hiện bằng cách áp dụng các thuật toán đã đƣợc chứng minh hiệu quả nhƣ

thuật toán Vitertbi ( trong mô hình Hidden Markov Model – HMM). Mẫu có

độ tƣơng đồng cao nhất đƣợc cho là kết quả nhận dạng.

Page 13: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

8

2.2. Phân loại các hệ thống nhận dạng tiếng nói:

Một hệ thống nhận dạng tiếng nói có thể là một trong hai dạng: nhận

dạng liên tục và nhận dạng từng từ. Nhận dạng liên tục tức là nhận dạng

tiếng nói đƣợc phát liên tục trong một chuỗi tín hiệu, chẳng hạn nhƣ một câu

nói, một mệnh lệnh hoặc một đoạn văn đƣợc đọc lên bởi ngƣời dùng. Các hệ

thống loại này rất phức tạp, nó phức tạp ở chỗ các từ đƣợc phát hiện liên tục

khó xử lý kịp, hoặc khó tách ra nếu nhƣ ngƣời nói liên tục không có khoảng

nghỉ. Kết quả là tách từ ảnh hƣởng rất lớn đến các bƣớc sau, cần xử lý thật

tốt trong quá trình này. Trái lại, đối với mô hình nhận dạng từng từ, mỗi từ

cần nhận dạng đƣợc phát âm một cách rời rạc, có các khoảng nghỉ trƣớc và

sau khi phát âm một từ. Mô hình này dĩ nhiên đơn giản hơn mô hình nhận

dạng liên tục, đồng thời cũng có những ứng dụng thực tiễn nhƣ trong các hệ

thống điều khiển bằng lời nói với độ chính xác khá cao, tuy nhiên khó áp

dụng rộng rãi với mô hình nói trên.

2.3. Một số phương pháp nhận dạng tiếng nói:

Có 3 phƣơng pháp nhận dạng tiếng nói đƣợc sử dụng phổ biến:

Phƣơng pháp âm học- ngữ âm học

Phƣơng pháp nhận dạng mẫu

Phƣơng pháp ứng dụng trí tuệ nhân tạo

Đồ án này sử dụng công cụ SPHINX để nhận dạng tiếng nói nên

phƣơng pháp sử dụng ở đây là phƣơng pháp nhận dạng mẫu. Phƣơng pháp

này không cần xác định đặc tính âm học hay phân đoạn tiếng nói mà chỉ sử

dụng trực tiếp các mẫu tín hiệu tiếng nói trong quá trình nhận dạng. Các hệ

Page 14: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

9

thống nhận dạng tiếng nói theo phƣơng pháp này đƣợc phát triển theo hai

bƣớc cụ thể:

Bƣớc 1: Sử dụng tập mẫu tiếng nói (cơ sở dữ liệu mẫu tiếng nói) để

đào tạo các mẫu tiếng nói) để đào tạo các mẫu tiếng nói đặc trƣng ( mẫu

tham chiếu) hoặc các tham số hệ thống.

Bƣớc 2: Đối sánh mẫu tiếng nói từ ngoài với các mẫu đặc trƣng để ra

quyết định. Trong phƣơng pháp này, nếu cơ sở dữ liệu tiếng nói cho đào

tạo có đủ các phiên bản mẫu cần nhận dạng thì quá trình đào tạo có thể

xác định chính xác các đặc tính âm học của mẫu ( các mẫu có thể là âm

vị, cụm từ …). Hiện nay, một số kỹ thuật nhận dạng mẫu đƣợc áp dụng

thành công trong nhận dạng tiếng nói là lƣợng tử hóa vector, so sánh

thời gian động(DTW), mô hình Markov ẩn (HMM) và mạng nơron

nhân tạo (ANN).

Page 15: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

10

3

CÁC KHÁI NIỆM LIÊN QUAN ĐẾN

HỆ NHẬN DẠNG TIẾNG NÓI VÀ

HỖ TRỢ CHO CÔNG CỤ SPHINX

Page 16: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

11

3.1. Rút trích đặc trưng tín hiệu tiếng nói:

3.1.1. Khái niệm:

Rút trích đặc trƣng của tiếng nói là một trong những khâu quan trọng

trong quá trình nhận dạng tiếng nói. Dữ liệu tiếng nói thông thƣờng dƣới dạng

sóng âm đã lƣu trữ trong máy tính là loại dữ liệu khó xử lý, học mẫu huấn

luyện và so sánh. Do đó việc trích rút đặc trƣng tiếng nói là cần thiết. Kết quả

của quá trình trích rút đặc trƣng là một hoặc nhiều vector đặc trƣng. Các

vector này chứa tham số mang giá trị quan trọng của tín hiệu tiếng nói, làm

giảm đi rất nhiều số lƣợng tính toán cần thiết, làm rõ ràng hơn sự khác biệt

giữa hai tín hiệu tiếng nói.

Hình sau minh họa cho quá trình rút trích đặc trƣng:

Hình 3.1. Qúa trình rút trích vector đặc trƣng

Page 17: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

12

3.1.2. Làm rõ tín hiệu (pre – emphasis- tiền khuếch đại)

Theo các nghiên cứu về âm học thì giọng nói có sự suy giảm

20dB/decade khi lên tần số cao do đặc điểm sinh lý của hệ thống phát âm con

ngƣời. Để khắc phục sự suy giảm này, chúng ta phải tăng cƣờng độ tín hiệu

lên một giá trị gần 20dB/decade. Bên cạnh đó, hệ thống thính giác con ngƣời

có xu hƣớng nhạy cảm hơn với cùng tần số cao. Dựa vào những đặc điểm

trên, ta sẽ dùng bộ lọc thông cao để tiền xử lý các tín hiệu thu đƣợc nhằm làm

rõ vùng tín hiệu mà tai ngƣời có thể nghe đƣợc. Bộ lọc áp dụng công thức

sau:

1( ) 1pre preH z a z

Trong đó, apre là hệ số nhấn mạnh, thƣờng có giá trị 0.9700002861.

Bộ lọc này có chức năng tăng cƣờng tín hiệu tại tần số cao (trên 1 KHz).

Tín hiệu tiếng nói đã đƣợc số hóa là s(n), đƣợc đƣa qua một hệ số bậc

thấp, để làm phẳng tín hiệu về phổ và làm nó ít bị ảnh hƣởng bởi các hiệu ứng

có độ chính xác hữu hạn này trong quá trình xử lý tín hiệu. Hệ thống số đƣợc

dùng trong khối tiền khuếch đại vừa cố định, vừa thích nghi chậm.

Trong trƣờng hợp sử dụng bộ lọc áp theo công thức 2.1, đầu ra của dãy

tiền khuếch đại s’(n) liên quan đến đầu vào của dãy tín hiệu s(n) theo đẳng

thức sau:

s’(n) = s(n) – apres(n-1)

3.1.3. Tách từ

Tín hiệu tiếng nói s(n) sau khi đƣợc làm rõ tín hiệu sẽ đƣợc chuyển sang

để tách từ. Đây là công đoạn chia toàn bộ tín hiệu thu đƣợc thành những đoạn

tín hiệu trong đó chỉ chƣa nội dung của một từ.

Page 18: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

13

Có nhiều phƣơng pháp để tách điểm đầu và điểm cuối của một từ ra khỏi

toàn bộ tín hiệu tiếng nói, trong đó phƣơng pháp dùng hàm năng lƣợng thời

gian ngắn là phƣơng pháp phổ biến nhất. Với một cửa sổ kết thúc tại mẫu thứ

m, hàm năng lƣợng thời gian ngắn E(m) đƣợc xác định:

1

2[ ( )* ( )]m N

m

n m

E x n w n m

3.1.4. Phân đoạn thành các khung (Framing)

Tín hiệu tiếng nói là một đại lƣợng biến thiên theo thời gian và không ổn

định nên không thể xử lý trực tiếp trên đó đƣợc. Do đó, tín hiệu phải đƣợc

chia ra thành các khung với chiều dài tƣơng đối nhỏ để lấy đƣợc các đoạn tín

hiệu tƣơng đối ổn định và xử lý trong các bộ lọc tiếp theo. Theo các nghiên

cứu đã có thì trong khoảng thời gian 10-20 ms, tín hiệu tiếng nói tƣơng đối ổn

định. Nên ở bƣớc này ngƣời ta thƣờng phân tín hiệu thành các khung với kích

thƣớc 20-30 ms. Nhƣng để tránh mất mát và làm gián đoạn tín hiệu ban đầu,

khi phân khung, ngƣời ta chồng lấp các khung lên nhau trong khoảng 10-

15ms.

Page 19: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

14

Hình 3.1.4. Ví dụ phân đoạn khung tín hiệu

3.1.5. Lấy cửa sổ khung tín hiệu

Để làm rõ tín hiệu đồng thời tính gián đoạn tín hiệu ở đầu và cuối của

mỗi khung trong quá trình xử lý đặc trƣng, khi xử lý, các khung sẽ đƣợc nhân

với hàm cửa sổ, thƣờng là cửa sổ Hamming. Kết quả là việc này làm cho

khung tín hiệu mƣợt hơn, giúp cho các thành phần có tần số cao xuất hiện

trong phổ. Công thức hàm cửa sổ tổng quát:

2(1 ).cos ,

2( )

0,2

n NnNw n

Nn

(2.5)

Trong đó: w(n) gọi là hàm cửa sổ. Tùy vào giá trị của α mà có các cửa sổ

sau :

Với α=0.54, ta có cửa sổ Hamming (Hamming Windown) :

Page 20: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

15

20.54 0.46.cos ,

2( )

0,2

n NnNw n

Nn

(2.6)

Với định nghĩa cửa sổ w(n) theo công thức trên, 0 1n N , thì kết quả

chia cửa sổ cho khung x(n):

1( ) ( )w( )tx n x n n 0 1n N (2.7)

Ý nghĩa của việc áp cửa sổ: là nhằm mục đích có đƣợc dữ liệu theo

miền tần số chuẩn đề đƣa vào phép biến đổi Fourier rời rạc.

3.2. Rút trích đặc trưng bằng phương pháp MFCC:

Trong lĩnh vực xử lý và nhận dạng tiếng nói, việc tiền xử lý các tín hiệu

thu đƣợc và rút trích đặc trƣng là một kỹ thuật thiết yếu mà bất cứ hệ thống

nhận dạng nào cũng bắt buộc phải có. Trích rút đặc trƣng có vai trò quan

trọng quyết định hiệu suất của quá trình nhận dạng mẫu (cả trong quá trình

nhận dạng và trong quá trình huấn luyện). Công việc của bƣớc này là phân

Page 21: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

16

tích phổ spectral nhằm mục đích xác định các thông tin quan trọng, đặc trƣng

của tiếng nói, cắt giảm bớt các yếu tố không cần thiết trong quá trình nhận

dạng để làm giảm khối lƣợng dữ liệu cần xử lý.

Mel Scale Frequency Cepstral Coefficients (MFCC) là một phƣơng pháp

rút trích đặc trƣng sử dụng dãy bộ lọc Davis và Mermelstein đƣa ra vào năm

1980 khi họ kết hợp các bộ lọc cách khoảng trống không đều với phép biến

đổi Cosine rời rạc (Discrete Cosin Transform) thành một thuật toán hoàn

chỉnh ứng dụng trong lĩnh vực nhận dạng tiếng nói liên tục. Đồng thời định

nghĩa khái niệm hệ số Cepstral và thang đo tần số Mel (Mel Scale).

Hình 3.1.6 Tổng quát phƣơng pháp rút trích đặc trƣng MFCC

Page 22: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

17

Tóm tắt quá trình rút trích đặc trƣng theo MFCC sẽ nhƣ sau: Ban đầu tín

hiệu sau khi qua tiền xử lý sẽ đƣợc chia thành các Frame có khoảng thời gian

ngắn. Từ mỗi frame đó sau khi áp dụng các bƣớc chuyển đổi và lọc sẽ ra đƣợc

một vecto tƣơng ứng. Và xong quá trình này, ta sẽ có đặc trƣng của dãy tín

hiệu input là một dãy vecto đặc trƣng output ra.

3.2.1 Biến đổi FFT (Fast Fourier Transform)

Biến đổi FFT thực chất là một biến đổi DFT (Discrete Fourier

Transform) nhƣng đƣợc tối ƣu bằng các thuật toán nhanh và gọn hơn đề dáp

ứng các yêu cầu xử lý theo thời gian thực trong các lĩnh vực nhƣ xử lý âm

thanh, hình ảnh,...

Fast Fourier là một phép biến đổi thuận nghịch có đặc điểm bảo toàn tính

tuyến tính bất biến, tuần hoàn và tính trễ. Dùng để biến đổi tín hiệu tƣơng tự

sang miền tần số, nó sẽ gồm các công thức sau:

Công thức phép biến đổi thuận (dùng để phân tích tín hiệu):

12 /

0

( ) ( )N

j kn N

n

X k x n e

k = 0, 1, 2,…., N-1 (2.8)

Công thức phép biến đổi nghịch (dùng để tổng hợp lại tín hiệu):

12 /

0

x(n) X(k)N

j kn N

k

e

n = 0, 1, 2,…, N-1 (2.9)

Trong đó: ( ) ( ) b(n) 1x n a n

Page 23: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

18

Kết quả chúng ta có đƣợc khi thực hiện FFT là dãy tín hiệu Xt(k) để đƣa

và bộ lọc Mel – Scale.

3.2.2. Lọc qua bộ lọc Mel – Scale

Trong lĩnh vực nghiên cứu về nhận dạng tiếng nói, đòi hỏi chúng ta phải

hiểu và mô phỏng chính xác khả năng cảm thụ tần số âm thanh của tai ngƣời.

Chính vì thế các nhà nghiên cứu đã xây dựng một thang tần số - hay gọi là

thang tần số Mel (Mel Scale) dựa trên cơ sở thực nghiệm nhiều lần khả năng

cảm nhận âm thanh của con ngƣời. Thang tần số Mel đƣợc định nghĩa trên tần

số thực theo công thức:

102595log 1700

fm

(2.10)

Trong đó: m là tần số trong thang đo Mel, đơn vị là Mel

f là tần số thực, đơn vị là Hz.

Page 24: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

19

Hình 3.1.6.b. Biểu đồ thang tần số Mel theo tần số thực

Theo biểu đồ trên thì trong khoảng tần số thấp hơn 1kHz thì đồ thị trên

gần nhƣ là tuyến tính, nghĩa là trong khoảng tần số dƣới 1kHz, tần số Mel và

tần số thực. Trong khoảng tần số trên 1kHz thì mối quan hệ này là quan hệ

Logarit.

Dựa vào các thực nghiệm trên tai ngƣời, ngƣời ta đã xác định đƣợc các

tần số thực mà tai ngƣời có thể nghe đƣợc và chứa đựng nhiều thông tin. Sau

đó chuyển các tần số này sang tần số Mel và xây dựng thang đo nhƣ sau:

Page 25: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

20

Hình 3.1.6.b1. Băng lọc tần số Mel

Ta dùng thang đo này để áp dụng vào dãy sóng tín hiệu thu đƣợc sau khi

thực hiện FFT

Hình 3.1.6.b2. Đƣa tín hiệu vào băng lọc tần số Mel

Kết quả của bƣớc này là chúng ta sẽ có đƣợc tập hợp các tần số Yt(m) là

giao điểm của sóng tần số với thang tần số Mel từ dãy tín hiệu Xt(k)

Page 26: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

21

3.2.3. Logarit giá trị năng lượng (Logarit of filter

energies)

Mục đích của bƣớc này là nén các giá trị đã lọc đƣợc vào miền giá trị

nhỏ hơn để xử lý nhanh hơn. Nên các giá trị thu đƣợc ở mỗi kênh lọc sẽ đƣợc

lấy Logarit.

2

log ( )tY m

3.2.4. Biến đổi cosin rời rạc

Dựa vào phổ tín hiệu tiếng nói của con ngƣời trên miền tần số, ta có thể

thấy rằng phổ tín hiệu khá trơn, nên khi lấy các giá trị năng lƣợng ra từ các bộ

lọc, các giá trị này sẽ có sự tƣơng quan khá gần nhau, dẫn đến đặc trƣng ta rút

đƣợc sẽ không rõ ràng. Chính vì thế, ta thực hiện biến đổi DCT (Discrete

Cosin Transform) để làm rời rạc các giá trị này ra cho nó ít tƣơng quan với

nhau, làm tăng tính đặc trƣng của các tham số. Giá trịthu đƣợc sau bƣớc này

ta gọi là hệ số Cepstral.

1

cos 0.5N

i j

j

jc m j

N

(2.11)

Trong đó: N là số kênh lọc.

Mj là giá trị logarit năng lƣợng cho mạch lọc thứ j.

i là bậc của hệ số cepstral.

Page 27: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

22

Thông thƣờng ngƣời ta lấy i trong đoạn [1,12] là số lƣợng đặc trƣng

trong mỗi vecto đặc trƣng. Trong các hệ nhận dạng, số lƣợng đặc trƣng nằm

trong khoảng (10,15) là đủ để cho kết quả nhận dạng tƣơng đối mà dữ liệu xử

lý lại không quá lớn.

Sau khi thực hiện biến đổi DCT, theo công thức trên ta thấy các hệ số

thu đƣợc sẽ tăng tuyến tính theo số bậc của nó. Hệ số cepstral có số bậc cao sẽ

có giá trị rất cao, ngƣợc lại các hệ số bậc thấp sẽ có giá trị rất thấp. Sự chênh

lệch này sẽ gây khó khăn cho chúng ta trong qúa trình mô hình hóa dữ liệu và

xử lý sau này. Vì khi có sự chênh lệch cao, ta sẽ dùng miền giá trị lớn để biểu

diễn dữ liệu, và gặp khó khăn khi đƣa vào các mô hình xử lý xác suất,... nên

để có các hệ số tối ƣu cho các quá trình sau, ta sẽ thực hiện việc điều chỉnh

các hệ số sau này để giảm sự chênh lệch. Việc này thực hiện bằng công thức:

' exp * .n nc n k c (2.12)

Cuối cùng chúng ta sẽ thu đƣợc các giá hệ số Cepstral đã đƣợc tinh chế.

Các hệ số này là đặc trƣng MFCC mà chúng ta sẽ sử dụng để huấn luyện và

nhận dạng.

Page 28: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

23

4

GIỚI THIỆU VỀ CÔNG CỤ HỖ

TRỢ NHẬN DẠNG TIẾNG NÓI

CMUSPHINX

Page 29: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

24

4.1. Giới thiệu CMU Sphinx

Sphinx là một hệ thống nhận dạng tiếng nói hoàn chỉnh đƣợc viết trên

ngôn ngữ JAVA. Sphinx đƣợc công bố và chia sẻ mã nguồn lần đầu tiên vào

năm 2010 do nhóm nghiên cứu Sphinx ở trƣờng đại học Carnegie Mellon

nghiên cứu và phát triển. Sau đó, với sự giúp đỡ của các tổ chức ( Sun

Microsytems Laboratories, Hewlett Packard, Mitsubishi Electric Research

Labs) và các trƣờng đại học (University of California at Santa Cruz,

Massachusetts Institute of Technology), Sphinx tiếp tục đƣợc nghiên cứu và

bổ sung các phiên bản mới nhƣ Sphinx 2, Sphinx 3 và mới nhất là Sphinx 4

với tên gọi Pocketsphinx, làm cho hệ thống nhận dạng ngày càng tối ƣu hơn.

Đồ án này sử dụng Sphinx 4 để thực hiện.

4.2. Các đặc điểm của CMU Sphinx

Sphinx tuy mới đƣợc công bố để đƣa vào các ứng dụng nhận dạng chƣa

lâu nhƣng Sphinx đang dần trở thành một framwork nhận dạng tiếng nói

mạnh mẽ và đƣợc sử dụng rất nhiều trong các ứng dụng trong cuộc sống, Đó

là nhờ các đăc điểm sau :

- Hỗ trợ nhận dạng tiếng nói ở chế độ trực tiếp hoặc chia lô, có khả

năng nhận dạng tiếng nói rời rạc và liên tục.

- Là một hệ thống nhận dạng đồ sộ nhƣng có khả năng tháo lắp rất linh

động. Hỗ trợ sẵn đầy đủ các tính năng đáp ứng nhu cầu nhận dạng nhƣ xây

các bộ lọc, các hàm cửa sổ, các phép biến đổi, các công cụ hỗ trợ rút trích đặc

trƣng theo nhiều phƣơng pháp khác nhau.

Page 30: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

25

- Hỗ trợ nhiều mô hình ngôn ngữ dạng ASCII và các phiên bản nhị

phân của unigram, bigram, trigram, Java Speech API Grammar Format

(JSGF) và ARPA – format FST grammars.

- Xây dựng sẵn các thuật toán tìm kiếm tối ƣu (breath first, word

pruning), dễ dàng tinh chỉnh cho phù hợp với nhu cầu nhận dạng.

4.3. Kiến trúc Sphinx 4

Sphinx 4 là một framework nhận dạng âm thanh đƣợc thiết kế khá đồ sộ

và phức tạp. Nó bao gồm các thành phần đƣợc ghép nối rất linh động với

nhau và đƣợc công cụ hóa thành các bộ phận có chức năng riêng. Các thành

phần này có thể đƣợc chỉnh sửa và kết nối với nhau theo nhu cầu của ứng

dụng mà không phá vỡ cấu trúc của hệ thống.

Page 31: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

26

Có ba thành phần cơ bản tạo nên Sphinx 4 : Bộ ngoại vi (FrontEnd), Bộ

giải mã (Decoder) và bộ ngôn ngữ (Linguist). Để dễ hình dung cách hoạt

động tổng quát của Sphinx ta sẽ tìm hiểu sơ lƣợc các chức năng của các bộ

phận trên. Bộ ngoại vi với các công cụ hỗ trợ cho việc thu nhận và tiền xửa lý

các tín hiệu sẽ nhận và thực hiện tham số hóa chúng thành tập hợp các vecto

đặc trƣng (Feature). Bộ ngôn ngữ sẽ có nhiệm vụ đọc vào các mô hình ngôn

ngữ với các thông tin cách phát âm trong từ điển và thông tin cấu trúc của các

mô hình âm học rồi mô hình hóa chúng vào một đồ thị tìm kiếm (Search

Graph). Bộ phận còn lại là bộ giải mã (Decoder) có nhiệm vụ quan trọng nhất

kết nối hai bộ phận còn lại. Cụ thể là thành phần quản lý tìm kiếm (Search

Manager) trong bộ giải mã sẽ lấy các thông tin đặc trƣng từ bộ ngoại vi rồi kết

hợp với đồ thị tìm kiếm đƣợc phát sinh từ bộ ngôn ngữ để giải mã và tính toán

ra kết quả nhận dạng.

Khi xây dựng Sphinx, các nhà phát triển đã nghiên cứu khá kỹ về lĩnh

vực âm học nên đã xây dựng một số lƣợng khá lớn các hiệu số cấu hình để

hiệu chỉnh chung cho phù hợp với nhu cầu của ngôn ngữ và âm thanh khác

Page 32: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

27

nhau. Chúng ta có thể thay đổi, điều chỉnh chúng nhƣ thay đổi các cách rút

trích đặc trƣng, điều chỉnh các phƣơng pháp tìm kiếm,… trên file config của

hệ thống mà không cần phải can thiệp sâu vào bên trong. Bên cạnh đó nó còn

xây dựng các tool hỗ trợ cho qua trình nhận dạng nhƣ các tool huấn luyện, các

tool giám sát và báo cáo hệ thống.

4.3.1. Bộ ngoại vi – FrontEnd

Chức năng : Nhận vào các tín hiệu từ bên ngoài, thực hiện qua một số

bộ lọc và xử lý dữ liệu để cho kết quả là một tập các vecto đặc trƣng.

Cấu tạo : Bên trong của bộ ngoại vi này thực chất là một chuỗi các

modun con có khả năng xử lý tín hiệu giao tiếp đƣợc ghép nối với nhau. Các

chuỗi này có thể hoạt động song song cùng một lúc với nhau gọi là

Dataproccessor.

Page 33: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

28

Việc xử lý bằng các chuỗi Dataproccessor nối ghép với nhau sẽ giúp

chúng ta linh đông trong việc rút trích các thông tin đặc trƣng, với một tín

hiệu ta có thể rút trích đặc trƣng bằng các phƣơng pháp khác nhau để so sánh

tìm các đặc trừng tối ƣu hoặc áp dụng liên tiếp các phƣơng pháp với nhau để

tìm ra đặc trƣng tốt nhất. Đồng thời cho phép các chuỗi này thực hiện song

song với nhau làm cho hệ thống nhận diện nhanh chóng theo thời gian thực

với lƣợng tín hiệu lớn thu vào.

4.3.2. Bộ ngôn ngữ - Linguist

Chức năng : Bằng các công cụ và phƣơng pháp ngôn ngữ, bộ này sẽ đọc

vào các file cấu trúc của một ngôn ngữ rồi mô hình hóa chúng vào đồ thị tìm

kiếm để sử dụng trong việc tìm kiếm nhận dạng.

Cấu tạo : Ở bộ phận này cấu tạo khá phức tạp vì nó quy định hầu nhƣ

toàn bộ phạm vi ngôn ngữ mà chúng ta cần nhận dạng, nó gồm các thành

phần nhỏ sau :

a. Thành phần mô hình ngôn ngữ

Thành phần này sẽ có chức năng đọc vào file cấu trúc ngôn ngữ ở cấp độ

là các từ (word level). Thành phần này có vai trò quan trọng để xác định

những thứ mà hệ thống cần nhận dạng. Cấu trúc ngôn ngữ sẽ đƣợc mô hình

Page 34: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

29

hóa ở thành phần này theo hai mô hình : graph – driven và Stochastic N –

Gram.

- Mô hình graph – driven grammar : biểu diễn một đồ thị từ có hƣớng

trong đó mỗi nút biểu diễn một từ đơn và mỗi cung biểu diễn xác suất dịch

chuyển sang một từ.

- Mô hình Stochastic N – Gram : mô hình này cung cấp các xác suất

cho các từ đƣợc cho dựa vào việc quan sát n-1 từ dứng trƣớc.

Sphinx hỗ trợ nhiều định dạng ngôn ngữ khác nhau nhƣ :

- SimpleWordListGrammar : Định nghĩa một từ dựa trên một danh sách

các từ. Một tham số từ chọn chỉ ra các ngữ pháp có lặp hay không. Nếu ngữ

pháp không lặp, ngữ pháp sẽ đƣợc dùng cho một nhận dạng từ tách biệt. Nếu

ngữ pháp lặp, nó sẽ đuọc dùng để hỗ trợ liên kết nhận dạng từ tầm thƣờng,

tƣơng đƣơng với một unigarm grammar với xác suất bằng nhau.

- JSGFGrammar : Hỗ trợ JavaTM Speech API Grammar Format

(JSGF), định nghĩa một biểu diễn theo BNF, độc lập nền tảng, Unicode và các

ngữ pháp.

- LMGrammar : Định nghĩa một ngữ pháp dựa trên một mô hình ngôn

ngữ thống kê. LMGrammar phát sinh một nút ngữ pháp mội từ và làm việc tốt

với với các unigram và bigram, xấp xỉ 1000 từ.

- FSTGrammar : Hỗ trợ một bộ chuyển đổi trạng thái giới hạn (finite –

state tranducer) trong một định dạng ARPA FST.

- SimpleNGramModel : Cung cấp hỗ trợ các mô hình ASCII N – Gram

trong định dạng ARPA. SimpleNGramModel không cố làm tối ƣu việc sử

dụng bộ nhớ, do đó bó làm việc tốt với các mô hình ngôn ngữ nhỏ.

Page 35: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

30

- LargeTriGramModel : cung cấp hỗ trợ các mô hình N – Gram đúng

đƣợc phát sinh bởi CMU – Cambridge Statictical Language Modeling

Toolkit. LargeTrigramModel tối ƣu việc lƣu trữ bộ nhớ, cho phép nó làm việc

với các tập tin rất lớn, trên 100MB.

b. Thành phần từ điển

Thành phần này cung cấp cách phát âm cho các từ ta đã xây dựng trong

mô hình ngôn ngữ và hỗ trợ phân lớp các từ thành các lớp khác nhau để hỗ trợ

cho việc tìm kiếm.

c. Thành phần mô hình âm học

Thành phần này mô hình âm học cung cấp một ánh xạ giữa một đơn vị

tiếng nói và một HMM (Hidden Markov Model) có thể đƣợc đánh giá dựa

vào các đặc trƣng đƣợc cung cấp bởi bộ ngoại vi. Các ánh xạ có thể đƣa thông

tin vị trí của từ và ngữ cảnh thành phần mô hình ngôn ngữ. Định nghĩa ngữ

cảnh này đƣợc xây dựng từ cấu trúc ngữ pháp của mô hình ngôn ngữ.

Khác với các hệ nhận dạng khác, mô hình HMM trong Sphinx có cấu

trúc cố định trong bộ nhớ và đơn thuần chỉ là một đồ thị có hƣớng của các đối

tƣợng. Trong đồ thị này, mỗi nút tƣơng ứng với một trạng thái HMM và mỗi

cung biểu diễn xác suất biến đổi từ trạng thái này sang trạng thái khác trong

HMM. Bằng cách biểu diễn HMM nhƣ là các đồ thị có hƣớng của các đối

tƣợng thay vì một cấu trúc cố định, một bổ sung của mô hình âm học có thể

dễ dàng cung cấp các HMM với các dạng hình học tôpô khác.

Mỗi trạng thái HMM có khả năng phát sinh một đánh giá từ một đặc

trƣng quan sát. Quy tắc để tính toán điểm số đƣợc thực hiện bới chính trạng

thái HMM, do đó che giấu các thực thi của nó đối với các phần còn lại của hệ

Page 36: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

31

thống, thậm chí cho phép các hàm mật độ xác suất khác nhau đƣợc sử dụng

trên mỗi trạng thái HMM. Mô hình âm học cũng cho phép chia sẻ các thành

phần khác nhau trên tất cả các cấp độ. Nghĩa là các thành phần tạo nên một

trạng thái HMM nhƣ các hỗn hợp Gaussian (Gaussian mixture), các ma trận

biến đổi và các trọng số hỗn hợp (mixture weight) có thể đƣợc chia sẻ bởi bất

kì trạng thái HMM nào.

d. Đồ thị tìm kiếm – Search Graph

Đây là kết quả mà bộ ngôn ngữ phát sinh đƣợc cuối cùng để đƣa vào sử

dụng trong bộ giải mã. Đồ thị tìm kiếm này là một đồ thị có hƣớng, trong đó

mỗi nút đƣợc gọi là một trạng thái tìm kiếm (Search State): biểu diễn một

trong hai trạng thái: phát hoặc không phát (emitting state hay non-emitting

state). Và các đƣờng cung biểu diễn trạng thái biến đổi có thể, trên các cung

này có các giá trị xác suất đƣợc tính toán từ mô hình âm học: biểu diễn khả

năng chuyển từ trạng thái này đến trạng thái kia. Một trạng thái có thể có

nhiều cung hƣớng đến trạng thái khác.

4.3.3. Bộ giải mã – Decoder

Chức năng: Bộ giải mã có nhiệm vụ chính là sử dụng các đặc trƣng

(Features) từ bộ ngoại vi kết hợp với đồ thị tìm kiếm đƣợc phát sinh từ bộ

Page 37: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

32

ngôn ngữ để tiến hành giải mã và áp dụng các thuật toán suy ra kết quả nhận

dạng.

Cấu tạo: Thành phần của bộ này tuy đơn giản nhƣng rất phức tạp về

thuật toán vì ảnh hƣởng tới tốc độ tìm kiếm, gồm một thành phần quản lý tìm

kiếm (Search Manager) có khả năng tháo lắp và các mã hỗ trợ khác để đơn

giản hóa quá trình giải mã cho một ứng dụng. Nên trong báo cáo chỉ tập trung

giới thiệu thành phần quản lý tìm kiếm.

Nhiệm vụ của thành phần quản lý tìm kiếm là nhận dạng các tập hợp các

vector đặc trƣng để tìm ra ánh xạ tƣơng ứng của nó trong đồ thị tìm kiếm. Để

đáp ứng tìm ra kết quả chính xác trong đồ thị tìm kiếm khi xử lý kết quả,

Sphinx cung cấp cho các tiện ích có khả năng phát sinh lƣới và các đánh giá

độ tin cậy kết quả. Và thêm đặc điểm nữa khác các hệ thống khác là không

gian tìm kiếm trong Sphinx có thể đƣợc tinh chỉnh thay đổi trong quá trình

tìm kiếm để tăng hiệu suất tìm kiếm.

Ngoài ra đề nâng cao hiệu suất của kết quả nhận dạng, Sphinx con bổ

sung thêm các công cụ hỗ trợ cho việc đánh giá kết quả nhận đƣợc, đó là

thành phần đánh giá (scorer) và thành phần cắt tỉa (pruner). Nói về thành phần

Scorer thì nó là một module dùng để ƣớc lƣợng xác suất của trạng thái khi

cung cấp các giá trị mật độ trạngthái xuất hiện. Khi thành phần quản lý tìm

kiếm yêu cầu đánh giá điểm số cho một trạng thái, nó sẽ gọi đến thành phần

Scorer, nó sẽ phân tích các thông tin đặc trƣng của trạng thái đó rồi áp dụng

các phép toán để tính điểm số.

Page 38: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

33

5

XÂY DỰNG CHƢƠNG TRÌNH

DEMO NHẬN DẠNG GIỌNG NÓI

TIẾNG VIỆT ĐIỀU KHIỂN XE LĂN

Page 39: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

34

5.1. Cài đặt Sphinx:

5.1.1. Chuẩn bị hệ điều hành

Linux là mô trƣờng hệ điều hành thích hợp để cài đặt Sphinx và thực

hiện huấn luyện. Trong các hệ điều hành Linux thì Ubuntu đƣợc xem là hệ

điều hành phổ biến nhất. Sphinx dễ dàng đƣợc cài đặt trên Ubuntu. Sau khi

huấn luyên, các vecto đặc trƣng đƣợc đƣa vào bộ ngôn ngữ cùng với thông số

-hmm và bộ từ điển –dict có đƣợc trong quá trình huấn luyện. Sau đó, mô

hình này đƣợc đƣa vào hệ điều hành Window 7 để thực hiện nhận dạng tiếng

nói.

5.1.2. Chuẩn bị các gói cài đặt Sphinx:

Các gói bao gồm:

Pocketsphinx: một thƣ viện nhận dạng viết bằng C

Sphinxbase: một gói thƣ viện nền, hỗ trợ các thƣ viện cần thiết

cho các gói khác.

Sphinx4: gói hỗ trợ nhận dạng viết bằng Java

CMUclmtk: bộ công cụ xây dựng mô hình ngôn ngữ.

Sphinxtrain: Bộ công cụ huấn luyện mô hình ngữ âm.

Các gói cài đặt có thể download tại trang chủ của CMU Sphinx.

5.2. Cài đặt và huấn luyện:

Một hệ thống nhận dạng hoạt động cần tối thiểu 3 thông số là -hmm, -lm và –

dict, trong đó:

Page 40: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

35

Thông số -hmm: là thông số có đƣợc bằng cách xây dựng mô hình ngữ

âm, thông số này chứa trong file có các tập tin huấn luyện

model_parameters\huanluyen.cd_cont_200.

Thông số -lm: có đƣợc bằng cách xây dựng mô hình ngôn ngữ.

Thông số -dict: thƣ viện chứa các từ cần huấn luyện

Qúa trình hoạt động của hệ nhận dạng trong Sphinx nhƣ sau:

Đầu tiên, tín hiệu tiếng nói qua micro sẽ đƣợc đƣa vào bộ ngoại vi, ở đây

tín hiệu đƣợc tham số hóa thành một dãy đặc trƣng và chuyển vào cho bộ giải

mã. Bộ ngôn ngữ chuyển đổi các mô hình ngôn ngữ, cách phát âm trong từ

điển và thông tin cấu trúc âm trong mô hình âm học vào một đồ thị tìm kiếm

trong bộ giải mã. Bộ giải mã sẽ xác định chuỗi đặc trƣng gần giống nhất trong

đồ thị tìm kiếm so với đặc trƣng tiếng nói đƣợc cung cấp bởi bộ ngoại vi và

phát sinh kết quả.

Page 41: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

36

5.2.1. Xây dựng mô hình ngôn ngữ:

Mô hình ngôn ngữ:

Từ file text đƣợc đƣa vào là tập hợp những từ cần huấ luyện, bộ từ vựng

đƣợc tạo ra bởi công cụ CMUcmlk bằng 2 lệnh: text2wfreq và wfreq2vocab.

Mô hình ngôn ngữ đƣợc tạo ra có dạng .arpa. Để tạo ra mô hình ngôn

ngữ cần 2 lệnh: text2idngram và idngram2lm.

Page 42: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

37

Xong bƣớc này ta có thông số cần thiết thứ nhất để đƣa vào bộ ngôn ngữ

là –lm.

5.2.2. Xây dựng mô hình ngữ âm:

Mô hình ngữ âm:

Xong bƣớc này ta sẽ thu đƣợc file –hmm chính là thông số cần thiết thứ

hai đƣa vào bộ ngôn ngữ.

5.2.3. Xây dựng từ diển:

Từ điển đƣợc chứa trong file huanluyen.dict. Nó chứa nội dung về cách

phát âm của một từ trong bộ huấn luyện.

Mỗi dòng trong tập tin này là cách định nghĩa cách đọc của một từ.

Trong tiếng Việt, cách đọc và cách viết một từ gần nhƣ là gắng liền với

nhau. Do đó ta xây dựng bộ từ điển theo nhƣ cách đánh Telex trong Unikey

thƣờng gặp.

Page 43: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

38

Ví dụ: từ “quay trái” trong bộ từ điển đƣợc định nghĩa cách đọc nhƣ sau:

<s> QUAY TRASI </s>

Xong bƣớc này ta đƣợc thông số cuối cùng là –dict để đƣa vào bộ ngôn

ngữ.

5.3. Kết quả thử nghiệm:

Vì lần đầu tiên làm quen với công cụ và chƣa có nhiều kinh nghiệm

trong việc thu âm và huấn luyện nên thời gian để xây dựng chƣơng trình

demo không nhiều lắm. Mặc dù vậy, chƣơng trình đã nhận dạng đƣợc một số

câu lệnh rất chính xác nhƣ:

QUAY TRÁI

QUAY PHẢI

TRỞ LẠI

QUAY TRÁI CHÍN MƢƠI ĐỘ

QUAY PHẢI CHÍN MƢƠI ĐỘ

TRỞ LẠI CHÍN MƢƠI ĐỘ

Số lƣợng câu đúng: đạt trên 80 %

Số lƣợng từ đúng: trên 95 %

Page 44: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

39

6

KẾT LUẬN

Page 45: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

40

6.1. Kết quả đạt được

Sau quá trình tìm hiểu và nghiên cứu phƣơng pháp nhận dạng giọng nói

Tiếng Việt, đồ án này đã đạt đƣợc những mục tiêu đề ra nhƣ sau:

a. Tìm hiểu các khái niệm có liên quan đến hệ nhận dạng tiếng nói, từ đó hiểu

và vận dụng đƣợc một số yếu tố quan trọng trong việc sử dụng công cụ hỗ

trợ.

b. Tìm hiểu phƣơng pháp cài đặt công cụ hỗ trợ nhận dạng giọng nói SPHINX.

Trong đó bao gồm việc chi tiết hóa từng bƣớc cài đặt và thực hiện. Các bƣớc

xây dựng mô hình huấn luyện.

c. Xây dựng mô hình mô phỏng nhận dạng giọng nói Tiếng Việt trên máy tính

sử dụng mô hình âm học đƣợc huấn luyện bằng công cụ Sphinx, chƣơng

trình nhận dạng các câu lệnh cơ bản trong điều khiển xe lăn thông minh.

6.2. Những hạn chế:

Do đây là một đề tài tƣơng đối khó, mặt khác những kiến thức về xử lý

tiếng nói, tín hiệu số và các mô hình toán học bản thân chƣa đƣợc trang bị từ

trƣớc mà phải tự tìm hiểu nên còn nhiều hạn chế và thiếu sót.

Thời gian làm quen với hệ điều hành UBUNTU 12.04 và xây dựng mô

hình huấn luyện mất khá nhiều thời gian nên dữ liệu huấn luyện còn tƣơng đối

hạn chế.

Bộ từ vựng còn quá ít so với tất cả các từ đơn của Tiếng Việt. Để có

đƣợc bộ từ vựng lớn hơn đòi hỏi mất rất nhiều công sức và thời gian trong

việc thu âm dữ liệu, xây dựng mô hình phiên âm chính xác.

Mô hình ngôn ngữ còn hạn chế, hệ thống nhận dạng đƣợc độ chính xác

khá cao đối với bản thân tôi. Tuy nhiên đối với ngƣời khác thì mô hình vẫn có

thể nhận dạng đƣợc nhƣng độ chính xác không cao.

Page 46: Nhận Dạng Giọng Nói Tiếng Việt Để Điều Khiển Xe Lăn Thông Minh

Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng

41

6.3. Hướng nghiên cứu và phát triển

Nhận thấy kết quả thu lại cũng khá khả quan nên với kết quả này, đồ án

này là bƣớc đệm khá tốt để hƣớng đến đề tài luận văn sắp tới:

Xây dựng bộ từ vựng, mô hình ngôn ngữ với độ chính xác cao hơn.

Mở rộng quy mô bộ từ vựng của mô hình ngữ âm, rộng rãi hơn, đa dạng

giọng nói hơn nhằm mục đích xây dựng một hệ nhận dạng tiếng nói có độ

chính xác cao với bất kì ngƣời nào.

Ứng dụng một số câu lệnh nhận dạng đƣợc để đƣa vào điều khiển xe lăn

thông minh