PHÂN TÍCH CÔNG CỤ QUAN TRỌNG HTK

Một phần của tài liệu Nghiên cứu công nghệ nhận dạng tiếng nói tiếng việt và ứng dụng (Trang 56 - 119)

3.3.1 Xử lý rút trích đặc trưng âm thanh tiếng nói

Công cụ HTK xử lý rút trích đặc trưng tiếng nói bao gồm quá trình chuyển đổi âm thanh dạng sóng sang các vector đặt trưng thể hiện bằng con số để dễ dàng trong việc xử lý tính toán, dữ liệu đầu vào của giai đoạn này tập tin âm thanh được lưu dưới định dạng file .wav và kết quả thu được là dãy các con số được sắp xếp theo dạng vector. Công cụ rút trích đặc trưng còn cho phép dữ liệu đầu vào với nhiều dạng khác nhau ví dụ như âm thanh được thu trực tiếp từ micro của máy tính, hay được chuyển qua mạng. Việc rút trích đặc trưng qua mạng được sử dụng trong đề tài này. Dữ liệu đầu ra có thể theo phương pháp rút trích đặc trưng khác nhau như LPC, hay MFCC, trong đề tài này sử dụng phương pháp MFCC.

Quá trình rút trích đặc trưng được minh họa chi tiết như hình bên dưới, trong công cụ của HTK cho dù đầu vào và tập tin âm thanh hay được đưa đến từ micro, chuyển qua mạng thì bản chất là như nhau bởi vì chúng đều quy về các mẫu âm thanh trước khi xử lý. Một mẫu âm thanh với khoảng thời gian 10-25ms được biểu diễn một vector tham số(giá trị này có thể thay đổi trong tập tin cấu hình). Toàn bộ quá trình rút trích đặc trưng được hiện qua công cụ HCopy.

Hình 3.4: xử lý mã hóa tiếng nói

3.3.2 Ước lượng tham số cho mô hình ngữ âm

Có 3 công cụ được giới thiệu sử dụng trong HTK để thực hiện ước lượng tham số cho mô hình HMM đó là HCompV, HInit, HRest. Trong đó HCompV, HInit đây là công cụ dùng để khởi tạo giá trị cho tham số mô hình. HCompV thực hiện tính toán ước lượng thông số kỳ vọng và phương sai của mỗi thành phần Gauss trong định nghĩa của mô hình markov ẩn, để chúng gần với dữ liệu huấn luyện. HInit sẽ tính toán cho các HMM mới sử dụng công thức ước lượng như thuật toán Viterbi.

3.3.3 Mô hình ngôn ngữ trong HTK

Mô hình ngôn ngữ kết hợp với mô hình ngữ âm sẽ đưa ra kết quả nhận dạng tốt hơn, ví dụ như kết quả được nhận dạng của mô hình ngữ âm là từ “học hồ“ tuy nhiên trong thực tế rất ít có từ nào như vậy, do đó khi kết hợp với mô hình ngôn ngữ cho ra kết quả là việc so sánh hai từ có khả năng nhất trong kho từ

là “học hành“ và “học hồ“ thì từ “học hành“ cho xác xuất lớn hơn và do đó kết quả chính thức của hệ thống nhận dạng là từ “học hành“.

Mô hình ngôn ngữ được biểu diễn qua mạng ngữ nghĩa cho các từ có thể nhận dạng được thông qua hệ thống, một mạng ngữ nghĩa được tập hợp theo mô hình xác xuất, tính toán từ đi trước từ đi sau theo thống kê của dữ liệu thực tế cũng như văn phạm trong câu, các đường truyền từ trạng thái này sang trạng thái kia được biểu diễn bằng hàm xác xuất cho biết khả năng xác xuất từ này sang từ kia là bao nhiều đây là cơ sở để xác định từ đúng nhất. Trong HTK có một số công cụ được sử dụng cho công việc này là HParse, HSGen, HLStats.

HParse: dùng để chuyển một tập tin văn phạm sang một mạng ngữ nghĩa và có thể xảy ra theo một trật tự nhất định.

