1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thông báo kết quả học tập qua điện thoại

110 1,1K 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 110
Dung lượng 0,92 MB

Nội dung

Tài liệu tham khảo ngành công nghệ thông tin Thông báo kết quả học tập qua điện thoại

Trang 1

LỜI NÓI ĐẦU

Trong mỗi gia đình, các bậc cha mẹ có con cắp sách tới trường lúc nào cũng quan tâm đến việc học của con mình Chẳng hạn bữa nay con mình có lên trả bài hay không? Các bài kiểm tra trong tháng được bao nhiêu điểm? Kết quả thi ở cuối mỗi học kỳ ra sao? Và kể cả việc muốn biết con mình có nghỉ học bữa nào không hoặc có vi phạm nội quy gì ở trường hay không và lý

do tại sao? Thông thường, gia đình chỉ biết những chuyện này sau khi nhà trường phát sổ liên lạc về nhà

Ngày nay, với sự phát triển liên tục của ngành máy tính, ta có thể tự độnghóa công việc này bằng cách kết nối máy tính với điện thoại như là một hệ thống trả lời tự động Khi một phụ huynh gọi điện thoại tới số máy này, hệ thống sẽ thông báo các kết quả học tập của học sinh Điều này thật là thuận lợi, nhanh chóng và dễ dàng, có thể thực hiện ở mọi lúc mọi nơi

Tuy đề tài này đã được hoàn thành nhưng chắc chắn không tránh khỏi thiếu sót Em rất mong được sự quan tâm, giúp đỡ và góp ý của các thầy, cô vàcác bạn

Cuối cùng, em xin cảm ơn các thầy cô ở bộ môn Công nghệ thông tin đã dành cho em đề tài này và đặc biệt là thầy Nguyễn Đức Thuần, người đã trực tiếp gợi ý và hướng dẫn, giúp em hoàn thành đề tài này

Sinh viên thực hiện

Bùi Danh Đạt

Trang 2

PHẦN 1

GIỚI THIỆU

ĐỀ TÀI

Trang 3

I Đặt vấn đề :

Hiện nay, thông thường mỗi học sinh cắp sách tới trường sẽ được phátcho một cuốn sổ liên lạc Nhà trường sẽ sử dụng sổ này để thông báo cho phụhuynh của học sinh biết kết quả học tập của học sinh ở sau mỗi tháng hoặc saumỗi học kỳ Trong sổ liên lạc, nhà trường thường chỉ ghi kết quả cuối cùngcủa mỗi tháng hoặc mỗi học kỳ Do vậy phụ huynh không thể biết được chitiết các cột điểm của các môn học trong mỗi tháng Ngoài ra, những lần nghỉhọc cũng như những lần vi phạm nội quy của học sinh sẽ không được ghi vàotrong ấy Vì thế các bậc phụ huynh khó có thể theo dõi chặt chẽ những diễnbiến học tập của con mình ở trường như thế nào

Công việc giáo dục học sinh cần phải có sự phối hợp giữa gia đình vànhà trường Nhằm tạo sự thuận lợi cho các bậc phụ huynh có thể nắm bắtđược những thông tin về học sinh một cách nhanh chóng, đầy đủ, ở đề tài tốtnghiệp này, em đã tìm hiểu và viết một chương trình tự động thông báo kếtquả học tập của học sinh qua điện thoại Em nhận thấy có 3 vấn đề chính sauđây được đặt ra cần giải quyết là :

 Nhận được tín hiệu gọi tới từ điện thoại , tạo một kết nối giữa máytính và cuộc gọi đó và nhận biết phím nào đã được bấm từ máyđiện thoại của người gọi để thực hiện yêu cầu của người đó

 Tìm kết quả trong cơ sở dữ liệu

 Thông báo bằng giọng nói cho người gọi nghe

Vấn đề đầu tiên là phải tạo được một giao tiếp giữa điện thoại và máytính thông qua một modem Và để truyền được tín hiệu tiếng nói từ máy tínhđến điện thoại, modem này phải có hỗ trợ chức năng “voice“ Máy tính lúcnày sẽ đồng thời đóng vai trò của máy điện thoại và nhân viên trường học.Người gọi có thể sử dụng bất kỳ điện thoại nào để gọi tới Lúc này máy tính sẽ

tự động “nhấc máy” và đối thoại với người gọi

Vấn đề thứ hai được giải quyết bằng cách sử dụng các câu lệnh truy vấn(SQL) mà bất kỳ thao tác nào với cơ sở dữ liệu cũng cần phải có

Vấn đề cuối cùng là áp dụng công nghệ “text-to-speech” để chuyển từchữ trong máy tính sang tiếng nói, sau đó sẽ truyền đi qua điện thoại tới ngườigọi

Trang 4

Tất cả những vấn đề này sẽ được trình bày chi tiết trong các phần sau.

Chương trình “Thông báo kết quả học tập qua điện thoại” được viếtbằng ngôn ngữ lập trình Visual Basic 6.0 trên hệ điều hành MicrosoftWindows 98

Hệ quản trị cơ sở dữ liệu được dùng để cài đặt cơ sở dữ liệu là MicrosoftAccess 97

Chương trình được thiết kế để thông báo mọi vấn đề liên quan đến đếnhọc tập và đạo đức thường gặp nhất ở học sinh Khi một người gọi điện tới, hệthống sẽ yêu cầu nhập vào mã số của học sinh Sau đó, hệ thống sẽ đưa ramenu để chọn lựa vấn đề đang quan tâm Người gọi muốn nghe thông tin chỉcần nhấn các phím tương ứng với các mục sau đây :

# Thay đổi mã số học sinh

1 Nghe thông tin về các lần nghỉ học trong tháng (ngày nghỉ học,

số ngày nghỉ, có phép/không phép, lý do)

2 Nghe thông tin về các lần vi phạm nội quy trong tháng (ngày vi

phạm, lý do)

3 Nghe điểm kiểm tra của các môn học trong tháng

4 Nghe điểm thi của các môn học ở cuối học kỳ

