Thời đại thông tin đang mang lại cho chúng ta nhiều thành tựu to lớn. Sự bùng nổ thông tin đã và đang diễn ra mạnh mẽ ở tất cả các nước trên thế giới.
Trang 1LỜI NÓI ĐẦU
Thời đại thông tin đang mang lại cho chúng ta nhiều thành tựu to lớn Sựbùng nổ thông tin đã và đang diễn ra mạnh mẽ ở tất cả các nước trên thế giới Từkhi ra đời cho đến nay Công nghệ thông tin là một khoa học tuy mới mẽ song đã
có ảnh hưởng rất lớn và chiếm vị trí quan trọng trong mọi lĩnh vực của cuộc sống:kinh tế, giáo dục, y tế, viễn thông, …
Một trong số đó phải kể đến lĩnh vực viễn thông Bên cạnh công nghệ điện
thoại truyền thống PSTN (Public Switch Telephone Network) đã tồn tại và phát
triển từ lâu, thì công nghệ điện thoại IP cũng đã được thương mại hoá từ năm
1995 Với lợi thế giá cước thấp, chất lượng dịch vụ có thể chấp nhận được đã làmnhiều nhà kinh doanh viễn thông quan tâm Tại Việt Nam, dịch vụ này cũng vừamới được đưa vào sử dụng nhưng còn mang tính chất thử nghiệm
Hiện nay, cũng đã có nhiều phần mềm xây dựng dịch vụ trả lời điện thoại tựđộng IP và đã mang lại nhiều lợi ích không nhỏ Nhận thấy được khả năng pháttriển của dịch vụ này và những ứng dụng vô cùng to lớn của nó trong tương lai
Em đã lựa chọn đề tài “Tìm hiểu về TAPI và xây dựng mô hình thử nghiệm
trả lời điện thoại tự động bằng máy tính” Đây không phải là một đề tài mới
mẽ, đã có nhiều cá nhân và tổ chức nghiên cứu, tìm hiểu và xây dựng Song, nó làmột đề tài rất thú vị, và chắc hẳn còn nhiều điều cần phải đề cập đến
Với phạm vi của đề tài, em đã đề cập tới một số vấn đề liên quan đến: Giaotiếp lập trình hệ thống điện thoại TAPI; Công nghệ điện thoại IP và các ứng dụngcùng với những ưu nhược điểm của nó Từ đó xây dựng được mô hình ứng dụngTAPI, mô hình lập trình hệ thống điện thoại,…Có sơ lược một số vấn đền liênquan đến file tiếng nói (Wave), cách thu và phát file tiếng nói, … Trên cơ sở lý
thuyết đã nghiên cứu và tìm hiểu đi đến xây dựng một ứng dụng “Trả lời điện thoại tự động bằng máy tính”.
Trang 2Để hoàn thành được đề tài này, em đã nhận được sự giúp đỡ nhiệt tình ,những lời động viên khích lệ của thầy giáo – Thạc sỹ Hoàng Hữu Việt – người đãtrực tiếp hướng dẫn em cùng với các thầy cô giáo trong khoa Công Nghệ ThôngTin và các thành viên lớp 43A Qua đây, cho phép em được bày tỏ lòng biết ơn sâusắc tới thầy giáo Hoàng Hữu Việt, là người đã định hướng và tận tình giúp đỡ emtrong quá trình học tập và nghiên cứu Cảm ơn các thầy, cô giáo khoa Công nghệThông tin trường Đại Học Vinh đã giảng dạy và chỉ bảo những vấn đề liên quanđến đề tài Xin cảm ơn người thân và bạn bè đã giúp đỡ và tạo điều kiện cho emtrong suốt quá trình học tập và hoàn thành khoá luận Em xin chân thành cảm ơn.
Mặc dù trong quá trình thực hiện đề tài đã có nhiều cố gắng Song, do hạnchế về mặt trình độ của bản thân cũng như thời gian thực hiện; nên chắc chắnkhông thể tránh khỏi những thiếu sót Vậy, em rất mong nhận được sự quan tâm,giúp đỡ và đóng góp ý kiến từ phía thầy, cô giáo và các bạn sinh viên Nhằm làmcho đề tài hoàn thiện hơn và có thể phát triển thành một ứng dụng lớn có tính khảthi
Vinh, tháng 5 năm 2006 Sinh viên thực hiện:
Nguyễn Văn Hùng
Trang 3Chương 1: TỔNG QUAN VỀ TAPI
I.Giao tiếp lập trình cho hệ thống điện thoại TAPI (Telephony Application Program Interface)
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 Nóđượ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ều hànhWindows Nói cách khác, TAPI là tập hợp các hàm riêng lẽ được Windows cungcấp để hỗ trợ cho việc giao tiếp giữa điện thoại và máy tính thông qua Modemhoặc các thiết bị truyền thông Với TAPI người lập trình không cần để ý nhiều đếncác tập lệnh của Modem để khởi tạo nó hoặc 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 các ứng dụng màkhông cần quan tâm chi tiết đến các thiết bị phần cứng Chẳng hạn, với Modemngườ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ủaModem là gì?…chỉ cần thiết bị phần cứng đó có một TAPI driver hay còn gọi là
TSP (Telephony Service Provider) do nhà sản xuất cung cấp, mà khi cài đặt các
thiết bị phần cứng thì đồng thời các Driver cũng được cài đặt
TAPI hỗ trợ hệ thống đàm thoại H.323 và giao thức đàm thoại đa điểm
(Mutilcast) Nó kết hợp cả việc truyền số liệu lẫn tiếng nói ở nhiều loại thiết bị đầu
cuố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ộc gọinhư: tạo cuộc gọi, chờ cuộc gọi, thư thoại, …Các ứng dụng được viết bởi TAPI cóthể truy cập trực tiếp được vào các dịch vụ trên đường dây điện thoại, khi đó nó cóthể phát ra và nhận vào mọi tín hiệu của điện thoại
Trang 4Dù đường dây điện thoại truyền tín hiệu dạng tương tự (Analog) hay dạng
số (Digital) thì ta cũng cần có một thiết bị trung gian hỗ trợ cho việc giao tiếp giữa
đường dây điện thoại và máy tính Tuy nhiên, thiết bị giao tiếp đó phải có hỗ trợTAPI TSP Nó có thể là một trạm ISPN, một bảng mạch hệ thống điện thoại hoặcđơn giản là một Modem
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ệnthoại nhằm thực hiện một công việc gì đó Ví dụ: phần mềm giả lập điện thoạitrong mạng điện thoại chuyển mạch công cộng (PSTN), phần mềm gửi/ nhận Fax,hộp thư thoại, hệ thống trả lời tự động, điện thoại qua Internet (VoIP),…
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à trừu tượng hoá
trong việc phân cách giữa người dùng và các nhà cung cấp dịch vụ điện thoại Mộtthư viện TAPI liên kết với TAPI Server để cung cấp một giao tiếp giữa hai lớp (thểhiện ở mô hình lập trình cho hệ thống điện thoại được đề cập ở phần sau)
Có ba thư viện liên quan tới TAPI là: Tapi.dll, Tapi32.dll, Tapi3.dll; mỗi thưviện đều có vai trò như nhau (được minh họa ở hình 1.1)
Mỗi thư viện này tương ứng với mỗi 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ẽ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ếtvới Tapi32.dll (TAPI phiên bản 1.4 – 2.2) Với phiên bản 3.0 và 3.1 thì chúng sẽliên kết với Tapi3.dll
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 ứngdụng qua phương tiện với cơ chế vận chuyển đặc biệt Một MSP luôn luôn tồn tại
Trang 5khiển phương tiện thông qua việc điều khiển thiết bị cuối và các giao tiếp luồngđược định nghĩa bởi TAPI.
Trang 6Hình 1.1 Mô hình các thư viện liên kết động (Tapi dll)
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ởi MSPnhằm cho phép việc điều khiển một ứng dụng TAPI 3 trên phương tiện trong suốtphiên liên lạc truyền thông
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ác tài nguyêncục bộ và ở xa của hệ thống điện thoại, giám sát các ứng dụng của TAPI, và thực
Registry
Telephony Control Panel, Dialing, Properties, etc…
Ứng dụngTAPI 32-bit
Ứng dụngTAPI 32-bit
Tapi32.dll
Trang 7hiện một giao tiếp phù hợp với TSP (mối liên hệ giữa TAPI Server và các thànhphần khác được thể hiện ở mô hình lập trình hệ thống điện thoại).
Trong Windows 95/ 98/ NT, TAPI Server (Tapisvr.exe) sẽ chạy như một
tiế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ạo xong,DLL sẽ xây dựng một kết nối tới TAPI Server Sau đó, TAPI Server sẽ nạp cácTSP
7. TSP (Telephony Service Provider)
TSP thực chất là một thư viện liên kết động hỗ trợ điều khiển các thiế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 hoá, và TSP điều khiển các lệnh đặc trưng mà cần phải được trao đổivới thiết bị
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ộtnhà cung cấp dịch vụ trong môi trường hệ thống điện thoại TSPI định nghĩa ra cáchàm ngoại mà hỗ trợ TSP
9 Service Providers
Đây được xem như là các bộ phận cung cấp các dịch vụ cần thiết để thựchiện việc điều khiển cuộc gọi và MSP nếu có sẽ cung cấp điều khiển luồng quaphương tiện
Tất cả các TSP thực thi bên trong tiến trình TAPISRV Các bộ phận cungcấp dịch vụ có thể tạo ra các Thread ngay trong ngữ cảnh của TAPISRV khi 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ị huỷ do thoát khỏimộ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 lệnh phù hợp như TSPI
Trang 8Cá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ấp mộtkết nối chặt chẽ với MSPI.
Trang 9II. Điện thoại IP (Internet Protocol )
1 IP Telephony là gì?
IP Telephony (điện thoại IP) là một tập hợp các công nghệ phát triển chophép tiếng nói, dữ liệu và video truyền qua mạng LAN, WAN và mạng Internet.Đặc biệt, IP telephony dựa trên sự kết hợp cơ sở hạ tầng mạng điện thoại truyền
thống PSTN (Public Switch Telephone Network) với kỹ thuật thoại VoIP dựa trên
kiến trúc chuẩn H 323 Do điện thoại sử dụng giao thức Internet – IP, nên tín hiệuthoại được truyền qua mạng thoại tới cổng thoại – Voice Gateway, được số hoá tínhiệu qua mạng riêng sử dụng giao thức Internet
Trong điện thoại thông thường, tín hiệu thoại có tần số nằm trong khoảng0.4 – 3.3 KHz được lấy mẫu với tần số 8 KHz theo Nyquyst Sau đó các mẫu sẽđược lượng tử hoá với 8bit/mẫu và được truyền với tốc độ 64 KHz đến mạngchuyển mạch rồi được truyền tới đích, ở bên nhận, dòng số 64 Kbps này được giải
mã để cho ra tín hiệu thoại tương tự
Hình 1.2 Mô hình điện thoạiThực chất thoại qua mạng IP (Voice over IP – VoIP) cũng không hoàn toànkhác hẳn điện thoại thông thường Đầu tiên tín hiệu thoại cũng được số hoá, nhưng
Trang 10sau đó thay vì truyền trên mạng TSPN qua các trường chuyển mạch, chúng sẽđược nén xuống tốc độ thấp, đóng gói và chuyển mạch lên mạng IP Tại bên nhận,các gói tin này được giải nén thành các luồng PCM 64 Kb truyền đến thuê bao bịgọi Sự khác nhau chính là mạng truyền dẫn và khuôn dạng thông tin dùng đểtruyền dẫn Trên hình 1.3 đưa ra ví dụ về một cuộc gọi VoIP:
Giả sử thuê bao A muốn gọi đến thuê bao B Thuê bao A quay số điện thoạicủa thuê bao B Mạng TSPN có nhiệm vụ phân tích địa chỉ và kết nối đếngateway1 Tại đây địa chỉ của B lại được phân tích và gateway1 xác định đượcthuê bao B được kiểm soát bởi gateway2 Nó sẽ thiết lập một phiên liên kết vớigateway2 Các thông tin báo hiệu mà gateway1 nhận được từ PSTN sẽ đượcchuyển đổi thích hợp sang dạng gói và truyền đến gateway2
Tại gateway2, các gói tin lại được chuyển đổi ngược lại và truyền sang mạngPSTN Mạng PSTN có nhiệm vụ định tuyến cuộc gọi đến thuê bao B Các thôngtin trả lời sẽ được chuyển đổi ngược lại qua gateway2 đến gateway1
Sau khi cuộc gọi được thiết lập, các gateway có nhiệm vụ chuyển đổi giữacác gói tin thoại trên mạng IP và các luồng PCM trên mạng PSTN
Hình 1.3 Điện thoại IP
Trang 11Sử dụng công nghệ IP đưa đến cho người dùng sự linh hoạt trong cácphương tiện truyền thông vật lý: đường POTS, ADSL, ISDN, kênh truyền dữ liệu,cáp đồng trục, máy vệ tinh, dây xoắn đôi và cả sự linh hoạt về các địa chỉ vật lý.
Từ đó, các mạng được phân bố rộng rãi nhằm vận chuyển Web, Email và chia sẻ
dữ liệu; nó có thể là cơ sở để kết nối các cá nhân, các thương nghiệp, trường học,
…
2 Các ứng dụng của điện thoại IP
Giao tiếp thoại sẽ vẫn là dạng giao tiếp cơ bản của con người Mạng điệnthoại công cộng không thể bị đơn giản thay thế, thậm chí thay đổi trong thời giantới Mục đích tức thời của các nhà cung cấp dịch vụ điện thoại IP là tái tạo lại khảnăng của điện thoại với một chi phí vận hành thấp hơn nhiều và đưa ra các giảipháp kỹ thuật bổ sung cho mạng PSTN
Điện thoại có thể được áp dụng cho gần như mọi yêu cầu của giao tiếp thoại,
từ một cuộc đàm thoại đơn giản cho đến một cuộc gọi hội nghị nhiều người phứctạp Chất lượng âm thanh được truyền cũng có thể biến đổi tuỳ theo ứng dụng.Ngoài ra, với khả năng của Internet, dịch vụ điện thoại Ip sẽ cung cấp thêm nhiềutính năng mới
Ta có thể xem một vài ứng dụng trước mắt của điện thoại:
Thoại thông minh:
Hệ thống điện thoại ngày càng trở nên hữu hiệu: rẻ, phổ biến, dễ sử dụng, cơđộng Nhưng nó hoàn toàn “ngớ ngẫn” Nó chỉ có một số phím để điều khiển.Trong những năm gần đây, người ta đã cố gắng để tạo ra thoại thông minh, đầutiên là các thoại để bàn, sau là đến các Server Nhưng mọi cố gắng đều bị thất bại
do sự tồn tại của các hệ thống có sẵn
Internet sẽ thay đổi điều này Kể từ khi Internet phủ khắp toàn cầu, nó đãđược sử dụng để tăng thêm tính thông minh cho mạng điện thoại toàn cầu Giữamạng máy tính và mạng điện thoại tồn tại một mối liên hệ Internet cung cấp cách
Trang 12giám sát và điều khiển các cuộc thoại một cách tiện lợi hơn chúng ta có thể thấyđược khả năng kiểm soát và điều khiển các cuộc thoại thông qua mạng Internet.
Dịch vụ điện thoại Web:
“World Wide Web” đã làm cuộc cách mạng trong cách giao dịch với khách
hàng của các doanh nghiệp Điện thoại Web hay bấm số (click to dial) cho phép
các nhà doanh nghiệp có thể đưa thêm các phím bấm lên trang Web để kết nối tới
hệ thống điện thoại của họ Dịch vụ bấm số là cách dễ nhất và an toàn nhất để đưathêm các kênh trực tiếp từ trang Web của bạn vào hệ thống điện thoại
Truy cập các trung tâm trả lời điện thoại:
Truy nhập đến các trung tâm phục vụ khách hàng qua mạng Internet sẽ thúcđẩy mạnh mẽ thương mại điện tử Dịch vụ này sẽ cho phép một khách hàng có câuhỏi về một sản phẩm được chào hàng qua Internet được các nhân viên của công tytrả lời trực tuyến
Dịch vụ fax qua IP:
Nếu bạn gửi nhiều Fax từ PC, đặc biệt là gửi ra nước ngoài thì việc sử dụngdịch vụ Internet Faxing sẽ giúp bạn tiết kiệm được tiền và cả kênh thoại Dịch vụnày sẽ chuyển trực tiếp từ PC của bạn qua kết nối Internet Hàng năm, thế giới tốnhơn 30 tỷ USD cho việc gửi Fax đường dài Nhưng ngày nay Internet Fax đã làmthay đổi điều này Việc sử dụng Internet không những được mở rộng cho thoại màcòn cho cả dịch vụ Fax
Khi sử dụng dịch vụ thoại và Fax qua Internet, có hai vấn đề cơ bản:
+ Những người sử dụng dịch vụ thoại qua Internet cần có chương trình phầnmềm chẳng hạn Quicknet’s Internet PhoneJACK Cấu hình này cung cấp chongười sử dụng khả năng sử dụng thoại qua Internet thay cho sử dụng điện thoại đểbàn truyền thống
Trang 13+ Kết nối một gateway thoại qua Internet với hệ thống điện thoại hiện hành.Cấu hình này cung cấp dịch vụ thoại qua Internet giống như việc mở rộng hệ thốngđiện thoại hiện hành của bạn.
3 Lợi ích của IP telephony
Nếu như trước kia việc tổ chức triển khai lực lượng chỉ có thể thực hiệnđược trên các mạng riêng lẽ để điều khiển quá trình trao đổi dữ liệu, tiếng nói vàvideo truyền thống Phương pháp này đòi hỏi nhiều chi phí cho việc cài đặt, duy trì
và tái tạo Đặc biệt, khi mạng đang tồn tại dưới dạng vật lý thì việc tích hợp cácchức năng, công cụ là rất khó thực hiện và bị hạn chế về tính hiệu quả, tác dụng vàtiềm lực
Ngày nay, khi điện thoại IP ra đời và phát triển nó đang dần trở nên hiệu quảnhờ vào sự phát triển của mạng máy tính, trong việc xử lí tín hiệu, kỹ thuật nén ởtốc độ bit rất thấp mà vẫn giữ được chất lượng Băng thông rộng cho phép điệnthoại IP tăng khả năng tìm đường, tiết kiệm đường truyền và tận dụng tối đa dunglượng chuyển tới của mạng lưới Thêm vào đó, sự phát triển của các thiết bị IP vớicông nghệ ngày càng cao cho phép mô hình IP ngày càng được mở rộng Vớinhững tính chất này, IP cho phép các tổ chức, các cá nhân giảm mức chi phí chocác dịch vụ: truyền tiếng nói, video, trong sự mở rộng các phương tiện truyềnthông kể cả hội thoại video truyền thống, chia sẻ ứng dụng và các công cụWhiteBoarding; sản sinh ra những công cụ kết hợp mới và gia tăng hiệu quả
4 Ưu và nhược điểm của điện thoại IP
Về mặt kỹ thuật điện thoại IP có những ưu điểm và nhược điểm sau:
Ưu điểm:
- Thông tin thoại trước khi đưa lên mạng IP sẽ được nén xuống dung lượngthấp (tuỳ theo kỹ thuật nén), vì vậy sẽ làm giảm được lưu lượng mạng
Trang 14- Trong trường hợp cuộc gọi ở mạng chuyển mạch kênh một kênh vật lí sẽđược thiết lập và duy trì giữa hai bên cho đến khi một trong hai bên huỷ bỏ liênkết Như vậy, trong khoảng thời gian không có tiếng nói, tín hiệu thoại vẫn đượclấy mẫu, lượng tử hoá và truyền đi Vì vậy, hiệu suất đường truyền sẽ không cao.Đối với điện thoại Internet có các cơ chế để phát hiện khoảng lặng (khoảng thờigian không có tiếng nói) nên sẽ làm tăng hiệu suất mạng.
Nhược điểm:
- Nhược điểm chính của điện thoại qua mạng IP chính là chất lượng dịch vụ.Các mạng số liệu vốn dĩ không phải xây dựng với mục đích truyền thoại thời gianthực, vì vậy khi truyền thoại qua mạng số liệu cho chất lượng cuộc gọi thấp vàkhông thể xác định trước được Sở dĩ như vậy là vì gói tin truyền trong mạng cóthể thay đổi trong phạm vi lớn, khả năng mất mát thông tin trong mạng hoàn toàn
có thể xảy ra Một yếu tố làm giảm chất lượng thoại nữa là kỹ thuật nén để tiếtkiệm đường truyền Nếu nén xuống dung lượng càng thấp thì kỹ thuật càng phứctạp, cho chất lượng không cao và đặc biệt là thời gian xử lí sẽ lâu, gây trễ
- Một nhược điểm khác của điện thoại IP là vấn đề tiếng vọng Nếu nhưtrong mạng thoại, do trễ ít nên tiếng vọng không ảnh hưởng nhiều thì trong mạng
IP, do trễ lớn nên tiếng vọng ảnh hưởng nhiều đến chất lượng thoại Vì vậy, vấn đềtiếng vọng là một vấn đề cần phải giải quyết trong điện thoại IP
III 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ụng TAPIcho 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 phiên bản TAPI3.0 còn 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 các câulệnh đị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ẽ thực hiện một
số kiểm tra cần thiết, sau đó sẽ chuyển thông tin cho TAPISVR
Trang 15TAPISVR liên lạc với các tài nguyên khả dụng trên máy tính và giao tiếpvới các TSP bằng cách sử dụng TSPI.
Những kết nối TSP và MSP được diễn ra bằng cách sử dụng một kết nối ảothông qua TAPI DLL và TAPISVR
TSP và MSP sẽ làm nhiệm vụ cung cấp những thông tin về trạng thái, chứcnă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 thiết bị mới mà không cần thực hiện những thay đổi mã nguồn
Trang 16TAPI 2.2 (TAPI/C) TAPI 3.0 (TAPI/COM) MSPI
Service Providers TSPI
Hình 1.4 Mô hình lập trình cho hệ thống điện thoại
Ứng dụngTAPI
TAPI DLL(Dynamic Link Library) Service Provider)MSP (Media
TAPISVR(TAPI Server)
TSP(TAPI Service Provider)
Device
Trang 17IV Mô hình ứng dụng TAPI
Hình 1.5 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ở lại cho tới khi thao tác hoàn tấthoặc bị lỗi
+ Nếu TAPISVR chưa được gọi thì TAPI sẽ gọi nó
+ TAPI thiết lập một kết nối cho tiến trình TAPISVR
+ TAPISVR 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ộ cung cấp dịch
vụ điện thoại Công việc này phải làm ở TAPI 2
+ Kiểm tra và thu nhận thông tin liên quan đến các thiết bị khả dụng cho ứngdụng TAPI
Khởi tạo TAPI
Điều khiển phiênlàm việc
Điều khiển thiết bị
Điều khiển phươngtiện
Kết thúc TAPI
Trang 18+ Đăng ký thông điệp để nhận được các sự kiện liên quan tới những thay đổitrạ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ết nối giữahai hay nhiều địa chỉ Kết nối này là động và các đối tương liên quan phải đượctạo, quản lý và huỷ bỏ khi không còn dùng Trong trường hợp đơn giản nhất thìđây là quá trình từ lúc tạo đến lúc ngắt kết nối một cuộc gọi
Giai đoạn này gồm hai công việc chính:
+ Điều khiển hoạt động của phiên làm việc: khởi tạo, duy trì và kết thúcphiên làm việc
+ Lấy thông tin của phiên làm việc: lấy những thông tin chi tiết trong phiênlàm việc
3 Điều khiển thiết bị (Device Control)
Thiết kế 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ảngmạch Fax, Modem, hay cạc ISDN Thiết bị có thể không cần kết nối thẳng vàomáy tính mà còn ứ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ên Network Mỗi Linehay 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ểuphươ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ệutruyền qua Nó cho phép một ứng dụng nhận biết sự thay đổi của các kiểu phương
Trang 19tiện và điều chỉnh các luồng trên phương tiện như âm lượng của tiếng nói đượctruyền Đó cũng có thể là việc nhận và gửi các tín hiệu DTMF từ điện thoại.
5 Kết thúc TAPI (TAPI Shutdown)
ba thành phần này đều hỗ trợ Các con số phiên bản này được duy trì sự tươngthích khi Microsoft mở rộng các khả năng của TAPI Các phiên bản Windows khácnhau thì khả năng tương thích và hỗ trợ các phiên bản TAPI cũng khác nhau:
Hệ điều hành
Windows
Phiên bản TAPI ban đầu
Phiên bản TAPI tối
gì khi chạy trên các hệ điều hành Windows khác nhau Còn đối với ứng dụng TAPI2.0 sẽ tự động loại bỏ một số chức năng của nó khi chạy cùng với một TSP 1.4.Dưới đây là các chức năng được hỗ trợ thêm đối với mỗi phiên bản TAPI:
Trang 20Phiên bản TAPI Các chức năng chính được hỗ trợ
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ợ
Unicode2.1 Hỗ trợ Client/ Server
2.2 Quản lý cuộc gọi chuyên dụng
3.0 Giao tiếp kiểu COM (Computer Object Model); hỗ
trợ Media Stream Providers; TSP 2.1 vẫn đượcdùng
3.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
Hình 1.7 Các chức năng hỗ trợ cho từng phiên bản TAPI
Có hai thay đổi lớn trong các phiên bản của TAPI:
+ Phiên bản TAPI 2.1 khi chức năng hỗ trợ Client/ Server được thêm vào
Nó đã tạo khả năng cho thiết bị hệ thống điện thoại có thể được cài đặt trên mộtmáy Server mà các máy Client trong mạng có thể truy cập được
+ Phiên bản TAPI 3.0 khi nó được hỗ trợ như một bộ các đối tượng kiểuCOM, sẽ tốt hơn kiểu cấu trúc ngôn ngữ C++ cho Windows Nó tạo điều kiện dễdàng cho việ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 (Media Service Providers) nhằm cung cấp cách thức truy cập các luồng phương tiện trong một
cuộc gọi và có thể hỗ trợ hệ thống điện thoại theo giao thức Internet (IP)
VI Kỹ thuật gửi số bằng xung lưỡng đa âm tần DTMF (Dual Tone MultiFrequency)
1 Hệ thống DTMF là gì?
Trang 21Để thực hiện quay số về tổng đài có hai phương thức quay là DTMF vàPULSE Trong đó, DTMF là viết tắt của cụm từ “Dual Tone MultiFrequency” (cặptín hiệu đa tần) Hệ thống này được hình thành vào năm 1960 nhưng mãi tới năm
1970 mới được phát triển Ngày nay, DTMF đã trở thành chuẩn thay thế cho hệthống xung kiểu cũ Do đó, mỗi khi ta ấn phím để gọi điện thoại, các âm thanh mà
ta nghe được chính là các tín hiệu DTMF được gửi tới tổng đài
DTMF là tổng hợp của hai tín hiệu âm thanh; một tín hiệu có tần số thấp vàmột tín hiệu có tần số cao Điều này đã tạo nên lợi thế cho DTMF là chống đượcnhiễu Do đó, tổng đài có thể biết chính xác phím nào đã được nhấn và nó còn giúpcho người ta sử dụng điện thoại thuận tiện hơn
Hầu hết các hệ thống điện thoại hiện giờ đều sử dụng tín hiệu DTMF Bànphím chuẩn của điện thoại này có dạng ma trận chữ nhật gồm có 3 cột và 4 hàngtạo nên tổng cộng là 12 phím nhấn Trong đó, có 10 phím cho các chữ số từ 0 > 9
và hai phím đặc biệt là * và # Mỗi một hàng trên bàn phím được gán cho một tần
số Tone thấp và mỗi cột được gán cho một tần số tone cao Do đó, mỗi một phím
sẽ có một tín hiệu DTMF riêng được tổng hợp từ hai tần số tương ứng với hàng vàcột mã phím đó đang đứng
Trang 22Hình 1.9 Bàn phím chuẩn 16 phím DTMFCác tín hiệu DTMF này thường được sử dụng trong dịch vụ hộp thư thoạihoặc trong hệ thống máy điện thoại trả lời tự động Khi một người gọi tới máy sẽxác nhận yêu cầu của người đó thông qua tín hiệu này.
2 So sánh thời gian gửi số
Gửi số bằng lưỡng âm đa tần DTMF nhanh hơn cách quay số rất nhiều vềmặt nguyên tắc cũng như trên thực tế Với DTMF thời gian nhận được một chữ là
50 ms và thời gian nghĩ giữa hai số là 50 ms, tổng cộng là 100 ms cho mỗi số Giả
sữ ta gửi đi 10 số:
Với DTMF mất 100 ms * 10 = 1 s
Với đĩa quay số mất 5 * 10 * 100 ms + 9 * 700ms = 11,3 s
Như vậy, ngoài ưu điểm sử dụng dễ dàng, nhẹ, DTMF giảm thời gian chiếmdụng bộ thu rất nhiều, giảm giá thành tổng đài Đó cũng là lý do tại sao DTMFđược phát triển rộng rãi và phổ biến
3 Phương thức làm việc của thuê bao
+ Thuê bao gọi nhấc máy:
Tổng đài sẽ nhận biết trạng thái thuê bao chủ gọi nhấc máy thông qua sựthay đổi điện trở vòng của đường dây thuê bao Bình thường khi thuê bao ở trạngthái nghĩ điện trở vòng rất lớn, ta có thể coi như hở mạch
Khi thuê bao nhấc máy điện trở vòng giảm đi nhiều, tổng đài có thể nhậnbiết sự thay đổi điện trở của thuê bao tức là thay đổi của trạng thái thuê bao thôngqua bộ cảm biến trạng thái
+ Cấp âm hiệu mời quay số cho thuê bao:
Khi tổng đài phát hiện trạng thái nhấc máy (off-hook), xung mời quay sốđược phát đến vòng thuê bao; đó là âm hiệu báo cho người gọi biết cuộc gọi đã sẵn
Trang 23sàng quay số Tín hiệu này có dạng hình sin có tần số 425Hz và phát liên tục chotới khi bắt đầu quay số thứ nhất.
Trong trường hợp người gọi nhấc máy nhưng không quay số, sau một thờigian khoảng 15s tổng đài sẽ ngắt Dial tone và phát busy tone về phía người quaysố
Tín hiệu Dial tone
+ Tín hiệu báo bận Busy tone:
Khi thuê bao bị gọi đang thông thoại trước đó hoặc các đường kết nối thôngthoại đều bị bận thì tổng đài sẽ cấp busy tone cho thuê bao gọi Âm hiệu này cũng
là tín hiệu hình Sin có tần số 425Hz nhưng được ngắt quãng 0,5s làm việc 0,5snghỉ
Tín hiệu Busy tone:
Nếu các đường dây thông thoại không bận thì tổng đài phải nhận biết cácthuê bao gọi và xem xét:
* Nếu số đầu nằm trong tập thuê bao của tổng đài thì tổng đài sẽ phục vụnhư cuộc gọi nội đài
* Nếu số đầu không nằm trong tập thuê bao của tổng đài thì tổng đài sẽ phục
vụ như 1 cuộc gọi liên đài qua trung kế và giữ toàn bộ phần định vị số quay sangtổng đài đối phương để giải mã
* Nếu số đầu là mã gọi chức năng đặc biệt thì tổng đài sẽ thực hiện các chứcnăng đó để phục vụ cho thuê bao
Nếu thuê bao được gọi rảnh thì tổng đài sẽ gửi số nhận diện số chủ gọi nếu
có cài dịch vụ sau đó cấp chuông cho thuê bao được gọi với điện áp AC 70 –110V, tần số f = 16 – 25Hz (thường là 90VAC/ 25Hz) với chu kì 2s có tín hiệu và3s không có tín hiệu
Tín hiệu chuông
Trang 24Đồng thời tổng đài sẽ cấp tín hiệu hồi âm chuông cho thuê bao gọi, đó là tínhiệu Ring Back Tone có tần số f = 425Hz với chu kì 3s làm việc và 2s nghỉ.
Tín hiệu Ring Back Tone:
Khi thuê bao được gọi nhấc máy thì tổng đài sẽ nhận biết trạng thái nhấcmáy này, tiến hành cắt dòng chuông cho thuê bao bị gọi một cách kịp thời để tránh
hư hỏng cho thuê bao Đồng thời tổng đài cũng tắt âm hiệu hồi chuông cho thuêbao chủ gọi và tiến hành kết nối thông thoại cho cả hai thuê bao
Tổng đài sẽ giải tỏa một số thiết bị không cần thiết để tiếp tục phục vụ chocác cuộc đàm thoại khác (mạch giải mã DTMF)
Khi hai thuê bao đang đàm thoại mà có một thuê bao gác máy Tổng đàinhận biết trạng thái gác máy này, cắt các thông thoại cho cả hai thuê bao, đồng thờicấp Busy tone cho thuê bao còn lại, giải toả đường dây đã kết nối để phục vụ cuộcđàm thoại khác Khi thuê bao còn lại gác máy, tổng đài xác định trạng thái gácmáy này và kết thúc chương trình phục vụ cho thuê bao Tất cả các hoạt động trênđược điều khiển bằng các chương trình, người vận hành tổng đài có thể theo dõihoạt động của tổng đài thông qua màn hình máy tính của tổng đài
Trang 25Chương 2: TÌM HIỂU VỀ TIẾNG NÓI
I Đặc tính chung của tiế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 Khingười nói 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 phát ra latruyền trong môi trường không khí đến tai người nhận Do âm thanh phát ra đượctạo nên nhờ sự kết hợp của nhiều bộ phận nên mỗi lần phát ra hầu như là khácnhau Vì vậy, việc phân chia tiếng nói thành những loại có đặc tính riêng là rất khó
và nó chỉ mang tính tương đối Tuy nhiên, qua quá trình phân tích, tổng hợp ta cóthể tạm chia thành ba loại:
Voiced sound:
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ạng sóngWave đặc trưng như hình vẽ sau:
Hình 2.1 Dạng sóng Wave của Voice sound
Trang 26khí được đẩy qua nó Vì điểm co thắt có khuynh hướng xảy ra gần miệng, tiếng dộicủa bộ máy phát âm có ảnh hưởng nhỏ trong việc tạo nên âm phụ sát Đối với âmbậ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ợp này, tiếng dội của bộ máy
âm điều chỉnh phổ của tiếng ồn Điều này được thấy rõ nhất khi ta nghe những âmnhỏ, xì xào
Plosive sound:
Trong trường hợp này, bộ máy phát âm được đóng kín, áp suất không khínén và được giải thoát bất ngờ Sự giải thoát nhanh chóng áp suất tạo nên một sựkích thích ngắn cho bộ máy phát âm Sự kích có thể xảy ra với sự có rung/ khôngrung cả dây thanh môn để tạo nên âm thanh Voice/ Unvoice Plosive Được minhhoạ ở hình sau:
Hình 2.2 Dạng sóng Wave của Plosive sound
II.
Công nghệ tổng hợp tiếng nói Text – to – Speech
Text – to – Speech là một công nghệ dùng để chuyển dạng văn bản (Text)sang dạng tiếng nói (Speech) Nó được phân loại dựa vào cách thức tiến hànhchuyển văn bản sang tiếng nói:
Trang 27 Concatenated word:
Với phương pháp này, những từ và ngữ phải được thu âm trước Khi nhậnđược một chuỗi cần đọc, máy tính sẽ tách ra thành từng từ một Sau đó, máy sẽ tìmcác từ đã được thu âm tương ứng và ghép lại với nhau, tạo ra một chuỗi tiếng nóiliên tục
Tổng hợp:
Phương pháp này phức tạp hơn nhiều vì sẽ tổng hợp tạo âm giống những gìđược tạo bởi giọng nói của con người phát ra Phương pháp này cần cung cấpnhiều bộ lọc mô phỏng chiều dài, cổ họng, khoang miệng, hình dạng môi và vị trílưỡi Tuy nhiên, tiếng nói được tạo bởi kỹ thuật này thường ít giống giọng conngười, nhưng có thể đạt được những chất lượng khác nhau của giọng bằng cáchthay đổi một vài thông số
Hai âm tố (Diphone Concatanation):
Phương pháp này nối những đoạn ngắn âm thanh được số hoá lại với nhau
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ột âm vị kết thúc âm Chẳng hạn, từ “hello” bao gồm những âm vịsau “h eh l oe” Những Diphone tương ứng là “silence – hh – eh – ll – oe oe –silence”
Diphone được tạo bằng thu giọng và xác định một cách cẩn thận, tỉ mỉ vàchính xác vị trí bắt đầu và kết thúc của những âm vị Mặc dù kỹ thuật không cốđịnh do những âm vị chỉ đặc trưng bởi ngôn ngữ của người phát âm
III Ứng dụng công nghệ Text – to – Speech
Text – to – Speech được ứng dụng để chuyển các File văn bản (Texts) sangcác File âm thanh (tiếng nói) Các File Text này mang tính chất động, nghĩa là nó
có thể thay đổi linh hoạt thường xuyên, không cố định Khác với các phương phápghi âm truyền thống, sử dụng công nghệ Text – to – Speech sẽ tiết kiệm được dung
Trang 28lương nhớ để lưu trữ và linh hoạt trong thực hiện việc chuyển File Vì nếu ta sửdụng phương pháp ghi âm truyền thống dưới dạng các File Waves thì số lượng File
sẽ lớn; đặc biệt khi độ dài, số lượng File văn bản tăng lên Hơn nữa, khi ta thay đổivăn bản khác thì cần phải ghi âm lại
Tóm lại, ứng dụng công nghệ Text – to – Speech mang lại cho người sửdụng rất nhiều lợi ích Chẳng hạn:
+ Đọc văn bản động: Text – to – Speech hữu dụng cho những văn bản thayđổi thường xuyên Ví dụ sau khi nhận được Email có thể sử dụng công nghệ này đểmáy tính đọc cho mình nghe
+ Kiểm tra văn bản: với những văn bản chi chít chữ, ta có thể yêu cầu máyđọc để phát hiện những lỗi 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: Text – to – Speech được ứng dụng trong hộp thưthoại hay hệ thống trả lời tự động
Như vậy, công nghệ Text – to – Speech ngày càng được sử dụng rộng rãi vàphổ biến để xây dựng các ứng dụng thuộc mọi lĩnh vực của cuộc sống
IV Giới thiệu về File Wave (*.wav)
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ố hoá Nó hỗ trợ rất đa dạng các thông số của âm thanh như sốbit lượng tử hoá, tốc độ lấy mẫu, số kênh Dạng file này rất phổ biến trên các máytính thế hệ IBM và được sử dụng rộng rãi trong các chương trình chuyên nghiệp để
xử lí các sóng âm được số hoá
Trang 29File 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ôngbao gồm 4 byte của ID và 4 byte của Size
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ácchunk 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 thước 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 4byte kiểu Char Nó cho biết dạng dữ liệu được lưu trữ bên trong file RIFF 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 Avitrường này sẽ có tên là “AVI”
Trường dữ liệu (Data) của chunk RIFF
Trang 30Hình 2.3 Mô hình Subchunk trong chunk RIFF của file RIFF
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 Wave chính
là file RIFF nên chunk đầu tiên sẽ là chunk RIFF Ngoài ra, có hai chunk quantrọ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ử hoá, …và chunk Data để chứa dữ liệu âm thanh đã được
số hoá Các chunk khác tuỳ trường hợp có thể có hoặc có thể không
2.1 Chunk Format
Cấu trúc chunk Format được định nghĩa như hình 2.4:
Hình2.4 Cấu trúc của chunk Format
Chunk Format luôn có tên nhận dạng là “fmt” Kích thước của chunkFormat có thể thay đổi tùy theo giá trị của wFormatTag Giá trị này cho biếtchuẩ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 CodeModulation) của Microsoft là chuẩn phổ biến nhất Với chuẩn này, các mẫu
âm thanh lưu trữ sẽ không được nén và có giá trị được định nghĩa là 1
wChannels là số kênh âm thanh Giá trị 1 cho âm thanh mono, 2 cho âmthanh stereo, và 4 cho âm thanh 4 kênh, …
typedef struct { WORD wFormatTag;
Trang 31 dwSamplesPerSec là tốc độ lấy mẫu, nghĩa là số mẫu được phát trong mộtgiây, đơn vị là Hertz Có 3 giá trị thông dụng là: 11025, 22050, và 44100 Hzmặc dù các tốc độ khác vẫn được dùng.
dwAvgBytesPerSec sẽ chỉ ra có bao nhiêu byte được phát mỗi giây 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
wBlockAlign là kích thước của một khung mẫu âm thanh, tính theo 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)
wBitsPerSample cho biết số bit dùng để lượng tử hoá 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ưudạng BYTE hoặc WORD nên khi khi lưu trữ vẫn phải lưu hẳn 1 BYTE hoặc
1 WORD Ví dụ, nếu số bit lượng tử hoá là 12 thì sẽ có 4 bit không dùng tới
cbSize là kích thước của những thông tin mở rộng được thêm vào cuối cấutrúc WAVEFORMATEX Thông tin này được dùng với những chuẩn khácPCM, còn với PCM thì giá trị này bằng 0
Trang 32của kênh trái rồi đến mẫu đầu tiên của kênh phải, tiếp đó là mẫu thứ hai củakênh trái rồ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
Kênh 1 Kênh 2 Kênh 1 Kênh 2 Kênh 1 Kênh 2
= 1 điểm mẫuVới âm thanh mono thì mỗi khung mẫu chỉ có 1 điểm mẫu Đối với âmthanh có nhiều kênh thì tuỳ theo số lượng kênh mà các thứ tự của điểm mẫu trongmột khung mẫu sẽ khác nhau:
Trái Sau
Phải Sau
Trang 33Tóm lại cấu trúc của file Wave được mô tả như bảng sau :
thước Giá trị thông thường
Tên của Chunk RIFF 4 byte “RIFF”
Kích thước chunk RIFF
(RIFF chunk size) 4 byte Kích thước file RIFF – 8
Định dạng của file RIFF
Tên của chunk Format
Kích thước chunk Format
(Format chunk size) 4 byte 16
Chuẩn của file Wave
(wBlockAlign) 2 byte wChannels * (wBitsPerSample / 8)
Số bit lượng tử hoá
816Tên của chunk Data
(Data chunk ID) 4 byte "data"
Kích thước chunk Data
(Data chunk size) 4 byte wBlockAlign * Tổng số khung mẫu
Trang 343 Các phương pháp phát một file Wave
3.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 toàn bộ dữ liệu âm thanh
vào bộ nhớ, vì vậy mà kích thước của file sẽ bị giới hạn đến 100 KB Ngoài ra, haihàm này cũng đòi hỏi định dạng của dữ liệu âm thanh phải được nhận biết bởi trìnhđiều khiển âm thanh và chỉ phát ra soundcard
3.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áckhai 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ột giao
tiếp MCI (Media Control Interface) Đây là một giao tiếp rất mạnh thực hiện công
việc giao tiếp giữa ứng dụng và thiết bị âm thanh để thu hoặc phát rất nhiều loạifile âm thanh như: phát các dàn nhạc từ CD Audio, các file Wave, Midi, Video,…
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 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,lstrlen(lpszReturnString), NULL);
mciSendString("play finch from 1 to 10000", lpszReturnString,
lstrlen(lpszReturnString), NULL);
mciSendString("close finch", lpszReturnString,
lstrlen(lpszReturnString), NULL);