HGen: Chuyển tập tin văn theo mạng ngữ nghĩa nhất định sang một dãy từ theo đúng trình tự.

HLStats: đọc danh sách HMM và tập phiên âm tương ứng, tính toán thống kê khác nhau từ đó phân tích dữ liệu huấn luyện ngữ âm và phát sinh các mô hình ngôn ngữ đơn giản dùng để nhận dạng.

3.4 HUẤN LUYỆN HTK

Hình 3.5: mô tả các bước huấn luyện với công cụ HTK Hình trên mô tả các bước thực hiện trong quá trình huấn luyện mô hình

GHMM, kết quả của quá trình trên cho chúng ta 2 tập tin quan trọng đó là tập tin, hmmdefs_so, tiedlist_so.(chi tiết phụ lục 1)

CHƯƠNG 4 XÂY DỰNG TỔNG ĐÀI NHẬN DẠNG YÊU CẦU BẰNG GIỌNG NÓI

4.1 MÔ TẢ BÀI TOÁN

Hình 4.1: Sơ đồ tổng quát tổng đài nhận dạng yêu cầu bằng giọng nói Tổng đài nhận dạng yêu cầu bằng giọng nói thực hiện tiếp nhận yêu cầu bằng giọng nói. Khi cần truy vấn thông tin, chỉ cần gọi đến tổng đài và nói yêu cầu cần được phục vụ, tổng đài sẽ hiểu yêu cầu đó và trả về kết quả mong muốn về người truy vấn.

4.2 CÁC THÀNH PHẦN HỆ THỐNG NHẬN DẠNG YÊU CẦU BẰNG

GIỌNG NÓI

Tổng đài nhận dạng yêu cầu bằng giọng nói sẽ gồm các phần chính như sau:

+ Hệ thống giao tiếp giữa đầu cuối điện thoại và hệ thống tổng đài, đây chính là thiết bị giao tiếp với mạng điện thoại PSTN, qua mạng.

+ Tổng đài chuyển mạch mềm Asterisk [5] giao tiếp trên giao thức mạng PSTN và giao thức SIP mạng .

+ Module nhận dạng tiếng nói tiếng việt [6] tích hợp vào hệ thống chuyển mạch mềm Asterisk

4.2.1 Sơ đồ Khối tổng quát hoạt động của tổng đài.

Hình 4.2: Sơ đồ khối hệ thống nhận dạng yêu cầu bằng giọng nói

Khối giao tiếp PSTN :

Là thiết bị giao tiếp với mạng điện thoại công cộng bao gồm các đầu cuối là điện thoại hữu tuyến và di động, chức năng chuyển đổi các tín hiệu âm thanh từ giao thức trên mạng điện thoại công cộng sang giao thức tương ứng với hệ thống chuyển mạch mềm Astersisk. Thiết bị này gồm các thiết bị giao tiếp FXO, ISDN, hay luồng trung kế số E1. Để thiết bị E1 làm việc được với Asterisk còn cần phải cấu hình phầm mềm tương ứng, sao cho tín hiệu gửi đến hệ thống hiệu quả nhất, đồng thời có thể mở rộng dễ dàng cho việc mở rộng về sau.

Hình 4.3: Thiết bị trung kế số E1 giao tiếp với mạng PSTN

Khối giao tiếp VOIP :

Đây là phần giao tiếp với các giao thức VOIP trên mạng LAN hoặc Internet, các đầu cuối điện thoại IP phone, softphone qua giao thức SIP hoặc IAX đều có thể kết nối với tổng đài và thực hiện cuộc gọi để truy vấn thông tin bằng giọng nói. Softphone là phần mềm được cài đặt trên máy tính thực hiện tất cả các chức năng giống như máy điện thoại thông thường, IP phone là thiết bị điện thoại được gắn trực tiếp vào mạng LAN kết nối với tổng đài bằng giao thức SIP hay IAX, có thể gọi đến các đầu cuối điện thoại khác hay chỉ là truy vấn thông tin trên tổng đài.