5 Nghe kết quả cuối tháng (điểm trung bình, hạng, học lực, hạnh

8 Nghe thông tin chi tiết về học sinh mang mã số hiện tại (họ, tên,

ngày sinh, giới tính, nơi sinh, tên lớp đang học ở năm học hiện tại được chọn)

9 Chọn năm học khác (năm học mặc định là năm học hiện tại)

* Kết thúc cuộc gọi

Trang 5

Nếu người gọi nhấn một trong các phím 1, 2, 3, 5 thì sẽ được yêu cầunhập vào tháng muốn biết Nếu nhấn phím 4 hay 6 thì sẽ được yêu cầu nhậpvào học kỳ muốn biết.

Bất cứ lúc nào, người gọi có thể nhấn phím * để trở về menu Muốn kếtthúc cuộc gọi, ngoài cách nhấn phím * tại menu chọn lựa, người gọi có thể gácmáy như bình thường, lúc này hệ thống sẽ tự phát hiện ra , ngắt kết nối vớicuộc gọi hiện tại và tiếp tục chờ cuộc gọi khác đến Nếu hệ thống phát hiệnsau một khoảng thời gian định trước (thời gian rỗi) mà không có một tác độngnào từ phía người gọi thì hệ thống cũng sẽ tự động ngắt kết nối

Trang 6

PHẦN 2

CƠ SỞ

LÝ THUYẾT

Trang 7

Chương 1 GIAO TIẾP GIỮA ĐIỆN THOẠI

VÀ MÁY TÍNH

Như chúng ta đã biết kỹ thuật điện thoại ra đời và phát triển rất sớmtrước kỹ thuật máy tính Ngày đó, đường dây điện thoại được thiết kế chỉ đểtruyền tín hiệu của tiếng nói có tần số của âm thanh Dạng tín hiệu này thuộcloại tín hiệu tương tự (analog) và thường gọi là sóng âm tần hình sin Trongkhi đó, máy tính chỉ có thể xử lý các tín hiệu số (digital) có tần số cao Nếutín hiệu số này được truyền trực tiếp trên đường dây điện thoại thì chúng sẽ bịsuy giảm và biến dạng Vì thế, một thiết bị chuyển đổi qua lại giữa hai tín hiệu

này đã ra đời, gọi là modem Công việc chuyển tín hiệu số của máy tính thành

tín hiệu tương tự của đường dây điện thoại được thực hiện bằng một số

phương pháp mà người ta gọi là điều chế (Modulation) Ngược lại, công việc

chuyển tín hiệu tương tự của đường dây điện thoại thành tín hiệu số của máy

tính cũng được thực hiện bằng một số phương pháp mà người ta gọi là giải

điều chế (Demodulation) Modem chính là viết tắt của 2 chữ Modulation và

Demodulation

Ứng dụng của modem mà chúng ta thường thấy nhất là kết hợp với máytính để truy cập internet Trong trường hợp này, mỗi đầu của đường dây điệnthoại sẽ nối vào một modem gắn vào máy tính Nhờ đó chúng ta có thể truyxuất được dữ liệu của máy kia (máy chủ) Còn ở đây, đối với công việc thôngbáo qua điện thoại từ máy tính, ta chỉ cần nối một đầu dây điện thoại vàomodem gắn với máy tính tại trường học Người gọi có thể sử dụng bất kỳ điệnthoại nào để gọi tới Lúc này tín hiệu từ đường dây điện thoại sẽ được modemchuyển đổi thành tín hiệu số và đưa vào máy tính để xử lý Sau đó máy tính sẽphát trở lại các tín hiệu số (ví dụ như tiếng nói ở dạng số) cho modem để

Trang 8

modem chuyển đổi thành các tín hiệu tương tự (tiếng nói ở dạng tương tự) vàtruyền ngược trở lại người gọi Nhờ đó , người gọi có thể nghe được.

II Giao tiếp lập trình ứng dụng cho hệ thống điện thoại - TAPI (Telephony Application Programming Interface) :

II.1 Một số khái niệm trong mô hình TAPI :

II.1.1 TAPI là gì ?

TAPI được phát triển bởi sự kết hợp của hai hãng Intel và Microsoft TAPI được thiết kế để truy xuất các dịch vụ điện thoại trên tất cả các hệ điềuhành Windows Nói cách khác, TAPI là tập hợp các hàm đơn lẻ đượcWindows cung cấp để hỗ trợ cho việc lập trình giao tiếp giữa điện thoại vàmáy tính thông qua modem hoặc các thiết bị truyền thông Với TAPI , ngườilập trình không phải lo lắng về các tập lệnh của modem để khởi tạo nó hoặcphải chọn cổng hoạt động cho modem

Mục đích của TAPI là cho phép các nhà lập trình viết những ứng dụng

mà không cần quan tâm chi tiết đến thiết bị phần cứng Ví dụ với modem,người lập trình không cần biết modem loại nào, của hãng nào, tập lệnh của củamodem là gì, sử dụng cổng nối tiếp hay song song hay cổng USB, chỉ cần thiết

bị phần cứng đó có một TAPI driver gọi là TSP(Telephone Service Provider)

do nhà sản xuất cung cấp, mà thường khi cài thiết bị phần cứng này vào máythì tất cả các driver của nó đều được cài vào Do đó chỉ cần thiết bị này hoạtđộng tốt thì ứng dụng TAPI sẽ không gặp vấn đề gì

TAPI hỗ trợ cả việc truyền số liệu lẫn tiếng nói ở nhiều loại thiết bị đầucuối khác nhau, hỗ trợ các kiểu kết nối phức tạp và các kỹ thuật quản lý cuộcgọi như: tạo cuộc gọi, chờ cuộc gọi , hộp thư thoại, vv Các ứng dụng đượcviết bởi TAPI có thể truy cập trực tiếp vào các dịch vụ trên đường dây điệnthoại Các ứng dụng này có thể phát ra và nhận vào mọi tín hiệu của điệnthoại

Dù đường dây điện thoại truyền tín hiệu dạng tương tự hay dạng số thì tacũng cần một thiết bị giao tiếp giữa máy tính và đường dây điện thoại Dĩnhiên, thiết bị giao tiếp đó phải có hỗ trợ TAPI TSP Thiết bị này có thể là mộttrạm ISDN , một bảng mạch hệ thống điện thoại hoặc đơn giản là một modem

Trang 9

II.1.2 Chương trình ứng dụng TAPI :

Ứng dụng TAPI là ứng dụng mà có sử dụng giao tiếp lập trình hệ thốngđiện thoại nhằm thực hiện một công việc gì đó Ví dụ : phần mềm giả lập điệnthoại trong mạng điện thoại chuyển mạch công cộng (PSTN), phần mềmgửi/nhận fax, hộp thư thoại, hệ thống trả lời tự động, điện thoại qua internet(VoIP) vv

II.1.3 TAPI DLL (Dynamic link library - Thư viện liên kết động) :

Các thư viện này cùng với TAPI Server (Tapisvr.exe) là sự trừu tượnghóa trong việc phân cách giữa người dùng và các nhà cung cấp dịch vụ điệnthoại Một thư viện TAPI liên kết với TAPI Server để cung cấp một giao tiếpgiữa 2 lớp (xem mô hình lập trình cho hệ thống điện thoại ở phần sau)

Có 3 thư viện liên quan tới TAPI : Tapi.dll, Tapi32.dll, Tapi3.dll Mỗithư viện này đều có vài trò như nhau :

Tapi32.dll

Ứng dụng TAPI3 32-bit Tapi3.dll

MSP

TAPISVR.EXE TSP

Registry

Telephony Control Panel, Dialing Properties, vv

Trang 10

Mỗi thư viện này tương ứng với một thời điểm phiên bản của TAPI Cácứng dụng 16-bit liên kết với Tapi.dll Trong Windows 98/NT/2000, Tapi.dll

sẽ hoạt động bằng cách ánh xạ các địa chỉ 16-bit tới các địa chỉ 32-bit , đồngthời chuyển các yêu cầu tới Tapi32.dll Với các ứng dụng 32-bit thì chúng sẽliên kết với Tapi32.dll (TAPI phiên bản 1.4 - 2.2) Với TAPI 3.0 và 3.1 thì ứngdụng sẽ liên kết với Tapi3.dll

II.1.4 MSP (Media Service Provider ) :

Trước hết MSP chỉ đến với TAPI 3, nó cho phép việc điều khiển mộtứng dụng qua phương tiện với cơ chế vận chuyển đặc biệt Một MSP luônluôn tồn tại song song với một TSP (Tapi Service Provider) Một MSP chophép việc điều khiển phương tiện thông qua việc sử dụng thiết bị cuối và cácgiao tiếp luồng được định nghĩa bởi TAPI

II.1.5 MSPI (Media Service Provider Interface) :

MSPI là tập hợp các giao tiếp và các phương thức được thực hiện bởiMSP nhằm cho phép việc điều khiển một ứng dụng TAPI 3 trên phương tiệntrong suốt phiên liên lạc truyền thông

II.1.6 TAPI Server :

TAPI Server được xem như kho trung tâm lưu trữ các thông tin về hệthống điện thoại trên máy người dùng Tiến trình của dịch vụ này giám sát cáctài nguyên cục bộ và ở xa của hệ thống điện thoại, giám sát các ứng dụngTAPI, và thực hiện một giao tiếp phù hợp với các TSP (xem mô hình lập trình

hệ thống điện thoại ở phần sau để thấy mối liên hệ giữa TAPI Server và cácthành phần khác)

Trong Windows 95, 98, NT, TAPI Server (Tapisrv.exe) sẽ chạy như mộttiến trình riêng biệt Trong Windows 2000, nó chạy trong ngữ cảnh củaSvchost.exe Khi ứng dụng nạp TAPI DLL và thực hiện công việc khởi tạoxong, DLL sẽ xây dựng một kết nối tới TAPI Server Sau đó TAPI Server sẽnạp các TSP

Trang 11

II.1.7 TSP (Telephony Service Provider ) :

TSP thực chất là một thư viện liên kết động hỗ trợ việc điều khiển cácthiết bị truyền thông thông qua một tập các hàm dịch vụ Ứng dụng TAPI sửdụng các lệnh được chuẩn hóa , và TSP điều khiển các lệnh đặc trưng mà cầnphải được trao đổi với thiết bị

II.1.8 TSPI (Telephony Service Provider Interface ) :

TSP phải tạo ra một giao tiếp TSP phù hợp để thực hiện chức năng nhưmột nhà cung cấp dịch vụ trong môi trường hệ thống điện thoại TSPI địnhnghĩa ra các hàm ngoại mà được hỗ trợ bởi TSP

II.1.9 Service Providers :

Đây được xem như bộ phận cung cấp các dịch vụ cần thiết để thực hiệnviệc điều khiển thiết bị điện thoại một cách chi tiết TSP cung cấp các điềukhiển cuộc gọi và MSP nếu có sẽ cung cấp điều khiển luồng qua phương tiện.Tất cả các TSP thực thi bên trong tiến trình TAPISRV Các bộ phậncung cấp dịch vụ có thể tạo ra các thread ngay trong ngữ cảnh của TAPISRVkhi cần và được chắc chắn rằng không có tài nguyên nào mà chúng tạo ra bịhủy do thoát khỏi một ứng dụng cá nhân nào đó Khi cần TAPI Server có thểdịch các câu lệnh của ứng dụng sang tập các lệnh phù hợp như là TSPI

Các MSP thực thi ngay trong tiến trình của ứng dụng, cho phép phản hồinhanh một số yêu cầu trong việc điều khiển phương tiện TAPI DLL cung cấpmột kết nối chặt chẽ tới MSPI

Trang 12

II.2 Mô hình lập trình cho hệ thống điện thoại :

- Ứng dụng TAPI sẽ nạp thư viện TAPI (TAPI DLL) vào và sử dụngTAPI cho các nhu cầu truyền thông

- TAPI sẽ tạo ra một kết nối với TAPI Server Ngoài ra, với TAPI phiênbản 3 sẽ tạo thêm một đối tượng MSP và kết nối với nó bằng cách sửdụng tập các câu lệnh được định nghĩa trước, hình thành nên MSPI

- Khi ứng dụng thực hiện một thao tác TAPI, thư viện TAPI sẽ làm một

số kiểm tra cần thiết , sau đó sẽ chuyển thông tin cho TAPISVR

- TAPISVR liên lạc với các tài nguyên khả dụng trên máy tính và giaotiếp với các TSP bằng cách sử dụng TSPI

- Những kết nối giữa TSP và MSP được diễn ra bằng cách sử dụng mộtkết nối ảo thông qua TAPI DLL và TAPISVR

Ứng dụng TAPI

TAPI DLL (Dynamic Link Library) (Media Service Provider)MSP

TAPISVR (TAPI Server)

TSP (TAPI Service Provider)

Device

MSPI

Service Providers TSPI

Trang 13

- TSP và MSP sẽ làm nhiệm vụ cung cấp những thông tin về các trạngthái, chức năng của thiết bị khi có yêu cầu.

Kết quả của việc lập trình theo mô hình này là ứng dụng vẫn có thể hoạtđộng khi thay thế thiết bị mới mà không cần thực hiện những thay đổi mãnguồn

II.3 Mô hình ứng dụng TAPI :

1 Khởi tạo TAPI (TAPI Initialization) :

- Khởi tạo môi trường truyền thông trên máy tính

- Việc khởi tạo là đồng bộ và không quay trở về cho tới khi thao táchoàn tất hoặc bị lỗi

- Nếu TAPISRV không đang chạy thì TAPI sẽ gọi nó

- TAPI thiết lập một kết nối cho tiến trình TAPISRV

- TAPISRV nạp vào các bộ phận cung cấp dịch vụ được chỉ định trongregistry và buộc chúng khởi tạo những thiết bị mà chúng hỗ trợ

- Lấy số phiên bản thích hợp cho ứng dụng TAPI, TAPI và bộ cungcấp dịch vụ điện thoại Công việc này bắt buộc phải làm ở TAPI 2

Khởi tạo TAPI

Điều khiển phiên làm việc

Điều khiển phiên làm việc

Điều khiển thiết bị

Điều khiển thiết bị

Điều khiển phương tiện

Điều khiển phương tiện

Kết thúc TAPI

Trang 14

- Kiểm tra và thu nhận thông tin liên quan đến các thiết bị khả dụngcho ứng dụng TAPI

- Đăng ký thông điệp để nhận được các sự kiện liên quan tới nhữngthay đổi trạng thái của đường truyền

2 Điều khiển phiên làm việc (Session Control) :

- Một phiên làm việc nói chung hay một cuộc gọi nói riêng là một kếtnối giữa hai hay nhiều địa chỉ Kết nối này là động và các đối tượngliên quan phải được tạo , quản lý và hủy khi không còn dùng Trongtrường hợp đơn giản nhất thì đây là quá trình từ lúc tạo cho đến lúcngắt kết nối một cuộc gọi

3 Điều khiển thiết bị (Device Control) :

- Thiết lập và lấy thông tin của các thiết bị

 Network : là lớp giao vận cho việc truyền thông

 Line : là một kết nối tới một network Đó là một thiết bị vật

lý như bảng mạch fax, modem, hay cạc ISDN Thiết bị có thểkhông cần kết nối thẳng vào máy tính mà có ứng dụng TAPIđang chạy

 Channel : là sự chia nhỏ của một line

 Address : một address đại diện cho một sự định vị trênnetwork Mỗi line hay channel đều có một hay nhiều địa chỉliên kết với nhau

 Terminal : một nguồn hoàn trả lại cho một địa chỉ đặc trưng

và một kiểu phương tiện

4 Điều khiển phương tiện (Media Control) :

- Phương tiện của phiên làm việc truyền thông được thiết kế cho dữliệu truyền qua Nó cho phép một ứng dụng nhận biết những thay đổicủa các kiểu phương tiện và điều chỉnh các luồng trên phương tiện

Trang 15

như âm lượng của tiếng nói được truyền Đó cũng có thể là việc gửi

và nhận các tín hiệu DTMF từ điện thoại

5 Kết thúc TAPI (TAPI Shutdown) :

- Kết thúc các phiên làm việc

- Giải phóng các tài nguyên hệ thống đang chiếm giữ

II.4 Các phiên bản TAPI :

Bất kỳ một vấn đề nào liên quan đến TAPI cũng gồm có 3 thành phần :chương trình ứng dụng, TSP, và chính bản thân của TAPI Mỗi một trong bathành phần này đều có thể hỗ trợ đến một phiên bản TAPI tối đa nào đó Đây

là công việc của ứng dụng phải kiểm tra và chọn lựa phiên bản cao nhất củaTAPI mà cả ba thành phần này đều hỗ trợ Các con số phiên bản này được duytrì sự tương thích khi Microsoft mở rộng các khả năng của TAPI Các phiênbản của hệ điều hành Windows khác nhau sẽ hỗ trợ các phiên bản Windowskhác nhau :

Hệ điều hành

Windows

Phiên bản TAPI ban đầu

Phiên bản TAPI tối đa

Phiên bản

TAPI Các chức năng chính được hỗ trợ thêm

1.4 Các chức năng cơ bản cho Windows 32 bit

2.0 Đầy đủ các chức năng cho Windows 32 bit; Hỗ trợ

Unicode 2.1 Hỗ trợ Client/Server

Trang 16

2.2 Quản lý cuộc gọi chuyên dụng

3.0 Giao tiếp kiểu COM (Component Object Model); Hỗ

trợ Media Stream Providers ; TSP 2.1 vẫn được dùng3.1 Một số điều khiển thiết bị điện thoại và một số giao

tiếp trạm chuyên dụng

Có 2 thay đổi lớn trong các phiên bản này Thứ nhất là ở phiên bản TAPI2.1 khi chức năng hỗ trợ Client/Server được thêm vào Điều này tạo khả năngcho thiết bị hệ thống điện thoại có thể được cài đặt trên một máy Server màcác máy Client trong mạng có thể truy cập được Thay đổi lớn thứ hai đến vớiTAPI 3.0 khi nó được tổ chức như một bộ các đối tượng kiểu COM , sẽ tốthơn kiểu kiến trúc ngôn ngữ C++ cho Windows Nó tạo điều kiện dễ dàng choviệc viết các ứng dụng bằng bất cứ ngôn ngữ nào : C++ , Visual Basic hayJava Ngoài ra , chức năng khác biệt chính là khả năng hỗ trợ MSP (MediaService Providers) nhằm cung cấp cách thức truy cập các luồng phương tiệntrong một cuộc gọi và có thể hỗ trợ hệ thống điện thoại theo giao thức internet(IP)

Trang 17

III DTMF trong hệ thống điện thoại :

- DTMF là viết tắt của cụm từ “Dual Tone Multi Frequency” (Cặp tín hiệu

đa tần) Mỗi khi ta nhấn phím để gọi điện thoại, các âm thanh phát ra mà tanghe được chính là các tín hiệu DTMF được gửi đến tổng đài

- Theo chuẩn thì có tổng cộng 16 cặp tín hiệu DTMF tương ứng với 16phím bấm trên điện thoại Tuy nhiên, với các máy điện thoại thông thườnghiện nay, chỉ có 12 phím trên điện thoại có thể gửi tín hiệu này, đó là : 0, 1, 2,

3, 4, 5, 6, 7, 8, 9, *, # Bốn cặp tín hiệu còn lại thì thường không dùng đến, đó

là các phím : A, B, C, D

- 16 cặp tín hiệu này được tổ chức dưới dạng ma trận 4x4 Khi ta nhấn 1phím bình thường trên điện thoại, sẽ có 2 tín hiệu được phát đi : 1 tín hiệuthuộc nhóm tần số cao và 1 tín hiệu thuộc nhóm tần số thấp Sự kết hợp của 2tín hiệu này sẽ tạo ra một tín hiệu DTMF

Ví dụ : Khi ta nhấn phím số 1 trên điện thoại thì sẽ tạo ra cặp tín hiệu (1209Hz , 697Hz), nhấn phím # thì sẽ tạo ra cặp tín hiệu (1477Hz ,

Trang 18

Chương 2 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU

Mô hình cơ sở dữ liệu quan hệ do tiến sĩ E.F.Codd sáng chế đầu tiênvào năm 1970 để lưu trữ thông tin Mô hình này là nền tảng của tất cả các hệquản trị cơ sở dữ liệu thương mại như Access, SQL Server, Oracle, vv

Trong cơ sở dữ liệu quan hệ, các mục dữ liệu được lưu trữ trong cácbảng (table), được cấu tạo bởi các dòng gọi là các mẫu tin (record) và các cộtgọi là các trường (field) Cơ sở dữ liệu quan hệ cho phép nối các bảng vớinhau với mục đích truy cập các mẫu tin liên quan với nhau chứa trong cácbảng khác nhau

Ví dụ, ta có một cơ sở dữ liệu để lưu trữ thông tin học sinh Trong cơ sở

dữ liệu này, mỗi mẩu tin tương ứng với một học sinh Mỗi mẩu tin có 6 trường: mã số , họ , tên , ngày sinh, giới tính, mã nơi sinh Đối với mọi học sinh, tamuốn biết cùng loại thông tin nhưng những chi tiết cụ thể về từng học sinh dĩnhiên là khác nhau Từng học sinh phải được xác định một cách riêng rẽ, do

đó mỗi mẫu tin sẽ có một mã nhận dạng duy nhất được gọi là khóa (key).Khóa có thể được dùng để tham chiếu chéo (cross reference) thông tin lưutrong các bảng khác nhau trong cùng cơ sở dữ liệu Các mẩu tin trong cơ sở dữliệu có dạng như sau:

II Sơ lược về ODBC ( Open DataBase Connectivity) :

Trang 19

Chuẩn ODBC ra đời năm 1982 và được hỗ trợ bởi Microsoft ODBC làmột định nghĩa chuẩn của ứng dụng lập trình giao tiếp (API) được sử dụng đểtruy cập dữ liệu quan hệ hoặc truy xuất tuần tự theo chỉ mục (indexedsequential access method (SAM)) Mọi hệ quản trị cơ sở dữ liệu đều hỗ trợgiao tiếp ODBC bằng cách cung cấp cho nó một driver tương ứng Các ứngdụng được viết bằng C, C++, Visual Basic đều có thể truy xuất được mọi cơ

sở dữ liệu được cài đặt trong các hệ quản trị cơ sở dữ liệu

ODBC nhắm tới một thiên đường cho việc truy cập dữ liệu Đó là mộtcông nghệ cho phép ứng dụng client nối với cơ sở dữ liệu từ xa Lưu trú trênmáy Client, ODBC tìm cách làm cho nguồn dữ liệu quan hệ trở thành tổngquát đối với ứng dụng Client Điều này có nghĩa là ứng dụng Client không cầnquan tâm kiểu cơ sở dữ liệu nó đang nối là gì

ODBC không phù hợp với cơ sở dữ liệu không phải là cơ sở dữ liệuquan hệ như dữ liệu dạng ISAM bởi vì nó không có các giao tiếp cho phép tìmkiếm truy cập ngẫu nhiên các mẫu tin, việc thiết lập các phạm vi hoặc duyệtqua các chỉ mục ODBC đơn giản là không được thiết kế để truy cập dữ liệuISAM

III Các cách truy xuất cơ sở dữ liệu :

III.1 DAO ( Data Access Objects ):

Như tên gọi của nó, các đối tượng truy cập dữ liệu, DAO được sử dụng

để thao tác với cơ sở dữ liệu thông qua lập trình Với DAO ta có thể thi hànhcác câu truy vấn, cập nhật dữ liệu trong các bảng và cấu trúc cho cơ sở dữ liệu.DAO cũng được các nhà lập trình sử dụng để truy cập các cơ sở dữ liệu trênmáy cá nhân hay Client/Server và DAO hoạt động khá hiệu quả với cơ sở dữliệu Access

III.2 RDO (Remote Data Object) :

RDO tương tự như DAO nhưng mục đích chính là để truy cập dữ liệu từ

xa thông qua ODBC

III.3 ADO (ActiveX Data Objects) :

Trang 20

ADO là nền tảng của kỹ thuật truy cập cơ sở dữ liệu Internet Tuy nhiên,

ta có thể sử dụng ADO không chỉ để truy cập dữ liệu thông qua trang Web màcòn có thể dùng nó để lấy dữ liệu từ ứng dụng ADO là giao diện dựa trên đốitượng cho công nghệ dữ liệu mới nổi gọi là OLE DB

OLE DB được thiết kế để thay thế ODBC như một phương thức truy cập

dữ liệu ODBC hiện thời là tiêu chuẩn phía Client để truy cập các cơ sở dữ liệuquan hệ OLE DB đi sâu hơn một bước bằng cách làm cho tất cả các nguồn

dữ liệu trở thành tổng quát đối với ứng dụng Client

SQL là viết tắt của cụm từ “Structured Query Language” , tạm dịch làngôn ngữ truy vấn có cấu trúc SQL thuộc loại ngôn ngữ thế hệ thứ tư Việc sửdụng nó có thể giải quyết nhanh chóng vấn đề cung cấp thông tin mà với ngônngữ thế hệ thứ ba phải tốn khá nhiều thời gian mã hóa Cùng với sự phát triểnmạnh mẽ của các hệ quản trị cơ sở dữ liệu, SQL ngày càng được mở rộng

 Ngôn ngữ : SQL không phải là ngôn ngữ thảo chương theo nghĩa cổđiển mà là một tập hợp các động từ cho phép thao tác các bảng(table) Các động từ này có thể có ở trong các ngôn ngữ khác ( C,COBOL, FORTRAN, )

 Truy vấn : Đây không phải là chức năng duy nhất SQL còn chophép xác định cấu trúc dữ liệu , đặc trưng hóa ràng buộc toàn vẹn đểđảm bảo sự tương thích giữa chúng, thiết lập các luật truy cập đểđảm bảo bí mật thông tin Những chức năng này đều thực hiện mộtcách đơn giản thông qua khả năng hỏi và truy xuất Hiện tại mọi cốgắng để làm phong phú SQL đều nhằm vào hướng này

 Có cấu trúc : SQL không phải là một mô hình hợp thức khi đốichiếu với lý thuyết ngôn ngữ hình thức Trong nó còn các tồn tại ,

ví dụ khi dùng kỹ thuật lồng nhau , tổ hợp các chức năng, vv

Ngày nay SQL đã được chuẩn hóa và trở thành chuẩn mực của việctruy xuất các cơ sở dữ liệu quan hệ Những giao diện khác thực hiện qua thựcđơn , cửa sổ, lưới, vv thường được cung cấp bởi SQL SQL trở thành cácđiểm vào bắt buộc đối với các hệ quản trị cơ sở dữ liệu quan hệ

Trang 21

Ngoài SQL, trên thế giới còn có các ngôn ngữ khác như QUEL, QBEcũng cho phép thao tác cơ sở dữ liệu quan hệ QUEL là ngôn ngữ do đại họcBerkeley đề nghị cho hệ quản trị cơ sở dữ liệu quan hệ INGRES của họ Hiệntại QUEL ngày càng ít được dùng QBE (Query By Example) là ngôn ngữ

“mắt lưới” xuất phát từ logic, thông thường nó được xây dựng trên SQL QBEngày nay vẫn còn được sử dụng bởi Access

Một cách tổng quát, SQL dùng mọi tiêu chuẩn tìm kiếm được xây dựng

từ logic mệnh đề bậc nhất, nó gồm 4 từ khóa cơ bản : SELECT (Tìm),INSERT (Chèn), DELETE (Xóa), UPDATE (Sửa)

Các đối tượng truy cập dữ liệu DAO, RDO, ADO đều hỗ trợ rất mạnhviệc thực thi các câu lệnh SQL nhằm tạo sự uyển chuyển, linh động và tối ưutrong các thao tác dữ liệu

Trang 22

Chương 3

SƠ LƯỢC VỀ TIẾNG NÓI

VÀ CÁC PHƯƠNG PHÁP TỔNG HỢP TIẾNG NÓI

I Sơ lược về tiếng nói :

I.1 Đặc t ính c hung ủa c t iếng n ói :

Tiếng nói là công cụ diễn đạt thông tin rất uyển chuyển và đặc biệt Khichúng ta phát ra một tiếng thì có rất nhiều bộ phận như lưỡi, thanh môn, môi,họng, thanh quản…kết hợp với nhau để tạo thành âm thanh Âm thanh này lantruyền trong không khí để đến tai người nhận; chính vì sự kết hợp của rấtnhiều bộ phận để tạo ra âm thanh này nên âm thanh được phát ra ở mỗi lầnhầu như là khác nhau Vì vậy việc phân chia tiếng nói thành những loại có đặctính riêng là rất khó Ở đây người ta tạm chia thành ba loại:

Khi chúng ta nói chữ "a" hay chữ "o" thanh môn của ta rung và giãn ra, ápsuất không khí ban đầu lớn và từ từ giảm xuống, lúc này âm phát ra có dạngsóng wave đặc trưng như hình vẽ

Trang 23

Là âm khi ta phát ra một tiếng mà thanh môn không rung Có hai loại cơbản: phụ âm sát (fricative) và âm bật hơi (aspirate) Đối với phụ âm sát (khiphát âm vần "s"), điểm co thắt được tạo ra tại vài điểm trên bộ máy phát âm,

và không khí được đẩy qua nó Vì điểm co thắt có khuynh hướng xảy ra gầnmiệng, tiếng dội của bộ máy phát âm có ảnh hưởng nhỏ trong việc tạo nên phụ

âm sát Đối với âm bật hơi (khi phát âm vần "h") sự dao động không khí xảy

ra tại thanh môn bởi vì dây thanh âm được giữ lại một phần Trong trường hợpnày, tiếng dội của bộ máy phát âm điều chỉnh phổ của tiếng ồn Điều này đượcthấy rõ nhất khi chúng ta nghe những âm thanh nhỏ, xì xào

Trong trường hợp này, bộ máy phát âm được đóng kín, áp suất không khí bịnén và được giải thoát thình lình Sự giải thoát nhanh chóng áp suất này tạonên một sự kích thích ngắn cho bộ máy phát âm Sự kích thích ngắn này có thểxảy ra với sự có rung / không rung của dây thanh môn để tạo nên âm thanhvoice/unvoice plosive

I.2 Công nghệ Text–to–speech dùng để tổng hợp tiếng nói :

Text-to-speech là một kỹ thuật dùng để chuyển dạng văn bản (text) sangtiếng nói (speech) Text–to–speech được phân loại dựa vào phương phápchuyển văn bản sang tiếng nói :

Trang 24

Phương pháp này nối những đoạn ngắn âm thanh được số hóa lại vớinhau và tạo ra âm thanh liên tục Mỗi diphone bao gồm hai âm vị (phonemes),một âm vị bắt đầu âm ,âm vị còn lại kết thúc âm Ví dụ từ "hello" bao gồm

những âm vị sau: " h eh l oe" Những diphone tương ứng là "silence - h h -eh eh

-l l-oe oe-silence”

Diphone được tạo bằng cách thu giọng người và xác định một cách cẩnthận tỉ mỉ vị trí bắt đầu và kết thúc của những âm vị Mặc dù kỹ thuật này cóthể tạo âm giống thật, phải tốn công sức để làm việc này và giọng không cốđịnh bởi những âm vị chỉ đặc trưng bởi ngôn ngữ của người phát âm

I.3 Sự cần thiết của công nghệ Text–to–speech (TTS) :

Một ứng dụng sử dụng TTS khi nó cần chuyển dạng văn bản mang tínhchất động sang dạng tiếng nói Đó là những văn bản có thể thay đổi thườngxuyên, không cố định Nếu chúng ta sử dụng phương pháp ghi âm cho toànvăn bản thì trước hết là không gian lưu trữ sẽ cần rất lớn nếu như văn bản đódài hoặc có nhiều văn bản khác nhau Và sau đó nếu ta thay đổi văn bản khácthì sẽ phải tiến hành ghi âm lại

Nói tóm lại TTS có một số lợi ích và ứng dụng như sau :

Trang 25

- Đọc văn bản động : TTS hữu dụng cho những văn bản thay đổi thường

xuyên Ví dụ : sau khi nhận được e-mail, ta có thể yêu cầu máy tự đọc chomình nghe

- Kiểm tra văn bản : Với một văn bản chi chít chữ, ta có thể yêu cầu máy

đọc để phát hiện những từ gõ sai

- Tiết kiệm không gian lưu trữ

- Thông báo bằng giọng nói thay cho chuỗi thông báo trên màn hình

- Ứng dụng truyền thông : TTS được ứng dụng trong hộp thư thoại, hệ

thống trả lời tự động

II.1 Sự cần thiết của việc tổng hợp tiếng nói :

Khi cần thông báo cho người sử dụng bằng tiếng nói thì những chuỗitiếng nói này phải được thu âm trước Cách đơn giản nhất là mỗi câu nói tathu âm lại thành một file Khi cần đọc câu nào thì ta mở file âm thanh tươngứng với câu đó Cách làm này có ưu điểm là trung thực và đạt độ tự nhiên caonhưng có hai nhược điểm rất lớn là không linh hoạt và tốn nhiều dung lượngnhớ để lưu trữ các file âm thanh Nhằm tăng tính linh hoạt cho hệ thống tựđộng và giảm dung lượng lưu trữ , ta phải dùng kỹ thuật tổng hợp tiếng nói

II.2 Các tiêu chuẩn cần thỏa mãn khi tổng hợp tiếng nói :

Tiếng nói tổng hợp dù sao cũng không phải là tiếng nói thực cho nênkhông thể giống hoàn toàn tiếng nói tự nhiên Tuy nhiên khi sử dụng kỹ thuậtnày, cần thỏa 2 tiêu chuẩn tối thiểu:

- Đạt độ trung thực tương đối để mọi người có thể hiểu được mà không cầnhọc hỏi hoặc tập trung nghe cao độ Nếu không đạt được điều này thì tiếng nóitổng hợp sẽ không thể sử dụng được trong thực tế vì sẽ làm người nghe khóchịu

- Khối lượng lưu trữ không quá lớn để tiện sử dụng và có thể phổ biến nhiềunơi

II.3 Các phương pháp tổng hợp tiếng nói cho tiếng Việt :

Trang 26

Có 2 hướng tổng hợp tiếng nói chính là tổng hợp dựa vào việc phântích tần số và tổng hợp dựa vào việc ghép âm Đối với hướng phân tích tần số,

ta phân tích các đặc trưng tiếng nói để tìm ra tần số, pha Khi tổng hợp sẽ táitạo tiếng nói từ các đặc tính này Theo nghiên cứu của các chuyên gia thìhướng này rất phức tạp và chất lượng âm còn kém Trong khi đó, hướng tổnghợp dựa vào việc ghép âm dễ dàng được hiện thực trên máy tính hơn

- Khối lượng dữ liệu của phương pháp này là khá lớn so với các phươngpháp khác Tuy nhiên, với dung lượng đĩa cứng ngày nay thì vấn đề dunglượng như thế không phải là vấn đề đáng lo ngại

Ví dụ: "bằng" được ghép từ [b]+[ằ]+[ng]

Phương pháp này có khối lượng lưu trữ nhỏ nhất vì chỉ có 28 phụ âm

và 68 nguyên âm cùng các biến thể thanh Khối lượng lưu trữ:

(28+68) * 8000 * 1 * 1 * 0.8 = 614,400 byte

 Nhận xét :

Trang 27

- Khối lượng lưu trữ rất nhỏ

- Rất khó hiện thực vì khi phụ âm có vai trò làm phụ âm cuối, chúng đượcphát âm khác với khi chúng làm phụ âm đầu Phụ âm đầu mở ra để kết hợp vớinguyên âm, phụ âm cuối khép lại không kết hợp với nguyên âm nữa Cần chú

ý khi phát âm nguyên âm trong trường hợp âm cuối là loại tắc (vô thanh), ví

dụ như p, t, c Khi này thanh điệu không thể hiện trên phụ âm cuối mà thể hiện

ở giai đoạn chuyển tiếp từ nguyên âm sang âm cuối

- Chất lượng âm của phương pháp này rất thấp

Ví dụ : "bằng" được ghép từ [b] + [ ằng]

Một từ được tách ra làm hai phần là phụ âm đầu và vần điều này căn cứtrên đặc điểm tiếng Việt là phụ âm đầu ít phụ thuộc vào phần vần và thanhđiệu Trong đó, phụ âm đầu được cắt rất ngắn chỉ còn lại âm bật Phần vầncũng được cắt bỏ ở phần đầu một lượng tưng ứng

Phương pháp này cho chất lượng âm thanh tương đương so với phươngpháp ghép từ đơn Theo phương pháp này ta tách được 28 phụ âm đầu và 650phần vần Với cách thu âm như trước thì khối lượng lưu trữ sẽ là:

650 * 8000 * 1 * 1 * (0.8 - 0.15) + 28 * 8000 * 1 * 1 * 0.15 = 3,143,600 byte

Trang 28

 Nhận xét :

- Một từ tiếng việt bao gồm 2 phần: phần âm đầu và phần vần Âm đầu chủyếu là các phụ âm trong tiếng việt Ứng với một loại âm đầu ( ở đây chủ yếu làphụ âm ) phần vần ở phía sau sẽ thay đổi theo một quy luật nào đó so với phầnvần chuẩn khi chưa có âm đầu tuỳ theo cách phát âm của phụ âm Chẳng hạn :/t/ /am/ t

/ch/ /am/ ch

nếu đem /ch/ ráp với /am/ t thì tiếng phát ra sẽ không trung thực, tức là khi xâydựng mô hình âm thanh phần vần độc lập với so với âm đầu sẽ không tận dụngđược hết tính phân biệt giữa các từ do sự biến đổi phổ tín hiệu phần vần so vớitác động của các âm đầu khác nhau

- Để tìm ra quy luật biến đổi phổ tín hiệu này đòi hỏi ta phải có máy phântích phổ và đi vào lĩnh vực xử lý tiếng nói, ta mới có thể quan sát và phân tíchmẫu sóng âm tại từng thời điểm nhằm tìm ra quy luật

Âm của phụ âm “tr”

Âm của vần “inh” Vần “inh” sau khi được xén bớt phần thừa

Âm “tr” sau khi được xén bớt phần thừa

Âm của từ “trinh”

HÌNH MÔ TẢ CÁCH GHÉP HAI ÂM THÀNH TỪ

Trang 29

Ví dụ "bằng" được ghép từ [bà]+[ằng]

Phương pháp này gần giống phương pháp trên nhưng phần phụ âm đầuđược cắt lấn sang phần vần Theo đó, ta sẽ có 28*650 = 18,200 phần phụ âmđầu tương ứng với 650 phần vần Trong thực tế, chỉ cần khoảng 1400 phầnđầu Như vậy khối lượng lưu trữ tổng cộng sẽ là:

âm loại một

- Ngoài ra chất lượng âm của phương pháp này cũng chưa được kiểmnghiệm để có thể đánh giá ưu điểm về chất lượng so với phương pháp loại 1

III.1 Khái niệm về file Wave và file RIFF :

File Wave là một dạng file theo chuẩn của Microsoft cho phép lưu trữ dữliệu sóng âm được số hóa Nó hỗ trợ rất đa dạng các thông số của âm thanhnhư số bit lượng tử hóa, tốc độ lấy mẫu, số kênh Dạng file này rất phổ biếntrên các thế hệ máy tính IBM và được sử dụng rộng rãi trong các chương trìnhchuyên nghiệp để xử lý các sóng âm được số hóa

File Wave là một trong số các file thuộc chuẩn của file RIFF (ResourceInterchange File Format - Dạng file trao đổi tài nguyên) File RIFF sử dụngphương pháp lưu trữ dữ liệu trong các chunk Mỗi chunk sẽ gồm 3 trường :

 Tên nhận dạng của chunk (ID) : gồm 4 byte kiểu Char

 Kích thước của chunk (Size) : Kiểu DoubleWord Giá trị này không

bao gồm 4 byte của ID và 4 byte của Size

Trang 30

 Dữ liệu của chunk đó (Data)

Đặc biệt, chunk RIFF có thể chứa các chunk khác trong trường dữ liệu

Các chunk này được gọi là subchunk và chunk RIFF lúc này được gọi là

parent chunk

Một file RIFF luôn bắt đầu bằng một chunk RIFF Kích thước của chunkRIFF là kích tổng số byte mà trường dữ liệu của nó chiếm, nói cách khácchính là kích thước của file RIFF - 8

Tất cả các chunk khác trong file RIFF đều là subchunk của chunk RIFF.Chunk RIFF có thêm một trường bổ sung nằm ở 4 byte đầu tiên trong trường

dữ liệu của nó Trường bổ sung này được gọi là kiểu định dạng (form type) ,gồm 4 byte kiểu Char Nó cho biết dạng dữ liệu được lưu trữ bên trong fileRIFF là gì Ví dụ, đối với các file Wave trường này sẽ có tên là “WAVE” ,đối với các file Avi trường này sẽ có tên là “AVI ”

Hình sau minh họa 2 subchunk trong chunk RIFF của file RIFF :

III.2 Cấu trúc file Wave :

Một file wave là một tập hợp các loại chunk khác nhau Vì file Wavechính là file RIFF nên chunk đầu tiên sẽ là chunk RIFF Ngoài ra, có 2 chunkrất quan trọng không thể thiếu là chunk Format mô tả các thông số của sóng

âm như tốc độ lấy mẫu, số bit lượng tử hóa, vv Chunk thứ hai là chunk Data

để chứa dữ liệu âm thanh đã được số hóa Các chunk khác tùy trường hợp cóthể có, có thể không

Trường dữ liệu (Data) của chunk RIFF

Trang 31

III.2.1 Chunk Format :

Cấu trúc của chunk Format được định nghĩa như sau :

 Trước hết chunk Format luôn có tên nhận dạng là “fmt ” Kích thước

của chunk Format có thể thay đổi tùy theo giá trị của wFormatTag.

Giá trị này cho biết chuẩn nén âm thanh Có hơn 50 chuẩn của

Microsoft và các hãng khác được định nghĩa trong file mmreg.h

Thông thường chuẩn PCM (Pulse Code Modulation) của Microsoft

là chuẩn phổ biến nhất Với chuẩn này, các mẫu âm thanh được lưutrữ sẽ không được nén và có giá trị được định nghĩa là 1

âm thanh stereo, 4 cho âm thanh 4 kênh, vv

trong một giây, đơn vị là Hertz Có 3 giá trị thông dụng là : 11025,

22050 và 44100 Hz mặc dù các tốc độ khác vẫn được dùng

Nếu là chuẩn PCM thì giá trị này chính là dwSamplesPerSec *

wBlockAlign Ngược lại, giá trị này phải được tính toán phù hợp với

chuẩn tương ứng

byte Ví dụ một khung mẫu âm thanh 16-bit mono là 2 byte, 16-bit

stereo là 4 byte Nếu chuẩn là PCM thì giá trị này bằng wChannels * (wBitsPerSample / 8)

typedef struct { WORD wFormatTag;

Trang 32

wBitsPerSample cho biết số bit dùng để lượng tử hóa mỗi điểm lấy

mẫu Nếu chuẩn là PCM thì giá trị này là 8 hoặc 16 Vì các mẫu phảiđược lưu dạng BYTE hoặc WORD nên khi lưu trữ vẫn phải lưu hẳn

1 BYTE hoặc 1 WORD Ví dụ số bit lượng tử hóa là 12 thì sẽ có 4bit thừa không dùng tới

vào cuối cấu trúc WAVEFORMATEX Thông tin này được dùng khi

chuẩn khác PCM Với chuẩn PCM thì giá trị này bẳng 0

III.2.2 Chunk Data :

Sau chunk Format là chunk Data Chunk này chỉ đơn giản chứa cácmẫu âm thanh đã được số hóa Tùy theo số kênh được chọn và số bit dùng đểlượng tử hóa mà các mẫu âm thanh này được sắp xếp khác nhau trong chunkData Có 2 khái niệm về điểm mẫu và khung mẫu

 Một điểm mẫu chính là một giá trị đại diện cho một mẫu âm thanhđược lấy tại một thời điểm nào đó Nếu số bit dùng để lượng tử hóa là 8 thì giátrị của một điểm mẫu dao động từ 0 đến 255 Nếu số bit dùng để lượng tử hóa

là 16 thì giá trị của một điểm mẫu dao động từ đến -32768 đến 32767 Đối với

âm thanh có nhiều kênh, các điểm mẫu từ mỗi kênh sẽ được xếp xen kẽ Ví dụvới âm thanh stereo, các điểm mẫu sẽ được lưu trữ như sau : mẫu đầu tiên củakênh trái rồi tới mẫu đầu tiên của kênh phải, tiếp đó là mẫu thứ hai của kênhtrái rồi tới mẫu thứ hai của kênh phải, và cứ như thế

 Một khung mẫu bao gồm nhiều điểm mẫu được phát đồng thời Ví

dụ, với âm thanh stereo, 2 điểm mẫu thuộc 2 kênh sẽ tạo thành một khung mẫu

Khung mẫu 1 Khung mẫu 2 Khung mẫu N

Kênh 1 Kênh 2 Kênh 1 Kênh 2 Kênh 1 Kênh 2

= 1 điểm mẫu

Với âm thanh mono thì mỗi khung mẫu chỉ có 1 điểm mẫu Đối với âm thanh

có nhiều kênh thì tùy theo số lượng kênh mà các thứ tự của các điểm mẫutrong một khung mẫu sẽ khác nhau :

Trang 33

Trái Sau

Phải Sau

-Tóm lại cấu trúc file Wave được mô tả như bảng sau :

Tên của chunk RIFF

Kích thước chunk RIFF

Định dạng của file RIFF

Tên của chunk Format

Kích thước chunk Format

Chuẩn của file Wave

Trang 34

Số kênh

mono = 1stereo = 2Tốc độ lấy mẫu

wChannels *(wBitsPerSample / 8)

Số bit lượng tử hóa

816Tên của chunk Data

Kích thước chunk Data

wBlockAlign * Tổng sốkhung mẫu

IV.1 Dùng hàm sndPlaySound hoặc PlaySound :

Windows cung cấp 2 hàm sau để phát một file wave : sndPlaySound và PlaySound Hai hàm này tuy gọn, nhẹ, đơn giản nhưng sẽ nạp toàn bộ dữ liệu

âm thanh vào bộ nhớ, và cũng vì vậy mà kích thước của file sẽ bị giới hạn đến

100 KB Ngoài ra, hai hàm này cũng đòi hỏi định dạng của dữ liệu âm thanhphải được nhận biết bởi trình điều khiển âm thanh và chỉ phát ra soundcard

IV.2 Dùng MCI (Media Control Interface) :

Các hàm của MCI được chứa trong thư viện Winmm.lib của Windows.Các khai báo đặc tả liên quan được cung cấp trong 2 file Mmsystem.h vàWindows.h

Để phát một file Wave có kích thước lớn hơn, Windows cung cấp mộtgiao tiếp MCI (Media Control Interface) Đây là một giao tiếp rất mạnh thựchiện công việc giao tiếp giữa ứng dụng và thiết bị âm thanh để thu hoặc phátrất nhiều loại file âm thanh như : phát các bản nhạc từ CD Audio, các fileWave, Midi, Video, vv

Trang 35

MCI là tập hợp các hàm, mỗi hàm có một chức năng riêng biệt Điều đặcbiệt là MCI sử dụng các chuỗi lệnh để nhận biết công việc cần làm Ví dụ,

hàm mciSendString() sẽ gửi các chuỗi lệnh sau để phát 10000 mẫu âm thanh :

mciSendString(

"open c:\Sound\MyWave.wav type waveaudio alias finch",

lpszReturnString, lstrlen(lpszReturnString), NULL);

mciSendString("set finch time format samples", lpszReturnString,

IV.3 Dùng các hàm cấp thấp của Windows :

Các hàm này được chứa trong thư viện Winmm.lib của Windows Các khaibáo đặc tả liên quan được cung cấp trong 2 file Mmsystem.h và Windows.h

4 hàm chính sau đây sẽ luôn được dùng để điều khiển việc phát một file Wave :

Ngoài ra, hàm waveOutOpen() còn đòi hỏi một số tham số quan trọng như :

mã nhận dạng thiết bị âm thanh, handle của thiết bị sau khi mở, con trỏ tới

Trang 36

một cấu trúc mô tả file Wave Để chọn thiết bị âm thanh mặc định, ta dùnghằng WAVE_MAPPER thay cho mã nhận dạng thiết bị âm thanh.

Hàm waveOutPrepareHeader() sẽ tạo ra một header cho khối dữ liệu âm

thanh sẽ phát bao gồm cả các mẫu âm thanh đã được nạp vào bộ nhớ

Cuối cùng, hàm waveOutWrite() sẽ bắt đầu gửi khối dữ liệu âm thanh

này ra thiết bị để phát với header đó

Sau khi phát xong, ta phải gọi hàm waveOutClose() để đóng thiết bị đã

mở nhằm giải phóng tài nguyên hệ thống

Tất cả các hàm liên quan đến công việc phát âm thanh này đều hoạt động

thông qua handle của thiết bị mà được lấy từ hàm waveOutOpen()

Nhận xét chung về 3 cách phát file Wave :

- Theo thứ tự của 3 cách nêu trên thì tính đơn giản tỷ lệnghịch với tính linh động, uyển chuyển trong việc phát một fileWave, nghĩa là ta muốn nắm quyền kiểm soát, điều khiển càngnhiều thì phải thực hiện càng nhiều thao tác

- Trong 3 cách phát file Wave trên thì 2 cách đầu (dùng hàmsndPlaySound, PlaySound hoặc MCI) ta không cần quan tâm đếnviệc đọc file Wave và nạp các mẫu âm thanh vào bộ nhớ Riêngcách thứ ba thì điều này là bắt buộc Phần dưới đây sẽ nói sơ vềcách đọc dữ liệu âm thanh vào bộ nhớ trước khi gọi các hàm đó

Để thao tác với file Wave, Windows cung cấp hàng loạt các hàm được chứatrong thư viện Winmm.lib Sau đây là một số hàm chính thực hiện công việcđọc file Wave :

Để làm việc với file Wave, ta phải mở file đó bằng hàm :

Trang 37

Với MCI đã giới thiệu ở phần trên để phát một file Wave, ta cũng có thểdùng MCI để thu âm Cách thứ hai là dùng các hàm cấp thấp của Windows.Như đã giới thiệu, các hàm này sẽ cho ta sự linh hoạt trong mọi thao tác.Trước hết ta phải mở thiết bị âm thanh bằng hàm :

waveInOpen()

Tương tự như khi phát, ta phải cung cấp địa chỉ của một hàm gọi là hàm

CallBack mà sẽ phát ra các sự kiện liên quan đến quá trình thu âm Các thông

điệp tương ứng với các sự kiện này là :

MM_WIM_OPEN Được gửi khi thiết bị được mở bằng hàm

waveInOpen()

MM_WIM_DATA Được gửi khi thiết bị hoàn tất việc thu âm

sau khi gọi hàm waveInStart()

MM_WIM_CLOSE Được gửi khi thiết bị được đóng bằng hàm

waveInClose()

Trang 38

Ngoài ra, ta cũng cần cung cấp mã nhận dạng thiết bị âm thanh và một cấutrúc mô tả các thông số định dạng của file Wave Để chọn thiết bị âm thanhmặc định, ta dùng hằng WAVE_MAPPER thay cho mã nhận dạng thiết bị âmthanh.

Một việc khác không thể thiếu là cấp phát bộ nhớ để lưu các mẫu âmthanh thu được Dựa vào các thông số được mô tả trong cấu trúc file Wave, taphải tính toán dung lượng bộ nhớ tối thiểu cần được cấp phát trong mộtkhoảng thời gian nào đó Cụ thể là :

dwAvgBytesPerSec * thời gian thu âm

Kế đó, ta sẽ tạo ra header file sẽ thu âm bao gồm cả vùng nhớ vừa cấpphát bằng hàm :

Trang 39

PHẦN 3

THIẾT KẾ

HỆ THỐNG

Trang 40

Chương 1

SƠ ĐỒ HOẠT ĐỘNG CỦA HỆ THỐNG

Nếu nhìn một cách tổng quát thì chương trình sẽ gồm 4 giai đoạn chính :

 Kết nối cuộc gọi tới

 Tiếp nhận yêu cầu của người gọi

 Tìm dữ liệu trong máy tính

 Thông báo kết quả tìm được

Dưới đây là lưu đồ hoạt động tổng quát của chương trình :

Bắt đầu

Chuông reo Kết nối

Có phím bấm

Tìm dữ liệu Thông báo kết quả

F

T

T F

Ngày đăng: 22/11/2012, 12:45

HÌNH ẢNH LIÊN QUAN

XI.Mơ hình lập trình cho hệ thống điện thoạ i: - Thông báo kết quả học tập qua điện thoại
h ình lập trình cho hệ thống điện thoạ i: (Trang 12)
Kết quả của việc lập trình theo mơ hình này là ứng dụng vẫn cĩ thể hoạt động khi thay thế thiết bị mới mà khơng cần thực hiện những thay đổi mã  nguồn. - Thông báo kết quả học tập qua điện thoại
t quả của việc lập trình theo mơ hình này là ứng dụng vẫn cĩ thể hoạt động khi thay thế thiết bị mới mà khơng cần thực hiện những thay đổi mã nguồn (Trang 13)
Mơ hình cơ sở dữ liệu quan hệ do tiến sĩ E.F.Codd sáng chế đầu tiên vào năm 1970 để lưu trữ thơng tin - Thông báo kết quả học tập qua điện thoại
h ình cơ sở dữ liệu quan hệ do tiến sĩ E.F.Codd sáng chế đầu tiên vào năm 1970 để lưu trữ thơng tin (Trang 18)
HÌNH MƠ TẢ CÁCH GHÉP HAI ÂM THÀNH TỪ - Thông báo kết quả học tập qua điện thoại
HÌNH MƠ TẢ CÁCH GHÉP HAI ÂM THÀNH TỪ (Trang 28)
HÌNH MÔ TẢ CÁCH GHÉP HAI ÂM THÀNH TỪ - Thông báo kết quả học tập qua điện thoại
HÌNH MÔ TẢ CÁCH GHÉP HAI ÂM THÀNH TỪ (Trang 28)
Hình sau minh họa 2 subchunk trong chunk RIFF của file RIFF : - Thông báo kết quả học tập qua điện thoại
Hình sau minh họa 2 subchunk trong chunk RIFF của file RIFF : (Trang 30)
Hình sau minh họa 2 subchunk trong chunk RIFF của file RIFF : - Thông báo kết quả học tập qua điện thoại
Hình sau minh họa 2 subchunk trong chunk RIFF của file RIFF : (Trang 30)
 Tĩm lại cấu trúc file Wave được mơ tả như bảng sau: - Thông báo kết quả học tập qua điện thoại
m lại cấu trúc file Wave được mơ tả như bảng sau: (Trang 33)
3 kênh Trái Phải Giữa - Thông báo kết quả học tập qua điện thoại
3 kênh Trái Phải Giữa (Trang 33)
SƠ ĐỒ HOẠT ĐỘNG CỦA HỆ THỐNG - Thông báo kết quả học tập qua điện thoại
SƠ ĐỒ HOẠT ĐỘNG CỦA HỆ THỐNG (Trang 40)
 Mỗi hình elip tượng trưng cho một thủ tục để thực hiện cơng việc tương ứng. - Thông báo kết quả học tập qua điện thoại
i hình elip tượng trưng cho một thủ tục để thực hiện cơng việc tương ứng (Trang 41)
II.Mơ hình quan niệm dữ liệ u: - Thông báo kết quả học tập qua điện thoại
h ình quan niệm dữ liệ u: (Trang 48)
I.Vận hành : - Thông báo kết quả học tập qua điện thoại
n hành : (Trang 61)
Lần đầu tiên chạy chương trình, hộp thoại cấu hình sẽ hiện ra cho người dùng chọn modem, số tiếng chuơng reo và thời gian rỗi tối đa - Thông báo kết quả học tập qua điện thoại
n đầu tiên chạy chương trình, hộp thoại cấu hình sẽ hiện ra cho người dùng chọn modem, số tiếng chuơng reo và thời gian rỗi tối đa (Trang 61)
Nếu cĩ người gọi tới, hình ảnh minh họa tiếng chuơng đang reo của chiếc điện thoại như sau :  - Thông báo kết quả học tập qua điện thoại
u cĩ người gọi tới, hình ảnh minh họa tiếng chuơng đang reo của chiếc điện thoại như sau : (Trang 62)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w