Với vai trò phục vụ khá thiết thực trong cuộc sống của hệ thống trả lời tự độngnhư vậy, chính là lý do để chúng em lựa chọn đề tài “Nghiên cứu và xây dựng hệthống Voice Server ứng dụng c
Trang 1LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn khoa Công nghệ Thông tin trường Đại họcKhoa Học Tự Nhiên đã tạo điều kiện thuận lợi và giúp đỡ chúng em hoàn thành tốtkhóa luận tốt nghiệp này
Chúng em xin chân thành cảm ơn thầy Vũ Hải Quân đã tận tình chỉ dạy, giúp
đỡ chúng em trong quá trình làm khóa luận
Chúng em xin chân thành cảm ơn các Thầy, Cô khoa Công nghệ Thông tin đãtận tình chỉ dạy, trang bị kiến thức nền tảng cho chúng em trong suốt những nămhọc qua
Chúng con xin chân thành cảm ơn ông bà, cha mẹ đã tạo điều kiện thuận lợicho chúng con hoàn thành khóa luận này
Chúng em xin cảm ơn những Anh, Chị đi trước đã để lại những kiến thức rất
bổ ích để chúng em tiếp nối Cám ơn các Anh, Chị và các bạn trong nhóm nghiêncứu “tiếng nói Phương Nam” đã giúp đỡ chúng em rất nhiều trong quá trình làmkhóa luận
Mặc dù chúng em đã cố gắng hoàn thành khóa luận với khả năng cho phépnhưng chắc chắn sẽ không tránh khỏi những sai xót Kính mong Thầy, Cô và cácbạn góp ý để khóa luận có thể được hoàn thiện hơn
Nhóm thực hiệnNguyễn Thị Mỹ Dung – Dương Chí Trưởng
03/2010
Trang 2Ngày nay, công nghệ kết hợp giữa máy tính và mạng điện thoại (CTI –Computer Telephony Integration) đang được phát triển rộng rãi làm giảm đáng kểchi phí nhân công cho các dịch vụ trả lời thông tin Ví dụ việc sử dụng điện thoại đểtruy cập các dịch vụ tự động như kiểm tra tài khoản ngân hàng, lịch chuyến bay, tracứu thông tin về điểm thi đại học, các thông tin về thời tiết, giá vàng, giá chứngkhoán… không còn là điều mới mẻ Người dùng có thể gửi tin nhắn hoặc gọi điện
thoại trực tiếp tới hệ thống và hệ thống sẽ tự động đáp lại người dùng những thông
tin mà người dùng cần biết Quá trình xử lý thông tin là hoàn toàn tự động và ngườidùng có thể thực hiện truy vấn thông tin mọi lúc, mọi nơi thông qua điện thoại haythiết bị cầm tay
Với vai trò phục vụ khá thiết thực trong cuộc sống của hệ thống trả lời tự độngnhư vậy, chính là lý do để chúng em lựa chọn đề tài “Nghiên cứu và xây dựng hệthống Voice Server ứng dụng cho các dịch vụ cung cấp thông tin qua mạng điệnthoại” cho khóa luận tốt nghiệp của mình
Trang 3MỤC LỤC
Chương 1 MỞ ĐẦU 6
1.1 Nhu cầu thực tế và lý do thực hiện đề tài: 6
1.2 Mục tiêu của đề tài: 6
1.3 Nội dung khoá luận: 7
Chương 2 TỔNG QUAN 8
2.1 Giới thiệu sơ lược việc truy cập thông tin qua âm thanh 8
2.2 Thế nào là một ứng dụng âm thanh (Voice Application) 9
2.3 Khái niệm Voice Server 10
2.4 Cấu trúc Voice Server 11
2.4.1 Công cụ phát triển ứng dụng 11
2.4.2 Bộ nhận dạng tiếng nói tự động(Automatic Speech Regconition) 12
2.4.3 Bộ tổng hợp tiếng nói(Text-To-Speech) 12
2.4.4 Bộ kết nối giữa ứng dụng và hệ thống điện thoại 13
2.5 Hệ thống trả lời điện thoại tự động 14
2.5.1 Khái niệm 14
2.5.2 Các dịch vụ điển hình của IVR 16
2.5.3 Các ưu điểm của hệ thống IVR 17
Chương 3 CƠ SỞ LÝ THUYẾT 18
3.1 Công nghệ TAPI 18
3.1.1 TAPI là gì? 18
3.1.2 Lịch sử phát triển của TAPI 20
3.1.3 TSP là gì? 22
3.1.4 Mối quan hệ giữa TSP và phần cứng TAPI 22
3.1.5 Khả năng tương thích ngược và tới của TAPI và TSP 22
3.1.6 Kiến trúc TAPI 24
3.1.7 Mô hình của TAPI 2.x 24
3.1.8 TAPI 3.0 và các cải tiến so với TAPI 2.x 26
3.2 Hệ thống tổng hợp tiếng nói TTS (Text-To-Speech) 33
3.2.1 Giới thiệu về hệ thống tổng hợp tiếng nói 33
3.2.2 Phân tích văn bản 41
3.2.3 Tổng hợp bằng phương pháp ghép nối 45
Chương 4 PHÂN TÍCH THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG QUA ỨNG DỤNG MINH HỌA 56
4.1 Sơ đồ và nguyên lý hoạt động 56
4.1.1 Các thành phần của hệ thống 56
4.1.2 Nguyên lý hoạt động 58
4.2 Thiết kế và xây dựng chương trình 59
4.2.1 Xây dựng Mô đun IVR 59
4.2.2 Mô đun TTS 70
4.3 Cài đặt, hướng dẫn sử dụng 70
Trang 45.3 Phạm vi và giới hạn 74 Tài liệu tham khảo 75
Trang 5DANH MỤC CÁC BẢNG
Bảng 1 Danh sách các người dùng 60 Bảng 2 Danh sách các Use Case 61 Bảng 3 Giải thích các điều khiển trên màn hình chính 66
Trang 6Hình 2.2 Các thành phần của Voice Server 11
Hình 2.3 Quá trình xử lý nhận dạng tiếng nói 12
Hình 2.4 Quá trình tổng hợp tiếng nói 13
Hình 2.5 Mô hình hệ thống IVR 15
Hình 3.1 Kiến trúc TAPI 24
Hình 3.2 Mô hình thiết kế TAPI 25
Hình 3.3 Kiến trúc TAPI 3.0 27
Hình 3.4 Các loại địa chỉ của TAPI 3.0 29
Hình 3.5 Phương thức truy vấn loại địa chỉ của TSP 29
Hình 3.6 Các giao thức của TAPI 3.0 30
Hình 3.7 Mô hình đối tượng chủ yếu của TAPI 3.0 32
Hình 3.8 Hệ thống Text-To-Speech đơn giản 34
Hình 3.9 Quy trình tổng hợp bằng phương pháp ghép nối-lựa chọn đơn vị 47
Hình 3.10 Minh họa quá trình chọn cụm từ thích hợp 49
Hình 3.11 Tính chi phí Unit 51
Hình 3.12 Tính trực tiếp Connection Cost 52
Hình 3.13 Tính gián tiếp Connection Cost 52
Hình 4.1 Sơ đồ hệ thống ứng dụng 56
Hình 4.2 Mô hình cơ sở dữ liệu 59
Hình 4.3 Sơ đồ tổ chức kịch bản ứng dụng 64
Hình 4.4 Màn hình giao diện chính 65
Hình 4.5 Màn hình ghi chú trên giao diện chính 67
Hình 4.6 Màn hình khi nhấn chuột vào icon của màn hình chính 67
Hình 4.7 Màn hình khi có cuộc gọi đến 67
Hình 4.8 Màn hình xem thông tin thiết bị 68
Hình 4.9 Màn hình xem nhật ký cuộc gọi 68
Hình 4.10 Màn hình xem thông tin chứng khoán 69
Hình 4.11 Màn hình thông tin nhóm 69
Hình 4.12 Cài đặt bước 1 70
Hình 4.13 Cài đặt bước2 71
Hình 4.14 Cài đặt bước 3 71
Hình 4.15 Cài đặt bước 4 72
Hình 4.16 Cài đặt bước 5 72
Trang 7Chương 1 Mở đầu
Chương 1 MỞ ĐẦU
1 Nhu cầu thực tế và lý do thực hiện đề tài:
Chắc hẳn bạn đã từng bối rối trước những giọng nói dễ thương giống như
“Để có các thông tin về… hãy bấm phím…” khi bạn gọi đến những trung tâmchăm sóc khách hàng của một công ty, tập đoàn hay một tổng đài điện thoại nào
đó Trên thực tế, “cô gái” đó là một máy tính với các chương trình tự động thựchiện giao tiếp với người gọi thay cho điện thoại viên Còn bạn thì đang thực hiệncông việc truy vấn một hệ thống trả lời tự động với kịch bản đã được xây dựngsẵn qua các đoạn âm thanh được ghi âm trước hay thông qua một mô đun đểchuyển các đoạn văn bản sang dạng âm thanh tương ứng gọi là bộ tổng hợptiếng nói TTS (Text-To-Speech)
Tới nay, việc sử dụng máy tính để trả lời các cuộc điện thoại đã không còn
xa lạ Ở các nước phát triển như Nhật, Mỹ, Hàn Quốc đã có tới 85% yêu cầu củangười gọi được đáp ứng bởi các hệ thống Voice Server Tại Việt Nam, việc sửdụng hệ thống Voice Server cũng đã được sử dụng ở các công ty, tập đoàn viễnthông lớn như Mobifone, Vinaphone, Viettel…
Hệ thống hoàn toàn có thể áp dụng vào mọi lĩnh vực của đời sống xã hội,như trong bệnh viện, trường học, hành chính công, ngân hàng, dịch vụ giải trí,
du lịch, vận chuyển hành khách, cung cấp thông tin kinh tế - xã hội Khi cácứng dụng của hệ thống ngày càng được xã hội hóa thì người dân cũng như cácdoanh nghiệp sẽ càng được hưởng lợi ích nhiều hơn từ nó
Với những lợi ích thiết thực như vậy, nhóm chúng em đã cố gắng thực hiện
đề tài: “Nghiên cứu và xây dựng hệ thống Voice Server ứng dụng cho các dịch
vụ cung cấp thông tin qua mạng điện thoại” cho khóa luận tốt nghiệp của mình
2 Mục tiêu của đề tài:
Xây dựng ứng dụng cung cấp thông tin qua mạng điện thoại Cụ thể là hệ
Trang 8thống sẽ cung cấp thông tin ở mức cơ bản về tỷ giá cổ phiếu và thông tin thịtrường chứng khoán Áp dụng bộ tổng hợp tiếng nói Text-To-Speech vào hệthống, bộ Text-To-Speech này tự động chuyển nội dung văn bản thành âm thanhtương ứng.
3 Nội dung khoá luận:
Nội dung khoá luận gồm 5 chương:
Chương 1 Mở đầu: Trình bày nhu cầu thực tế, lý do thực hiện đề tài và
Trang 9Chương 1 Mở đầu
Trang 10TỔNG QUAN
4 Giới thiệu sơ lược việc truy cập thông tin qua âm thanh
Ngày nay với sự gia tăng khả năng thực hiện công việc không cần sự trợ giúpcủa các thiết bị hỗ trợ như chuột hay bàn phím, kỹ thuật xử lý âm thanh đã thayđổi cách con người tương tác với hệ thống Hệ thống không còn bó buộc trongcách thức tương tác truyền thống (ví dụ: bấm phím trên điện thoại) mà chuyểnsang tương tác trực tiếp bằng giọng nói
Trong môi trường kinh tế cạnh tranh, các ứng dụng dần dần đã chuyển sangtích hợp tính năng tương tác âm thanh Việc ứng dụng và khách hàng có thểtương tác với nhau thông qua âm thanh không có nghĩa là loại bỏ giao diện đồhọa truyền thống mà nó cung cấp thêm một cách truy cập thông tin và dịch vụtiện lợi, tự nhiên hơn Mặc dù, nội dung thông tin cung cấp qua điện thoại cóthay đổi so với các giao diện truyền thống (ví dụ: Một danh sách đầy đủ các tùychọn có thể xuất hiện trong các ứng dụng trực quan nhưng qua điện thoại thì cáctùy chọn này có thể giảm đi)
Một số ứng dụng thương mại đòi hỏi sự tương tác giữa khách hàng và hệthống với số lượng lớn, có thể tích hợp tính năng tương tác âm thanh (hệ thốngIVRs) Ví dụ, khách hàng có thể truy vấn thông tin từ cơ sở dữ liệu Tra cứu số
dư tài khoản, thông tin dự báo thời tiết, tỷ giá cổ phiếu hay danh sách các bộphim sắp chiếu từ một hệ thống tương tác sử dụng tiếng nói (IVRs) của mộttrung tâm liên lạc (contract center) là những ví dụ phổ biến của các ứng dụng hỗtrợ âm thanh Thông thường loại ứng dụng này hướng dẫn khách hàng thứ tự cácbước phải làm bằng cách phát ra các chỉ dẫn, lời nhắc thông qua các tập tin âmthanh ghi âm trước hoặc qua bộ tổng hợp tiếng nói Text-To-Speech nếu nộidung không cố định Khách hàng dùng lời nói cung cấp thông tin cho hệ thống,
hệ thống xử lý thông tin, truy xuất cơ sở dữ liệu rồi gửi phản hồi thông tin dướidạng âm thanh tới khách hàng
Trang 11Chương 2 Tổng quan
Ngoài việc tra cứu thông tin, ứng dụng dạng này còn được sử dụng phổ biếntrong các giao dịch trực tuyến như mua bán cổ phiếu, chuyển tiền giữa các tàikhoản Bước đầu tiên, ứng dụng chứng thực khách hàng thông qua bộ xử lý địnhdanh và sau đó sử dụng các tập tin âm thanh hướng dẫn khách hàng cung cấpthông tin (ví dụ: tài khoản gửi và tài khoản nhận để thực hiện thao tác chuyểntiền) Hệ thống phát ra những chỉ dẫn, lời nhắc và những tùy chọn được ghi âmtrước hay qua bộ phận Text-To-Speech và khách hàng cũng tương tác với hệthống cũng bằng giọng nói tự nhiên Một khi dữ liệu đã được tập hợp và kiểmtra hợp lệ, hệ thống thực hiện việc chuyển tiền và thông báo kết quả cho kháchhàng
5 Thế nào là một ứng dụng âm thanh (Voice Application)
Là ứng dụng có thể thực hiện tương tác giữa máy tính và con người bằng âmthanh nó cung cấp cho người dùng khả năng truy cập thông tin bằng âm thanh
Nó có thể tạo nên những ứng dụng thương mại tương tác với khách hàng bằng
âm thanh thay cho tương tác truyền thống bằng phím và chuột
Ứng dụng âm thanh có thể được cài đặt trên hệ thống cục bộ hoặc từ xa vàngười dùng có thể tương tác với hệ thống bằng các thiết bị cầm tay như điệnthoại
Một ứng dụng âm thanh tiêu biểu sẽ gồm các tương tác sau:
Khách hàng dùng điện thoại gọi vào hệ thống, hệ thống tự động trả lờicuộc gọi đồng thời thực thi các ứng dụng tương ứng khác Ứng dụng sẽ phát racâu chào và thông tin cần thiết để hướng dẫn cho khách hàng
Ứng dụng có thể chờ đáp ứng trong một khoảng thời gian Người gọi
có thể tương tác với hệ thống bằng cách nói trực tiếp yêu cầu hoặc có thể thựchiện thông qua các phím trên điện thoại
Trang 12 Hệ thống sẽ xử lý các yêu cầu tương ứng và hồi đáp cho khách hàng.
Ví dụ, nó có thể cập nhật thông tin trong cơ sở dữ liệu hay truy xuất thông tin vàphát thông tin đó cho người gọi dưới dạng âm thanh
Khách hàng có thể kết thúc cuộc gọi bất cứ lúc nào bằng cách gácđiện thoại hoặc chỉ định tương tác đã kết thúc(bằng phím hay giọng nói)
6 Khái niệm Voice Server
Voice Server là một nền tảng xử lý âm thanh Nó là nền tảng then chốt trongnhiều ứng dụng âm thanh khác nhau như:
Media Gateway
Hệ thống trả lời tự động (IVR)
Hộp thư / tin nhắn thoại (Voice mail/message)
Hội nghị thoại (Audio Conference)
Fax Messaging
Hình 2.1 Mô tả Voice Server trong việc điều hành một yêu cầu của khách hàng
Voice Server cung cấp những tính năng xử lý âm thanh một cách khái quát
và tổng quan như là chuyển mạch (switching), thu/phát (record/play), nhận tín
Trang 13Chương 2 Tổng quan
hiệu DTMF (Dual-tone multi-frequency), đàm thoại và gởi/nhận fax Nhữngchức năng khái quát này cho phép ứng dụng phát triển mà không phụ thuộc vàomôi trường truyền âm thanh, phần cứng và hệ điều hành Nó cũng có thể chuyểnđổi môi trường ứng dụng từ mạng truyền thông này sang mạng truyền thôngkhác một cách linh hoạt Ví dụ, từ mạng TDM (Time-Division Multiplexing)sang VoIP (Voice over IP)
7 Cấu trúc Voice Server
Hình 2.2 Các thành phần của Voice Server
7.1 Công cụ phát triển ứng dụng
Công cụ phát triển ứng dụng phụ thuộc vào thiết bị kết nối giữa ứngdụng và hệ thống điện thoại Mỗi thiết bị sẽ cung cấp một tập các lệnh đặctrưng để giao tiếp với ứng dụng
Cụ thể hơn, hệ thống mà chúng tôi sẽ xây dựng sử dụng thiết bị cơbản nhất là modem có hổ trợ âm thanh và công cụ dùng phát triển ứng dụng
là Telephony API
Sử dụng các tập lệnh trong thư viện TAPI 3.0 được cung cấp bởi hệđiều hành Windows để tương tác và điều khiển thiết bị, để trao đổi thôngtin(tín hiệu, âm thanh) giữa hệ thống và người gọi qua hệ thống điện thoại
Trang 147.2 Bộ nhận dạng tiếng nói tự động(Automatic Speech Recognition)
Bộ nhận dạng tiếng nói thực chất là một bộ phần mềm tự động chuyểntín hiệu tiếng nói thành dạng văn bản mà đơn vị cơ sở của nó là từ Các từnhận dạng được có thể là kết quả cuối cùng cho các ứng dụng như điều khiển
hệ thống bằng giọng nói, trả lời điện thoại tự động Chúng cũng có thể lànhững kết quả trung gian, đóng vai trò là đầu vào cho những chương trình xử
lí ngôn ngữ tiếp theo như dịch máy, tìm kiếm thông tin…
Hình 2.3 Quá trình xử lý nhận dạng tiếng nói
Như mô tả trong hình 2.3, con người sẽ quyết định chuỗi từ định nói Sau
đó bộ phận phát âm sẽ sinh ra các tín hiệu giọng nói ở dạng sóng âm Dạngsóng âm này là đầu vào cho thành phần xử lí tín hiệu số của hệ thống nhậndạng Cuối cùng thành phần giải mã sẽ chuyển các tín hiệu ngữ âm này sangdạng chuỗi từ sao cho gần giống với chuỗi từ mà ta nói ban đầu nhất
7.3 Bộ tổng hợp tiếng nói(Text-To-Speech)
Bộ tổng hợp tiếng nói là bộ phần mềm chuyên dụng chuyển đổi chuỗi ký
tự thành âm thanh với nội dung tương ứng Các ứng dụng của tổng hợp tiếng
Trang 15chuẩn hoá văn bản đầu vào thành một dạng chuẩn để có thể phát âmđược.
Tổng hợp tiếng nói (tổng hợp mức thấp): tạo ra tiếng nói từkết quả của phần phân tích văn bản
7.4 Bộ kết nối giữa ứng dụng và hệ thống điện thoại
Các thiết bị như modem, CTI, Switch, Dialogic Card được sử dụng trong
hệ thống Voice Server, với nhiệm vụ là kết nối giữa ứng dụng và hệ thốngđiện thoại
Trang 16Cụ thể là để điều chế sóng tín hiệu tương tự nhau để mã hóa tín hiệu số,
và giải điều chế tín hiệu mang để giải mã tín hiệu số Một thí dụ quen thuộcnhất của modem băng tầng tiếng nói là chuyển tín hiệu số '1' và '0' của máytính thành âm thanh mà nó có thể truyền qua dây điện thoại của Plain OldTelephone Systems (POTS), và khi nhận được ở đầu kia, nó sẽ chuyển âmthanh đó trở về tín hiệu '1' và '0'
8 Hệ thống trả lời điện thoại tự động
Công nghệ CTI (Computer Telephony Integration) ra đời đã giảm đáng kểchi phí nhân công cho các dịch vụ trả lời thông tin Trên cơ sở phần cứng có khảnăng thao tác với cuộc gọi như nhấc máy, đặt máy, quay số, phát âm thanh, ghilại âm thanh, chuyển thoại, kết hợp với những công nghệ tiên tiến như tổng hợptiếng nói, phân tích và nhận dạng tiếng nói, hệ thống trả lời tự động có thể thaythế rất nhiều nhân viên trực tổng đài để trả lời thông tin phổ biến qua các thaotác bấm phím số hoặc ra lệnh bằng giọng nói
Trang 17Chương 2 Tổng quan
Hình 2.5 Mô hình hệ thống IVR
Hệ thống IVR cho phép khách hàng có thể truy cập thông tin của một tổchức thông qua việc sử dụng bàn phím điện thoại để “ nói chuyện” hoặc nóitrực tiếp bằng giọng nói, và IVR “nghe” các phím bấm hoặc nhận dạng giọngnói đó rồi đọc lại cho khách hàng các thông tin được yêu cầu
Nếu hệ thống cần cung cấp thông tin động, thông tin không cố định thìphải sử dụng bộ tổng hợp tiếng nói(TTS) để tổng hợp thành các tập tin âmthanh Nếu hệ thống chỉ cung cấp các chỉ dẫn hay những thông tin cố định thìchỉ cần ghi âm trước nội dung rồi đáp ứng người gọi Ví dụ, dạng tổng đàiVina 900 trong thực tế dùng để nạp tiền điện thoại trả trước cung cấp các chỉdẫn được ghi âm trước và nhận các con số được cung cấp từ điện thoại vàsau đó thao tác với cơ sở dữ liệu Nhưng nếu là hệ thống cung cấp thông tin
tỷ giá cổ phiếu mà nhóm sẽ xây dựng với nội dung luôn được cập nhật thìngoài các câu hướng dẫn được ghi âm trước, hệ thống phải sử dụng thêm bộphận tổng hợp tiếng nói(TTS) để tổng hợp nội dung thay đổi cung cấp chokhách hàng
Trang 18hàng lấy thông tin về tài khoản được cập nhật ngay thời điểm hiện tại (24 giờtrong ngày) mà không phải giao dịch trực tiếp với một nhân viên chăm sóckhách hàng nào Hệ thống thông tin tự động sẽ bao gồm những chức năngnhư: là nơi những thông tin về tài khoản khách hàng có thể được đưa ra mộtcách tự động theo từng lĩnh vực phù hợp với yêu cầu của khách hàng Người
sử dụng chỉ việc chọn loại thông tin cần biết và nhận thông tin đó bằng giọngnói được ghi âm sẵn hoặc qua bộ TTS (Text-To-Speech) trong hệ thống
Công nghệ IVR cũng có thể được sử dụng vào mục đích thu thập thông tin,
ví dụ như những cuộc khảo sát qua điện thoại Người sử dụng sẽ được hướngdẫn để trả lời những câu hỏi bằng cách nhấn phím số trên điện thoại hoặcthông qua giọng nói
8.2 Các dịch vụ điển hình của IVR
Bưu điện: Hộp thư thông tin, hộp thư thoại, quà tặng âm nhạc, báo
thức, báo máy hỏng tự động, bình chọn, dự đoán…
1900xxxx: Các dịch vụ giải trí truyền hình, trò chơi truyền hình (ví
dụ: Hugo), bình chọn ca sĩ, dự đoán kết quả bóng đá qua điện thoại
và tin nhắn SMS
Ngân hàng/Chứng khoán: Trạng thái tài khoản, thanh toán, chuyển
khoản, kích hoạt tài khoản, thẻ tín dụng, tỷ giá, lãi suất
Vận tải/Hành khách: Tra cứu chuyến, giá vé, số ghế, đặt chỗ.
Quan hệ khách hàng: Nghiên cứu thị trường, điều tra nhu cầu tiêu
dùng
Giáo dục/Nghề nghiệp: Đăng ký tuyển dụng, tìm việc, đăng ký nhập
học, thời khóa biểu, lịch thi, điểm thi, điểm danh, thông báo, thôngtin trợ giúp
Bảo hiểm: Thông tin chính sách, danh mục đại lý, yêu cầu bảo hiểm,
thanh toán phí
Trang 19Chương 2 Tổng quan
Bán hàng: Đặt hàng, thanh toán bằng thẻ tín dụng, tra cứu thông tin
hàng, tra cứu trạng thái đặt hàng và chuyển hàng
8.3 Các ưu điểm của hệ thống IVR
Giúp tự động hóa cung cấp thông tin, hỏi đáp
Mở ra kênh giao tiếp khách hàng mới một cách hữu hiệu
Đem lại nhiều lợi ích và doanh thu cho đơn vị sử dụng
Đem lại các giá trị mới, sự thuận tiện và tiện ích cho khách hàng,nâng cao hình ảnh thương hiệu
Đa dạng hóa các dịch vụ cung cấp thông tin và chăm sóc kháchhàng
Trang 20Chương 2 CƠ SỞ LÝ THUYẾT
Để liên kết máy tính và mạng điện thoại ta cần phải có một thiết bị cho phép nốighép hai loại giao thức này với nhau Chúng em đã sử dụng một Modem quay số có
hổ trợ lập trình tương tác âm thanh để kết nối trực tiếp máy tính và một đường dâyđiện thoại cố định Modem giao tiếp với máy tính dựa trên nền tảng TAPI(Telephony Application Programming Interface) được Microsoft cung cấp cùng với
hệ điều hành Windows TAPI dùng để chia sẻ các thiết bị điện thoại dùng cho cácứng dụng chạy trên Windows
Khi người dùng gọi điện đến hệ thống, người dùng có thể nhấn phím trên điệnthoại hoặc bằng giọng nói để nghe các thông tin được yêu cầu Nếu người dùng sửdụng cách nhấn phím thì hệ thống sẽ nhận tín hiệu phím nhấn, sau đó sẽ truy vấn cơ
sở dữ liệu và lấy về các thông tin cần thiết ở dạng chuỗi ký tự, sau đó chuỗi ký tựnày sẽ được Mô đun TTS(Text-To-Speech) chuyển thành âm thanh để trả lời chongười dùng Nếu người dùng sử dụng giọng nói thì hệ thống sẽ chuyển nội dung ghi
âm được tới Mô đun ASR(Automatic Speech Recognition), Mô đun ASR phân tích,nhận dạng giọng nói rồi chuyển thành chuỗi ký tự Sau đó, hệ thống sẽ truy vấn cơ
sở dữ liệu và lấy về thông tin cần thiết ở dạng chuỗi ký tự Thông qua Mô đun To-Speech chuyển chuỗi ký tự này thành âm thanh để trả lời người dùng Trongchương này chúng em sẽ trình bày lý thuyết cơ sở về công nghệ TAPI, công nghệtổng hợp giọng nói
Text-9 Công nghệ TAPI
9.1 TAPI là gì?
TAPI (Telephony Application Programming Interface) là một giao diệnlập trình chuẩn có thể làm cho bạn và máy tính “nói chuyện” với nhau quađiện thoại Được phát triển bởi Microsoft và Intel, TAPI được tích hợp trong
hệ điều hành Windows 95/98 và Windows NT và các hệ điều hành đồ họa
Trang 21Chương 3 Cơ sở lý thuyết
sau này Sử dụng TAPI, các lập trình viên có thể tận dụng các hạ tầng hệthống điện thoại khác nhau bao gồm: PSTN (Public Switching TelephoneNetwork), ISDN (Integrated Services Digital Network) hay PBX (PrivateBranch Exchange) mà không cần hiểu chi tiết về chúng Mỗi nhà cung ứngphần cứng cho hệ thống điện thoại (ví dụ: modem hay ISDN card) cung cấpmột driver phần mềm đặt trưng để tương tác với phần cứng
TAPI mở ra khả năng cho các ứng dụng chạy trên Windows có thể chia
sẽ các thiết bị truyền thông với nhau và cung cấp khả năng đa phương tiệntrên một nền tảng rộng lớn của phần cứng
Phần cứng được hỗ trợ bao gồm card âm thanh và đồ họa, modem,đường dây ISDN, mạng ATM và máy quay phim Với chúng, bạn có thểtruyền thông qua các kết nối trực tiếp đến máy tính cục bộ, đường dây điệnthoại, mạng LANs, mạng WANs và cả Internet
Với việc thực hiện và nhận các cuộc gọi, chương trình có thể dùngTAPI để cung cấp các tính năng truyền thông tiên tiến như định danh ngườigọi, định tuyến cuộc gọi, thư thoại, và hội thảo video Các chương trìnhtruyền thông có thể định danh người gọi, tự động gọi lại và hiển thị thông tincủa người gọi, và thậm chí có thể ưu tiên hay chuyển hướng cuộc gọi dựatrên thông tin khách hàng
Với TAPI, khả năng cung cấp các tiêu chuẩn để các chương trình truyềnthông có thể điều khiển các tính năng của dữ liệu, fax và các cuộc gọi tươngtác âm thanh:
o TAPI cung cấp tính năng quản lý tất cả tín hiệu giữa máy tính vàmạng điện thoại, bao gồm những tính năng cơ bản như: quay số, trảlời cuộc gọi và trì hoãn cuộc gọi
Trang 22o TAPI bao gồm những tính năng phụ trợ được tìm thấy trong tổng đài,ISDN và các hệ thống điện thoại khác chẳng hạn như: giữ cuộc gọi,chuyển hay đàm thoại…
o TAPI cung cấp khả năng truy cập những tính năng đặc trưng của bất
kỳ nhà cung cấp dịch vụ nào, với khả năng mở rộng được xây dựngsẵn để cung cấp cho mạng điện thoại cũng như các tính năng truyềnthống
o TAPI cho phép người dùng thực hiện các cuộc gọi âm thanh và hìnhảnh qua mạng truyền thông dựa trên giao thức IP(Internet Protocol) sửdụng giao thức H.323 và đàm thoại rộng lớn
o TAPI bao gồm QoS(Quality of Service) hỗ trợ cải tiến chất lượng đàmthoại và khả năng quả lý mạng
Các khả năng trên giúp TAPI có thể đồng nhất truyền thông điện thoạitruyền thống và truyền thông IP, nó hỗ trợ các chương trình làm việc hiệu quảtrên Internet hay Intranet giống như trên mạng điện thoại truyền thống Hơnnữa, phiên bản của TAPI hiện tại còn cung cấp khả năng tương thích vớiphiên bản trước để hỗ trợ các chương trình được xây dựng trước đây
Ứng dụng “HyperTerminal” được cung cấp trong hệ điều hànhWindows và các kết nối mạng là các chương trình truyền thông sử dụngTAPI và chúng được cung cấp cùng với họ Microsoft Window Server 2003.Dịch vụ fax, một chương trình truyền thông khác sử dụng TAPI hỗ trợ hầuhết các tùy chọn cơ bản
9.2 Lịch sử phát triển của TAPI
Phiên bản TAPI đầu tiên 1.3 được cài đặt thêm trên Windows 3.1nhưng hiện nay nó không còn được hỗ trợ nữa mặc dù ta vẫn có thể tìm thấy
nó trên các đĩa thư viện MSDN
Trang 23Chương 3 Cơ sở lý thuyết
Windows 95 là phiên bản Windows đầu tiên tích hợp trực tiếp TAPI với
hệ điều hành Khi phát hành, Windows 95 hỗ trợ TAPI phiên bản 1.4 – mộtphiên bản nâng cấp của TAPI 1.3 Điều khác biệt nhất của TAPI 1.4 là hỗ trợviết ra các ứng dụng Windows 32 bit
TAPI 2.0 được giới thiệu cùng với Windows NT 4.0 Đây không phải làphiên bản TAPI đầu tiên hỗ trợ nền Windows NT nhưng một số tính năngtăng cường quan trọng bao gồm hỗ trợ ACD và PBX đã được tích hợp thêmvào phiên bản này
Vào khoảng giữa năm 1997, Microsoft giới thiệu TAPI 2.1 Đây làphiên bản TAPI đầu tiên hỗ trợ cả nền Windows 95 và Windows NT/2000.Nếu được cài đặt trên Windows 95 thì một số tính năng đặc trưng củaWindows NT sẽ không được TAPI sử dụng
TAPI 3.0 được giới thiệu vào năm 1999 cùng với Windows 2000, TAPI3.0 không hỗ trợ Windows 9.x và Windows NT 4.x nữa Phiên bản này hỗtrợ điện thoại trên IP(VoIP) bằng cách cung cấp các phương pháp để kết nốihai (dùng H.323) hoặc nhiều (dùng IP Multicast) máy tính với nhau và bâygiờ nó có khả năng truy cập bất kỳ loại phương tiện truyền thông nào liênquan đến việc kết nối
Windows XP bao gồm cả TAPI 3.1 và TAPI 2.2 TAPI 3.1 hỗ trợ môhình đối tượng và cung cấp một tập các ứng dụng COM để lập trình ứngdụng Phiên bản này sử dụng thành phần “File Terminals” có thể ghi và pháttập tin dữ liệu âm thanh
Trang 249.3 TSP là gì?
TSP (TAPI SERVICE PROVIDERS) là một trình điều khiển cho phépcác ứng dụng TAPI có thể liên lạc qua lại trên nhiều nền tảng phần cứngkhác nhau Ở Windows 95 và NT, TSP được gọi là Unimodem Unimodem
là một chuẩn modem được hỗ trợ hầu hết các định dạng modem phổ biến.Khi sử dụng các thiết bị phần cứng TAPI khác như PBX, các card xử lý âmthanh… thì phải sử dụng TSP do nhà sản xuất phần cứng TAPI đó cung cấp
9.4 Mối quan hệ giữa TSP và phần cứng TAPI
TSP thông dịch các hàm TAPI thành những câu lệnh mà phần cứngTAPI có thể hiểu được, nó cũng dịch các sự kiện từ phần cứng thành dữ liệu
mà các ứng dụng TAPI có thể hiểu được Bởi vì các phần cứng TAPI khácnhau có thể hoạt động và hỗ trợ các tính năng khác nhau, mỗi TSP hỗ trợ cáchàm TAPI khác nhau Ví dụ, nếu TSP hỗ trợ CallerID và modem đang sửdụng cũng hỗ trợ CallerID thì các ứng dụng Windows có thể lấy thông tinCallerID thông qua TAPI Tuy nhiên, nếu cả TSP và modem sử dụng không
hỗ trợ CallerID thì các ứng dụng không thể lấy được thông tin CallerID Vìvậy, nếu có vấn đề xảy ra hoặc một số thứ không hoạt động như ta mongmuốn thì có thể do không có sự hỗ trợ từ phần cứng, TSP hay cả hai
9.5 Khả năng tương thích ngược và tới của TAPI và TSP
Có 3 thành phần TAPI quyết định phiên bản đang sử dụng:
tương thích ngược chứ không tương thích tới Nếu ta đang sử dụng hệđiều hành chỉ hỗ trợ TAPI 2.0 thì các ứng dụng TAPI và TSP của chúngchỉ hỗ trợ tới TAPI 2.1 còn cao hơn thì ứng dụng sẽ không hoạtđộng.Tuy nhiên, nếu hệ điều hành hỗ trợ TAPI 2.0 và các ứng dụng
Trang 25Chương 3 Cơ sở lý thuyết
cùng với TSP của chúng hỗ trợ TAPI 1.4 thì các ứng dụng sẽ chạy bìnhthường
TSP được nạp bởi TAPI thì nó sẽ “thỏa hiệp” về phiên bản sẽ sử dụng
Ví dụ, một TSP có thể hỗ trợ TAPI 1.3 đến TAPI 2.1, hay chỉ hỗ trợTAPI 1.4, hay hỗ trợ tất cả các phiên bản TAPI Một TSP 2.1 không thểcài đặt được trên môi trường TAPI 1.4 hay TAPI 2.0
giống như TSP, các ứng dụng TAPI cũng sẽ “thỏa hiệp” về phiên bản
mà nó sẽ sử dụng Ứng dụng có thể yêu cầu phiên bản TAPI cũ hơn haybằng phiên bản TAPI mà hệ điều hành hỗ trợ khi hoạt động Ứng dụngcũng phải “thỏa hiệp” phiên bản TAPI sử dụng với TSP được cài đặt
Ví dụ, một hệ điều hành hỗ trợ TAPI 2.1 và hai TSP đã được cài đặt.Một TSP hỗ trợ phiên bản TAPI 2.1 và TSP thứ hai hỗ trợ các phiên bảnTAPI từ TAPI 1.3 tới TAPI 2.1 Nếu ta chạy ứng dụng chỉ hỗ trợ TAPI 1.4thì ứng dụng sẽ “thỏa hiệp” phiên bản với một trong hai TSP Ứng dụngthường sẽ làm việc với TSP thứ hai vì TSP này hỗ trợ mọi phiên bản TAPItrong khoảng từ 1.3 tới 2.1, tuy nhiên ứng dụng cũng có thể làm việc vớiTSP thứ nhất Khi đó, hệ điều hành sẽ dịch các lời gọi hàm TAPI 1.4 lênthành các lời gọi hàm TAPI 2.1
Trang 269.6 Kiến trúc TAPI
Hình 3.6 Kiến trúc TAPI
Theo sơ đồ trừu tượng trên, TAPI nằm giữa các ứng dụng và phầncứng Nếu ta thay từ “TAPI” thành “Windows”, và thay từ “TSP” thành
“thiết bị điều khiển” thì sơ đồ trên sẽ là sơ đồ kiến trúc Windows
TSP cung cấp những tính năng và những dịch vụ cụ thể cho phần cứng.Khi một ứng dụng yêu cầu thiết bị điện thoại thực thi một hành động nào
đó thì TAPI sẽ tìm đến dịch vụ TSP của thiết bị và gọi thực hiện nó Sau
đó, TSP hoàn thành yêu cầu được gởi đến
9.7 Mô hình của TAPI 2.x
Mô hình thiết kế TAPI được chia làm hai lĩnh vực, mỗi lĩnh vực có các lờigọi TAPI khác nhau tùy thuộc vào thiết bị mà từng lĩnh vực sử dụng:
Các thiết bị đường truyền: là mô hình sử dụng đường truyền vật lý điệnthoại để gửi và nhận âm thanh và dữ liệu giữa hai địa điểm
Các thiết bị điện thoại: là mô hình để thực hiện và nhận cuộc gọi
Trang 27Chương 3 Cơ sở lý thuyết
Ví dụ, một chương trình TAPI có thể thiết kế để cung cấp âm thanh (gọiđiện thoại), fax, liên kết dữ liệu cho người sử dụng Ứng dụng sẽ định danh
ba thiết bị đường truyền Một là thiết bị âm thanh, hai là thiết bị truyền dẫnfax, ba là thiết bị để gửi và nhận dữ liệu thông qua một modem Nếu máytính chỉ có một đường truyền điện thoại vật lý, ứng dụng TAPI sẽ chia sẻđường truyền này cho cả ba thiết bị đường truyền Điều này được gọi là quyhoạch động đường truyền
Hình 3.7 Mô hình thiết kế TAPI
Vào mỗi thời điểm, ứng dụng TAPI sẽ khởi động một thiết bị đườngtruyền, nó sẽ yêu cầu đường truyền vật lý Nếu đường truyền vật lý chưa sẵnsàng, một thông báo sẽ được gửi trả về Trong một số trường hợp, ví dụ nhưtruyền dẫn fax, ứng dụng có thể “xếp hàng” các yêu cầu để xử lý dần dần.Nếu có hai đường truyền sẵn sàng, TAPI sẽ điều khiển chúng như chúng
Trang 28yêu cầu Nếu thiết bị đường truyền thứ ba lúc này cũng gửi yêu cầu thì ứngdụng TAPI sẽ nhận biết rằng không còn đường truyền nào rỗi và sẽ thôngbáo cho người sử dụng biết.
Phone
Mô hình này cho phép người lập trình dễ dàng tạo ra các “máy điện thoạiảo” Ví dụ, một máy tính với một card âm thanh, loa và microphone có thểthực hiện được tất cả các chức năng của một điện thoại để bàn Những “điệnthoại ảo” này cũng giống như các thiết bị đường truyền, tức là không cần có
sự tương quan 1-1 với đường truyền vật lý Một máy tính có thể có nhiềuthiết bị điện thoại, mỗi thiết bị điện thoại có đặc điểm riêng Khi “một cuộcgọi thực sự” được yêu cầu, người sử dụng có thể lựa chọn một trong các thiết
bị điện thoại, gõ số điện thoại và sau đó ứng dụng TAPI sẽ gán thiết bị điệnthoại với một thiết bị đường truyền sẵn có
9.8 TAPI 3.0 và các cải tiến so với TAPI 2.x
Tapi 3.0 là thế hệ tiếp theo của Microsoft Telephony API được pháthành cùng với hệ điều hành Windows NT@ 5.0 Nó có một số điểm khácbiệt so với TAPI 2.1 Thứ nhất là tập giao diện COM (COM interface) sovới những thủ tục C API Các giao diện này cho phép những nhà phát triểnviết ra những ứng dụng TAPI 3.0 trong visual Basic® và Java cũng như làC/C++ Thứ hai, nó hỗ trợ thêm bộ điều khiển truyền thông, bạn có thể điềuhành việc phát và thu âm những thông điệp âm thanh, và cải tiến quan trọngcuối cùng là TAPI 3.0 đã hỗ trợ cho giao thức IP, điều này có một ý nghĩa
vô cùng quan trọng trong tuyền thông qua điện thoại
Trang 29Chương 3 Cơ sở lý thuyết
9.8.1 Kiến trúc TAPI 3.0
Hình 3.8 Kiến trúc TAPI 3.0
Hình trên thể hiện chi tiết kiến trúc của TAPI 3.0, phần màu xanh gồm:TAPI32.dll, Tapisrv.exe và Unimodem là những thành phần telephony mà đãtồn tại trong Window® 98 và Window NT 4.0 Tapi32.dll cung cấp tất cả cáchàm TAPI 2.1 và được gọi bởi bất cứ ứng dụng TAPI 2.x Tapisrv.exe là cốtlỗi của Windows telephony là tập tin thực thi trên Windows 98 và là một tiếntrình dịch vụ trên Windows NT Tapi32.dll có một giao diện cho Tapisrv.exe
để điều hành tất cả những yêu cầu Tapisrv.exe xử lý những yêu cầu vàchuyển chúng đến bộ phận cung cấp dịch vụ TAPI nếu cần thiết
TSPs là tương đương với drivers của thiết bị, chúng điều khiển truyền thôngphần cứng Unimodem là một TSP cung cấp bởi Microsoft để hỗ trợ bất kỳloại modem nào Nhà cung cấp thiết bị điện thoại có thể viết TSPs riêng màđược tích hợp bên dưới Tapisrv.exe để hỗ trợ phần cứng
Phần màu vàng mô tả những thành phần mới cho telephony mà được tíchhợp cho Windows NT Chúng là Tapi3.dll, ba tập giao diện COM(CallControl, Media Control, Directory Control), hai TSPs mới để hỗ trợ truyềnthông qua IP(H.323 và IP Multicast), ba Media Stream Providers(MSPs), bộquản lý thiết bị đầu cuối (Terminal Manager) và DirectShowTM
Trang 30Tapi3.dll là cốt lỗi của TAPI 3.0 để truyền thông với Tapisrv.exe thôngqua cùng giao diện được sử dụng bởi Tapi32.dll Thật ra, Tapisrv.exe khôngbiết sự khác nhau giữa TAPI3.dll và TAPI32.dll TAPI 3.0 đảm bảo sự tươngthích với bộ cung cấp dịch vụ TAPI 2.x đang tồn tại bằng cách sử dụng cùngmột khái niệm trừu tượng trong giao diện với Tapisrv.exe.
MSPs cung cấp các luồng truyền thông trên các cuộc gọi được điềuhành qua TAPI TAPI 3.0 cung cấp một giao diện lập trình đồng nhất chonhững bộ điều khiển cuộc gọi và truyền thông Sau đó nó chuyển tất cả cácyêu cầu điều khiển cuộc gọi đến TSP và tất cả các yêu cầu điều khiển truyềnthông cho MSP Kiến trúc của MSP giống với kiến trúc giao diện của bộcung cấp dịch vụ TAPI 2.x (một sự mở rộng của TSP mà được gọi trong quátrình xử lý của ứng dụng) TSP gọi TAPI thông qua một tính năng mới làTSPI(Telephony Service Provider Interface) mà có một MSP tương ứng.TAPI 3.0 cũng cung cấp cách thức truyền thông giữa MSP và TSP thông quamột phiên làm việc
Termmgr.dll (Terminal Manager) là một thành phần mới của TAPI 3.0
là một thành phần trợ giúp cho MSPs, nó sử dụng DirectShowTM để tìm tất cảthiết bị hiện diện trên máy tính và sau đó tạo ra đối tượng đầu cuối TAPI 3.0(Terminal) tương ứng với thiết bị đó
9.8.2 Tính năng mới của TAPI 3.0
TAPI truyền thống có một mô hình cuộc gọi một bên, điều này có nghĩa
là một cuộc gọi trong TAPI đại diện cho những điểm đích của một kết nối, ví
dụ, nếu một người A gọi người B, thì nó được mô tả trong TAPI như haicuộc gọi – điểm đích của cuộc gọi ở người A và điểm đích của cuộc gọi ởngười B Nói một cái tổng quát một cuộc hội thoại với n người tham gia sẽđược đại diện bởi n cuộc gọi Trong TAPI 3.0 cũng đã kết hợp thêm một mô
Trang 31Chương 3 Cơ sở lý thuyết
hình cuộc gọi bên thứ ba đến mô hình một bên
Trong mô hình bên thứ ba một ứng dụng truyền thông giành lấy một cáinhìn tổng quát của tất cả các điểm đích có liên quan trong một kết nối Đốitượng “CallHub” mô tả điều này trong mô hình đối tượng TAPI 3.0 Nếu cómột cuộc gọi từ người A đến người B sẽ có một đối tượng “CallHub” thểhiện kết nối đó cũng như hai đối tượng “Call”, mỗi đối tượng cho một điểmđích
Kiểu “Address” định nghĩa các kiểu chuỗi mà TSP có thể chấp nhận khiquay số một cuộc gọi Trong phiên bản trước của TAPI, tất cả chuỗi có thể quay
số được xem như là số điện thoại Tuy nhiên với truyền thông IP thì TSP có thể
hỗ trợ những định dạng khác nhau của chuỗi này, chẳng hạn như địa chỉ IP, địachỉ mail, hay tên máy tính TAPI 3.0 định nghĩa năm loại địa chỉ:
Hình 3.9 Các loại địa chỉ của TAPI 3.0
Bạn có thể truy vấn những loại địa chỉ mà một TSP hỗ trợ, bởi vì mộtTSP có thể hỗ trợ nhiều loại địa chỉ khác nhau, một ứng dụng phải xác địnhloại địa chỉ của chuỗi quay số mà nó đang dùng
Trang 32Hình 3.10 Phương thức truy vấn loại địa chỉ của TSP
Khi một ứng dụng gọi phương thức này thì nó cung cấp cả địa chỉ đích
và cả đặc tả định dạng của địa chỉ này Bất kỳ phương thức nào trong TAPI3.0 lấy được địa chỉ đích thì cũng có được loại địa chỉ tương ứng Ứng dụngcần biết giao thức nào được thiết bị hỗ trợ và API cung cấp một giao thức đểbiết được giao thức này Mỗi thiết bị TAPI hỗ trợ một giao thức đơn
Hình 3.11 Các giao thức của TAPI 3.0
Đây là các giao thức được định nghĩa cho TAPI 3.0 hiện tại:PSTN(Public Switch Telephone Network), H.323 và multicast conferencing.Nếu một ứng dụng chỉ quan tâm H.323, nó có thể tìm thấy dễ dàng thiết bị để
sử dụng TAPI 3.0 cho phép một cuộc gọi hỗ trợ nhiều chế độ truyền thôngcùng lúc Trong phiên bản TAPI trước, một cuộc gọi có thể chỉ có một chế
độ truyền thông và cả TSPs và ứng dụng đều sử dụng hằng sốLINMEDIAMODE_XXX Trong TAPI 3.0 ứng dụng sử dụng hằng số mớiTAPIMEDIAMODE_XXX và một TSP có thể chỉ định cuộc gọi có nhiềuhơn một chế độ truyền thông (media modes) Ví dụ, nếu cuộc gọi có cả âmthanh và hình ảnh thì TSP có thể báo cáo cả
LINEMEDIAMODE_VIDEO trong cấu trúc LINECALLINFO Tổng đài
Trang 33Chương 3 Cơ sở lý thuyết
điện thoại được hỗ trợ trong TAPI 2.0 ở mức độ giới thiệu và được cải tiếntrong phiên bản 3.0 với những tính năng chuẩn như trạm, phiên, nhóm vàhàng đợi
9.8.3 Điều khiển truyền thông
Một trong những cải tiến chính của TAPI 3.0 là có thêm các điều khiểntruyền thông MC(Media Control), nó cung cấp một cách thức cho TSPs điềukhiển ứng dụng thông qua các luồng truyền thông MS(Media Stream) Trongphiên bản trước của TAPI, một TSP hỗ trợ MC sẽ thực thi một thiết bị sóngcho phép truy cập đến MS của nó TAPI cung cấp một cách thức cho ứngdụng nhận định danh của thiết bị sóng nhưng sau đó nó sẽ chuyển đến ứngdụng để điều hành MC sử dụng API đa truyền thông, và ứng dụng phải biếtTSP có một thiết bị sóng(thiết bị hỗ trợ truyền thông qua tập tin wav) Nếumột mô hình luồng đến cùng lúc thì TSPs không thể sử dụng nó cho đến khiứng dụng đã được cập nhật lại để làm việc với mô hình mới Dĩ nhiên, ứngdụng sẽ không bao giờ được cập nhật trừ khi TSP hỗ trợ mô hình mới này.Kiến trúc này làm cho ứng dụng chỉ làm việc tốt với một hay rất ít các TSPs
Vì lý do đó, Microsft đã tích hợp MS vào trong TAPI 3.0 qua đối tượngTerminal Microsoft trừu tượng hóa những tác vụ luồng truyền thông phổbiến và tạo ra các giao diện Terminal cho các tác vụ đó Giao diện COM mô
tả một liên hệ giữa việc thực thi MS và ứng dụng để MC trong ứng dụng sẽlàm việc qua nhiều TSPs khác nhau
9.8.4 Giao diện COM cải tiến
TAPI 3.0 là phiên bản đầu tiên của TAPI sử dụng COM Phiên bảntrước, TAPI truyền thông tin qua cấu trúc chiều dài biến mà có thể gây phiềnphức khi sử dụng các ngôn ngữ như Visual Basic Một giao diện COM làmcho TAPI có thể được lập trình với Visual Basic, VBScript, Java và JScript®
Trang 34cũng như C và C++ Bạn sẽ thấy TAPI 3.0 được thiết kế với khả năng tựđộng tối đa.
Thứ nhất, TAPI 3.0 sử dụng các biến tương thích một cách tự động Cóthể thấy kiểu giống như: VARIANT_BOOLs và BSTRs nhưng sẽ không cócấu trúc Điều này sẽ có thể là một điểm mới với những ai đã quen với TAPI2.x
Thứ hai, TAPI 3.0 đảm bảo tính tương thích một cách tự động quanhững phương thức song song – một phương thức cho C/C++ và một chongôn ngữ script Một phương thức song song cho việc nhận một đối tượngCollection mà sẽ làm thích thú những ai phát triển ứng dụng trên VisualBasic
Cuối cùng TAPI 3.0 đảm bảo tính tương thích một cách tự động bằngcách sử dụng sơ đồ kết nối điểm COM Tất cả những sự kiện TAPI đượcđiều hành qua một giao diện callback đơn Microsoft đang xem xét một tùychọn cho phiên bản TAPI mới trong tương lai mà sẽ để cho ứng dụng lắngnghe trên sự kiện hơn là sử dụng callbacks
9.8.5 Mô hình đối tượng của TAPI 3.0
Hình 3.12 Mô hình đối tượng chủ yếu của TAPI 3.0
Trang 35Chương 3 Cơ sở lý thuyết
Đây là mô hình cốt lỗi của TAPI 3.0, có năm đối tượng cốt lỗi là: TAPI,Address, Call, Terminal và CallHub Ngoài ra còn có thêm các đối tượng choứng dụng cuộc gọi trung tâm API Đối tượng TAPI là đường dẫn vào ứngdụng TAPI 3.0 Nó được tạo qua CoCreateInstance Từ đối tượng TAPI, mộtứng dụng có thể đếm các đối tượng địa chỉ Đối tượng địa chỉ đáp ứng chothiết bị hỗ trợ TAPI 2.x được dùng để thực hiện hay nhận cuộc gọi Ứngdụng có thể tìm kiếm khả năng của mỗi đối tượng địa chỉ để quyết định làứng dụng sẽ sử dụng địa chỉ nào Ví dụ, một ứng dụng có thể chỉ quan tâmtới những địa chỉ hỗ trợ giao thức H.323 Trong trường hợp này ứng dụng sẽđếm tất cả địa chỉ này từ đối tượng TAPI(đối tượng TAPI giữ tất cả các địachỉ trên máy) sau đó truy xuất giao thức của từng địa chỉ để tìm ra địa chỉ hỗtrợ giao thức H.323
Đối tượng địa chỉ sở hữu đối tượng cuộc gọi Đối tượng Call được tạo
từ ứng dụng hay chính xác từ TSP Nói chung, một ứng dụng tạo ra cuộc gọi
ra bên ngoài và TSP chịu trách nhiệm nhận cuộc gọi Đới tượng Addresscũng sở hữu những đối tượng Terminal, các Terminal để cho ứng dụng chọnloại và thiết bị truyền thông nào sẽ được sử dụng trên cuộc gọi Trên mộtmáy tính với một card âm thanh sẽ có những đối tượng Terminal tương ứngvới loa và tai nghe Ứng dụng có thể chọn những thiết bị đầu cuối này trêncuộc gọi để chỉ định chúng là nguồn trên cuộc gọi
Chú ý rằng trong khi những đối tượng Terminal là giống nhau trongphiên bản TAPI trước, chúng không được dẫn xuất từ những Terminal này(TAPI 2.x)
Trang 3610 Hệ thống tổng hợp tiếng nói TTS (Text-To-Speech)
10.1 Giới thiệu về hệ thống tổng hợp tiếng nói
10.1.1 Khái niệm
Hệ thống Text-To-Speech (TTS) là một hệ thống chuyển đổi văn bảnthô về dạng tiếng nói Hệ thống TTS điển hình gồm hai phần: phần xử lývăn bản và phần tổng hợp tiếng nói Nhiệm vụ của phần xử lý văn bản là
xử lý văn bản thô đầu vào (có thể là chữ viết tay, chữ tượng hình, hay làmột dạng ngôn ngữ nào đó) thành các ngữ âm bao gồm chuỗi các âm vị vàmột số thông tin ngữ điệu, khoảng thời gian và trọng âm Phần tổng hợptiếng nói dựa trên các thông tin về ngữ âm và ngữ điệu đã được đặc tả đểtạo ra âm thanh phù hợp nhất
Hình 3.13 Hệ thống Text-To-Speech đơn giản
10.1.2 Các hướng tiếp cận trong tổng hợp tiếng nói
Hai tính chất quan trọng của chất lượng hệ thống tổng hợp giọng nói làmức độ tự nhiên và mức độ dễ nghe Mức độ tự nhiên của giọng nói tổnghợp là sự giống nhau giữa giọng tổng hợp và giọng nói tự nhiên của ngườithật Mức độ dễ nghe là việc câu phát âm có thể hiểu được dễ dàng Một
Trang 37Chương 3 Cơ sở lý thuyết
máy tổng hợp giọng nói lý tưởng cần vừa tự nhiên vừa dễ hiểu, và mục tiêuxây dựng máy tổng hợp giọng nói là làm gia tăng đến mức tối đa hai tínhchất này Một số hệ thống thiên về mức độ dễ nghe hơn, hoặc mức độ tựnhiên hơn; tùy thuộc vào mục đích mà công nghệ lựa chọn Có hai côngnghệ chính được dùng là tổng hợp bằng phương pháp ghép nối và tổng hợpFormant dựa trên luật, ngoài ra cũng có một số phương pháp khác
Tổng hợp bằng phương pháp ghép nối: Tổng hợp ghép nối dựa trên
việc nối vào nhau các đoạn của một giọng nói đã được ghi âm Thôngthường, tổng hợp ghép nối đòi hỏi bộ nhớ lưu trữ lớn nhưng tạo ra giọng nóitương đối tự nhiên Tuy nhiên, giọng nói tự nhiên được ghi âm có sự thay đổi
từ lần phát âm này sang lần phát âm khác, và công nghệ thực hiện ghép nối
tự động các đoạn của sóng âm thỉnh thoảng tạo ra những tiếng cọ xát không
tự nhiên ở phần ghép nối Có ba kiểu tổng hợp ghép nối
Tổng hợp lựa chọn đơn vị: Dùng một cơ sở dữ liệu lớn các giọng
nói ghi âm (thông thường dài hơn một giờ đồng hồ ghi âm) Trongquá trình ghi âm, mỗi câu được tách ra thành các đơn vị nhỏ hơnnhư: các âm tiết, hình vị, từ, cụm từ, câu văn Thông thường việcphân tách như vậy cần dùng đến bộ phân tích tiếng nói đặt ở chế
độ so khớp văn bản viết tương ứng với đoạn ghi âm, và sử dụngđến các đặc trưng song âm và phổ âm thanh Một bảng tra các đơn
vị trong cơ sở dữ liệu âm thanh được tạo ra dựa trên các phân đoạn
đã tách và các thông số âm học như tần số cơ bản, độ dài phát âm,
vị trí của âm tiết và các âm tiết gần đó Khi chạy, các câu phát biểuđược tạo ra bằng cách xác định chuỗi đơn vị phù hợp nhất từ cơ sở
dữ liệu Quá trình này gọi là quá trình chọn đơn vị, và thườngdùng đến cây quyết định để thực hiện
Trang 38Tổng hợp âm kép (diphones): Tổng hợp âm kép dùng một cơ sở
dữ liệu giọng nói nhỏ chứa tất cả các âm kép (phần chuyển tiếp âmthanh giữa hai từ kế cận nhau) xuất hiện trong ngôn ngữ đang xét
Số lượng âm kép phụ thuôc vào đặc tính nối ghép âm học của từngngôn ngữ Ví dụ, tiếng Tây Ban Nha có 800 âm kép, tiếng Đức có
2500 Trong tổng hợp âm kép, mỗi âm kép có một và chỉ một,được chứa trong cơ sở dữ liệu Khi chạy, ngữ điệu của câu vănđích được chồng lên trên các đơn vị tối thiểu này bằng kỹ thuật xử
lý tín hiệu số như PSOLA hay MBROLA
PSOLA (Pitch Synchronous Overlap Add) là phương pháp tổnghợp dựa trên sự phân tích một tín hiệu thành một chuỗi các tín hiệuthành phần Khi cộng xếp chồng (overlap-add) các tín hiệu thành phần
ta có thể khôi phục lại tín hiệu ban đầu
PSOLA thao tác trực tiếp với tín hiệu dạng sóng, không dùng bất
cứ loại mô hình nào nên không làm mất thông tin của tín hiệu.PSOLA cho phép điều khiển độc lập tần số cơ bản, chu kỳ cơ bản vàcác formant của tín hiệu Ưu điểm chính của phương pháp PSOLA làgiữ nguyên đường bao phổ khi thay đổi tần số cơ bản (pitch shifting).Phương pháp này cho phép biến đổi tín hiệu ngay trên miền thời giannên chi phí tính toán rất thấp PSOLA đã được dùng rất phổ biến vớitín hiệu tiếng nói
Các phiên bản của PSOLA:
TD-PSOLA (Time Domain- Pitch Synchronous Overlap Add)
là phiên bản miền thời gian của PSOLA (TD-PSOLA) Phươngpháp này thao tác với tín hiệu trên miền thời gian nên được sửdụng nhiều vì hiệu quả trong tính toán của nó
Trang 39Chương 3 Cơ sở lý thuyết
FD-PSOLA (Frequency Domain- Pitch Synchronous Overlap
Add) là phương pháp bao gồm các bước giống như PSOLA nhưng thao tác trên miền tần số Phương pháp này cóchi phí tính toán cao hơn TD-PSOLA Đối với mỗi trường hợpriêng biệt thì mỗi phương pháp sẽ cho hiệu quả khác nhau, nênphải dựa vào từng hoàn cảnh để chọn phương pháp thích hợp
TD- LP-PSOLA (Linear Prediction–Pitch Synchronous Overlap
Add) Phương pháp dự đoán tuyến tính được thiết kế để mã hoátiếng nói nhưng phương pháp này cũng có thể dùng cho tổnghợp
Chất lượng của âm thanh tổng hợp theo cách này thường không caobằng phương pháp chọn đơn vị nhưng tự nhiên hơn tổng hợp Formant
Tổng hợp âm kép tạo ra các tiếng cọ xát ở phần ghép nối và đôi khigiọng nói kiểu Robot do các kỹ thuật xử lý tín hiệu số gây ra Lợi thế củaphương pháp này là kích thước cơ sở dữ liệu nhỏ Các ứng dụng thươngmại của phương pháp này đang ít dần, mặc dù nó vẫn tiếp tục được sử dụngtrong nghiên cứu và được phân phát tự do
Tổng hợp chuyên ngành (domain- specific synthesis): Tổng
hợp chuyên ngành thực hiện ghép nối các từ và cụm từ đã đượcghi âm trước đó để tạo ra câu văn hoàn chỉnh Nó được dùng trongcác ứng dụng có các văn bản chuyên biệt cho một chuyên ngành,
sử dụng lượng từ vựng hạn chế, như các thông báo chuyến bay hay
dự báo thời tiết