Hình 4.4 : Thiết bị đầu cuối IP Phone

Khối Tương tác Thoại IVR ( Interactive voice response ) :

Chức năng chính là cung cấp thông tin một cách tự động cho các khách hàng tuy vấn bằng điện thoại, đây là kênh giao tiếp hiệu quả bằng cách hỏi đáp trên kênh truyền điện thoại, hướng dẫn cho người truy vấn làm thế nào để truy

vấn thông tin cần quan tâm nhanh nhất. Khối IVR rất linh hoạt và uyển chuyển khi phát triển và mở rộng các dịch vụ mới, đây là cách giao tiếp mà các doanh nghiệp, công ty tin dùng cho các hoạt động sản xuất kinh doanh. Trong luận văn này IVR làm chức năng tiếp nhận yêu cầu bằng giọng nói từ người gọi và xử lý trả về kết quả tương ứng với yêu cầu đó. IVR có thể truy vấn bằng tín hiệu DTMF trên bàn phím số của máy điện thoại hoặc bằng giọng nói trực tiếp từ người gọi, ở đây thực hiện truy vấn tương tác thoại bằng giọng nói.

Khối Nhận dạng tiếng nói ( Speech – To – Text ) :

Thực hiện nhận dạng tiếng nói tiếng việt [8], Khi hệ thống IVR tiếp nhận tiếng nói tiếng việt tên của tỉnh Thành Phố trên môi trường mạng viễn thông của khách hàng gọi đến tổng đài yêu cầu truy vấn thông tin, khối nhận dạng làm nhiệm vụ chuyển đổi tín hiệu âm thanh đó thành văn bản tương ứng sau đó truy vấn trả kết quả về cho hệ thống IVR, hệ thống IVR thực hiện truy vấn nội dung theo yêu cầu của khách hàng và chuyển đến khách hàng bằng tín hiệu âm thanh.

Khối truy vấn thông tin kết quả :

Thực hiện truy vấn thông tin theo yều cầu của khách hàng gọi đến, cụ thể hơn là theo yêu cầu của khối IVR, sau khi bộ nhận dạng chuyển đổi âm thanh sang dạng văn bản thực hiện hoàn tất thì khối IVR sẽ chuyển tải nội dung cần truy vấn đến khối khối truy vấn thông tin để khối này làm nhiệm vụ truy vấn tìm kiếm thông tin tương ứng sau đó trả kết quả về khách hàng đúng nội dung cần truy vấn.

4.3 NGHIÊN CỨU XÂY DỰNG CẤU HÌNH TỔNG ĐÀI GOLDEN SONG SONG

4.3.1 Giới thiệu tổng đài Asterisk

nối với các hệ thống điện thoại khác bao gồm cả mạng điện thoại analog thông thường (PSTN) và VoIP. Asterisk có đầy đủ tính năng của tổng đài PBX thương mại: hộp thư thoại, hội đàm, tương tác thoại (menu thoại)…Đặc biệt, Asterisk còn hỗ trợ nhiều giao thức VoIP như SIP và H.323, IAX hoạt động như trạm kết nối giữa các điện thoại IP và mạng PSTN. Tên Asterisk có nguồn gốc từ ký tự * được dùng trong Unix và Linux, thể hiện cho tùy chọn bất kỳ [5].

Hình 4.5: Sơ đồ tổng quát tổng đài Asterisk

Asterisk là một phần mềm mang tính cách mạng, tin cậy, mã nguồn mở và miễn phí, biến một PC rẻ tiền thông thường chạy Linux thành một hệ thống điện thoại doanh nghiệp mạnh mẽ. Astreisk là một bộ công cụ mã nguồn mở cho các ứng dụng thoại và là một server xử lý cuộc gọi đầy đủ chức năng. Asterisk là một nền tảng tích hợp điện thoại vi tính hóa kiến trúc mở. Nhiều hệ thống Asterisk đã được cài đặt thành công trên khắp thế giới. Công nghệ Asterisk đang phục vụ cho nhiều doanh nghiệp .

Phần mềm Asterisk được thiết kế dạng module. Các thành phần chức năng được thiết kế thành từng module riêng biệt và tách rời với phần chuyển mạch lõi. Một trong những “điểm son”của Asterisk là quản lí extension. Từng bước của

cuộc gọi được định nghĩa như là một ứng dụng. Ví dụ như module hệ thống tương tác thoại IVR tiếp nhận cuộc gọi và xử lý nhận dạng tiếng nói đáp ứng đúng yêu cầu sử dụng, hộp thư thoại, thu âm cuộc gọi … và nhiều ứng dụng khác. Ta có thể tạo kịch bản thực hiện gọi ứng dụng bất kỳ trên kênh bất kỳ. Ví dụ, có thể thiết lập một số extension được đổ chuông cùng lúc ở 2 kênh (có thể nối đến 2 máy điện thoại : 1 analog và 1 digital) trước khi chuyển cuộc gọi đến điện thoại di động, và sau đó chuyển qua hệ thống thư thoại.

Hiện nay Asterisk trên đà phát triển nhanh, được rất nhiều doanh nghiệp triển khai ứng dụng cho công ty của mình. Đây là xu thế tất yếu của người sử dụng điện thoại, vì các công ty đều có mạng máy tính và cần liên lạc với nhau trong công việc giữa các phòng ban hoặc chi nhánh và cần một chi phí thấp, thậm chí không phải tốn chi phí khi thực hiện các công việc trên mạng nội bộ của công ty.

Không gói gọn thông tin liên lạc trong công ty mà các ứng dụng giao tiếp với mạng PSTN hoặc mạng VoIP (như voice 777) cho phép gọi ra bất cứ số điện thoại nào có trên mạng PSTN .

Ngoài ra việc tích hợp vào các ứng dụng như CRM (Customer Relationship Management) và hệ thống Outlook làm cho khả năng ứng dụng của Asterisk linh hoạt hơn, đáp ứng nhu cầu cần thiết cho người sử dụng điện thoại .

Asterisk thoạt đầu được phát triển trên GNU/Linux nền x86(Intel), nhưng giờ đây nó cũng có thể biên dịch và chạy trên OpenBSD, FreeBSD và Mac OSX và Microsoft Windows.

4.3.2 Kiến trúc tổ chức Asterisk

Về cơ bản kiến trúc của Asterisk là sự kết hợp giữa nền tảng công nghệ điện thoại và ứng dụng điện thoại công nghệ điện thoại cho VOIP như SIP,

như T1, E1, ISDN và các giao tiếp đường truyền thoại Analog. Các ứng dụng thoại như chuyển mạch cuộc gọi, tương tác thoại, caller ID, voicemail, chuyển cuộc gọi…

Hình 4.6: Kiến trúc Asterisk

Asterisk có một số chức năng chính đóng vai trò quan trọng trong hệ thống chuyển mạch cuộc gọi. Khi khởi động hệ thống Asterisk thì chức năng Dynamic Module Loader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, các format, codec và các ứng dụng liên quan, đồng thời các hàm API cũng được liên kết nạp vào hệ thống.

Sau đó hệ thống PBX Switching Core của Asterisk chuyển sang trạng thái sẵn sàng hoạt động chuyển mạch cuộc gọi, các cuộc gọi được chuyển mạch tuỳ vào kế hoạch quay số (Dialplan) được thực hiện cấu hình trong tập tin extension.conf.

Chức năng Application Launchar để rung chuông thuê bao, quay số, định hướng cuộc gọi, kết nối với hộp thư thoại…

Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao, các chức năng được phát triển bởi cộng đồng phát triển Asterisk.

Codec Translator xác nhận các kênh nén dữ liệu ứng với các chuẩn khác nhau có thể kết hợp liên lạc được với nhau.

Tất cả các cuộc gọi định hướng qua hệ thống Asterisk đều thông qua các giao tiếp như SIP, Zaptel, IAX. Nên hệ thống Asterisk phải đảm trách nhiệm vụ liên kết các giao tiếp khác nhau đó để xử lý cuộc gọi.

Hệ thống cũng bao gồm 4 chức năng API chính

Codec translator API : các hàm đảm nhiệm thực thi và giải nén các chuẩn khác nhau như G711, GMS, G729…

Asterisk Channel API : giao tiếp với các kênh liên lạc khác nhau, đây là đầu mối cho việc kết nối các cuộc gọi tương thích với nhiều chuẩn khác nhau như SIP, IAX, H323. Zaptel…

Asterisk tập tin format API : Asterisk tương thích với việc xử lý các loại tập tin có định dạng khác nhau như Mp3, wav, gsm…

Asterisk Aplication API : bao gồm tất cả các ứng dụng được thực thi trong hệ thống Asterisk như voicemail, callerID…

Ngoài ra, Asterisk còn có thư viện Asterisk Gateway Interface (AGI, tương tự như CGI) - cơ chế kích hoạt ứng dụng bên ngoài, cho phép viết kịch bản phức tạp với một số ngôn ngữ như PHP hay Perl. Nói chung, khả năng viết các ứng dụng tùy biến rất lớn.

4.3.3 Xây dựng hệ thống tương tác thoại IVR

Ứng dụng tương tác thoại là ứng dụng thường gặp đối với bất cứ hệ thống tổng đài PBX nào. Cho phép các thuê bao tương tác với hệ thống qua các thông điệp thoại. Ví dụ khi thuê bao gọi đến sẽ có thông điệp phát ra “Hân hạnh Bạn đã gọi đến công ty ABC của chúng tôi, mời nhấn phím 1 để gặp Phòng Kinh Doanh, nhấn phím 2 gặp Phòng hỗ trợ khách hàng…”.

Hình 4.7: Hệ Thống IVR

Ứng dụng tương tác thoại được xây dựng trong tập tin extention.conf. Trong phần này sẽ trình bày từng bước xây dựng hệ thống tương tác thoại một cách dễ hiểu nhất. Khai báo trong tập tin extention.conf như sau:

[default]

exten => LAN,1,Dial(SIP/lan); exten => HAI,2,Dial(SIP/hai); [mainmenu]

exten => s,1,Answer

exten => s,n,Background(thanks) ; Phát thông điệp cảm ơn gọi đến công ty

exten => s,n,WaitExten

exten => 1,1,Goto(submenu,s,1) exten => 2,1,Hangup

[submenu]

exten => s,1,Ringing ; rung chuông trong vòng 2 giây

exten => s,n,Wait,2

exten => s,n,Background(submenuopts) ; Cảm ơn đã gọi đến phòng kinh doanh

exten => s,n,WaitExten

exten => 1,1,Goto(default,LAN,1) exten => 2,1,Goto(default,HAI,2)

Đoạn trên có thể giải thích như sau : tất cả các cuộc gọi đến đều được chuyển đến ngữ cảnh [mainmenu] trong ngữ cảnh này hàm ứng dụng Background(thanks) sẽ thực hiện phát ra thông điệp “Cảm ơn đã gọi đến công ty của chúng tôi mời nhấn phím 1 để gặp phòng kinh doanh…” sau khi thuê bao nhấn phím 1 sẽ được đưa đến ngữ cảnh [submenu] ứng với ngữ cảnh của phòng kinh doanh.

Tại ngữ cảnh phòng kinh doanh hàm ứng dụng

Background(submenuopts) sẽ phát thông điệp “Cảm ơn đã gọi đến phòng kinh doanh mời nhấn phím 1 để gặp LAN, phím 2 để gặp HẢI…” Tại đây tùy vào thuê bao nhấn phím 1 hoặc 2 sẽ được chuyển đến quay số người cần gặp

Nhận xét : Thay vì nhấn phím chúng ta có thể tích hợp bộ nhận dạng tiếng nói để điều khiển chọn danh mục bằng giọng nói thay đổi hàm ứng dụng

Một phần của tài liệu Nghiên cứu công nghệ nhận dạng tiếng nói tiếng việt và ứng dụng (Trang 56 - 119)