Tìm hiểu mô hình và công nghệ truyền âm thanh trên mạng máy tính, trên cơ sở đó xây dựng hệ thống truyền âm thanh thoại trên mạng cục bộ - Pdf 33

LUẬN VĂN TỐT NGHIỆP Trang
1
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
LỜI NÓI ĐẦUTrong những năm gần đây, mạng máy tính ngày càng trở nên phổ biến. Việc
liên kết các máy tính trên môi trường mạng cũng như liên kết các mạng lại với nhau
đem lại cho chúng ta nhiều lợi ích trong công việc cũng như trong việc học tập
nghiên cứu, giải trí. Chúng ta có thể sử dụng các tài nguyên sẵn có được chia xẻ
như file server, printer, máy fax, ... môi trường mạng còn là một môi trường thông
tin nhanh chóng và tiện lợi nhờ vào các cơ chế truyền thông trên mạng như : e-mail,
www ...
Bên cạnh đó, tốc độ phát triển của máy tính PC cũng rất nhanh chóng. Các
kỹ thuật hiện đại đã giúp tạo ra các máy PC với tốc độ tính toán nhanh hơn, bộ nhớ
lớn hơn và khả năng xử lý của nó cũng ngày càng đa dạng hơn trong khi giá thành
ngày càng rẻ hơn. Một trong những khả năng ưu việt của máy PC hiện nay là hỗ trợ
multimedia. Các máy PC ngày nay giao tiếp với con người không chỉ bằng text mà
còn kết hợp tất cả các phương tiện khác như tiếng nói, hình ảnh.
Việc đưa kỹ thuật multimedia vào các ứng dụng truyền thông trên mạng giúp
chúng ta tạo ra nhiều ứng dụng phong phú hơn. Chẳng hạn hộp thư điện tử ngày nay
có thể không chỉ là văn bản mà còn bao gồm tiếng nói, hình ảnh. Các trang web trở
nên sinh động hơn hẳn khi kèm theo kỹ thuật multimedia. Bên cạnh đó, chúng ta có
thể thiết kế các ứng dụng tiện ích như Video conference, voice mail...
Thông qua chương trình này, người sử dụng có thể trao đổi thông tin với
nhau bằng tiếng nói. Chương trình này đã được hiện thực rất nhiều trong các lónh
vực thông tin như điện thoại, viễn thông, máy tính . . . Tuy nhiên nó chưa được áp
dụng và phát triển rọâng rãi như trên các lónh vực thông tin khác do sự hạn chế của

Nhân đây, em xin chân thành cám ơn đến PGS - TS Nguyễn Thò Hoàng Lan,
người trực tiếp hướng dẫn em hoàn thành cuốn luận văn này. Em xin chân thành
cám ơn các thầy cô trong khoa Công nghệ thông tin Trường ĐH Bách Khoa HN,
Trường ĐH Thủy Sản và toàn thể các bạn đã giúp đỡ em hoàn thành cuốn luận văn
này. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
Hình I.2 : Mô hình Máy tính – Điện thoại

I.1.3 ĐIỆN THOẠI ĐẾN ĐIỆN THOẠI
Trong mô hình này, cả hai thuê bao đều sử dụng điện thoại bình thường và
mạng IP được sử dụng trong trường hợp cuộc gọi đường dài. Gateway được sử dụng
ở cả hai đầu để chuyển đổi dữ liệu giữa các mạng với nhau.[1]
Máy tính Máy tính
IP
Máy tính Điện thoại
IP
Gateway
PSTN
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
4
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

theo người đó quyết đònh có chấp nhận hay không. Nếu chấp nhận thì liên kết sẽ
được xác lập và hai bên sẽ có thể tiến hành trao đổi thông tin với nhau.
Trong quá trình trao đổi thông tin, các máy sẽ truyền tiếng nói của người sử
dụng đồng thời nhận dữ liệu âm thanh của máy liên kết. Khi nói chuyện xong, liên
kết sẽ bò hủy bỏ và chương trình kết thúc. Nếu máy được gọi không có người trả
lời thì sau thời gian chờ vượt quá giới hạn thì liên kết cũng sẽ bò huỷ bỏ. Vì dữ liệu
truyền nhận trong chương trình là dữ liệu dạng liên tục của âm thanh cho nên có
Điện thoại
IP
Gateway
PSTN PSTN
Gateway
Điện thoại
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
5
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

các yêu cầu đặt ra như sau: Bảo đảm tính mạch lạc của dữ liệu. Tiếng nói trong
quá trình thông tin phải rõ ràng, liền lạc, không bò ngắt quãng.
Các yêu cầu trên đặt ra các nhiệm vụ mà chúng ta phải giải quyết trong
việc xây dựng chương trình. Đối với dữ liệu là âm thanh, chúng ta phải xem xét
các thông số trong quá trình lấy mẫu ở đầu vào. Các thông số đặc trưng như : tần
số lấy mẫu, số bit biểu diễn cho một điểm lấy mẫu, kênh lấy mẫu được sử dụng 1
kênh (mono) hay hai kênh (stereo). Do đó chúng ta phải tổ chức kích thước buffer
âm thanh sao cho phù hợp với việc truyền nhận đạt tốc độ cao. Một vấn đề khác
được đặt ra với dữ liệu âm thanh là việc nhận và phát ở đầu ra, chúng ta phải quan
tâm đến việc xử lý và loại bỏ các tín hiệu nhiễu giúp cho âm thanh được rõ ràng,
trung thực. Do việc truyền nhận dữ liệu là trên môi trường mạng nên chúng ta
phải quan tâm đến tốc độ, lưu lượng trao đổi dữ liệu, thời gian truyền nhận để đưa

THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
6
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộCHƯƠNG II
KHẢO SÁT CÁC GIAO THỨC TRUYỀN THÔNG

II.1 KHÁI NIỆM CƠ BẢN GIAO THỨC TCP/IP
Trong hệ thống mạng Internet, mỗi máy có một tên và một đòa chỉ IP
(Internet Protocol). Tên hay đòa chỉ IP đều xác đònh duy nhất một máy trong hệ
thống mạng Internet. Giữa tên máy và đòa chỉ IP đều có thể chuyển đổi thông qua
các hàm. Đòa chỉ IP đều được biểu diễn bằng một số 32 bits. Mỗi giao diện mạng
trong một nút nếu có hỗ trợ một ngăn xếp IP đều được gán một đòa chỉ IP. Đòa chỉ
IP gồm 2 phần : chỉ số mạng(netid) và chỉ số của máy chủ (hostid). Những bits
quan trọng nhất được dùng để xác đònh số lượng bits dùng cho netid và hostid. Có 5
lớp đòa chỉ được xác đònh là A,B,C,D và E. Trong đó, lớp A,B,C chứa đòa chỉ có thể
gián được. Lớp D dành riêng cho kỹ thuật Multicasting và được sử dụng trong các
giao thức đặc biệt để truyền thông điệp đến một nhóm nút được chọn lọc. Lớp E
dành riêng cho những ứng dụng trong tương lai.[5]

Hình II.1 Các lớp đại chỉ IP
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
7
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

Khi một ứng dụng yêu cầu các dòch vụ mạng, nó gọi quá trình tự tập hợp các thư
viện để quản lý hoạt động mạng. Hai loại socket có sẵn stream và datagram.[5]
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
8
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

Những socket stream dùng cho TCP (Transmission Control Protocol), những
socket datagram dùng UDP (User Datagram Protocol).
Hình II.3 Các socket và port trong mối nối TCP/IP

Số hiệu cổng Mô tả
0 Reserved
2 Management Entry
5 Remote Job Entry
7 Echo
9 Discard
11 Systat
13 Daytime
15 Netstat
17 Quoted(quote of the day)

II.1.2 GIAO THỨC IP
Internet protocol (IP) là một dạng giao thức truyền tin được thiết kế cho
mạng chuyển mạng gói. Vai trò của IP tương đương với vai trò của tầng mạng
trong mô hình OSI. Giao thức IP đảm nhiệm việc chuyển những gói mạch dữ liệu
(datagram) từ đòa chỉ nguồn đến đòa chỉ đích. Đòa chỉ IP có đòa chỉ cố đònh (4 byte)
dùng để xác đònh duy nhất các trạm làm việc đang tham gia vào việc truyền, nhận
dữ liệu. Trong trường hợp mạng truyền tin chỉ có thể truyền những gói dữ liệu có
kích thức nhỏ, giao thức IP cũng đảm nhiệm chức năng chia nhỏ các gói dữ liệu có
kích thước lớn trước khi truyền và gộp chúng lại chúng sau khi nhận được.[5]
Giao thức IP được thiết kế với chức năng chuyển 1 gói các bit, gọi là
internet datagram từ đòa chỉ nguồn đến đòa chỉ đích. Đây là một giao thức theo kiểu
không liên kết, nghóa là không có giai đoạn thiết lập liên kết trước khi truyền dữ
liệu, nó cũng không có các cơ chế bảo đảm thông tin tới đích an toàn, không có cơ
chế điều khiển luồng dữ liệu. Trên thực tế việc thông báo về lỗi đường truyền có
thể được thực hiện nhờ một giao thức khác có tên ICMP( Internet Control Message
Protocol).
Đòa chỉ IP như đã nói ở trên, là một chuỗi bit có độ dài 4 byte, được phân
chia làm 5 lớp và các bit đầu tiên được dùng làm đònh danh lớp đòa chỉ.

II.2 GIAO THỨC TCP
Giao thức TCP là giao thức dùng cho tầng ngay trên tầng IP. Đối với mô
hình OSI, ta có thể thấy tầng TCP có vai trò tương ứng với các tầng giao vận và
tầng phiên .
Khác với IP, TCP là giao thức có liên kết (connection oriented), nghóa là
nhất thiết phải có giai đoạn thiết lập liên kết giữ các cặp thực thể TCP trước khi
chúng có trao đổi dữ liệu với nhau. Giao thức TCP cung cấp một khả năng truyền
dữ liệu một cách an toàn giữa các thực thể trên mạng. Nó cung cấp các chức năng
nhằm kiểm tra tính chính xác của dữ liệu khi gửi đến và gửi lại dữ liệu khi có lỗi
xảy ra.[5]
Đơn vò dữ liệu cơ bản của TCP gọi là segment. Trong segment có một cặp

THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
11
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

Gọi các hàm gửi hay nhận dữ liệu để trao đổi thông tin với client, ví dụ
send, recv.
Sau khi đã hoàn tất quá trình trao đổi dữ liệu, ứng dụng server gọi hàm
closesocket để đóng socket đã tạo.
Hình II.5 Sơ đồ giao tiếp giữa server với client

THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
12
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

II.2.2 CÁCH THỨC CÀI ĐẶT ỨNG DỤNG CLIENT TCP
Ứng dụng client TCP làm việc theo qui trình sau :
- Gọi hàm socket để tạo một socket .
- Gọi hàm connect để nối vào server.
- Gọi hàm gửi hay nhận dữ liệu để trao đổi thông tin với server, ví dụ như
hàm send, recv.
- Sau khi đã hoàn tất quá trình trao đổi dữ liệu, ứng dụng client gọi hàm
closesocket để đóng socket đã tạo.

Hình II.6 Sơ đồ giao tiếp của client với server



II.3.2 CÁCH CÀI ĐẶT ỨNG DỤNG CLIENT UDP
Ứng dụng client UDP thực hiện các bước sau :
- Gọi hàm socket để tạo một socket.
- Gọi hàm setsockopt để làm cho socket có khả năng broadcoast .
- Gọi các hàm gửi hay nhận dữ liệu để trao đổi thông tin với server, ví dụ
hàm sendto, recvfrom.
- Sau khi đã hoàn tất quá trình trao đổi dữ liệu, ứng dụng client gọi hàm
closesocket để đóng socket đã tạo.

Ghi chú:
Ngoài các bước trên, các ứng dụng viết trên Windows NT (kể cả client và
server) phải gọi hàm WSAStartup để khởi tạo thư viện liên kết động Windows
Socket DLL và hàm WSACleanup để đóng thư viện này. Tuy nhiên, đối với ứng
dụng viết trên UNIX thì bộ phận quản lý socket đã được hệ điều hành nạp sẵn và
do đó không cần gọi các hàm như WSAStartup, WSACleanup của Windows NT. THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
14
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

Rất tốt
Tốt
Trung
bình
Chất lượng tiếng nói
Mã hoá
hỗn hợp
Mã hoá dạng sóng
Mã hoá dự đoán
tuyến tính LPC
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
15
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

Hình III.1 Biểu đồ so sánh các phương pháp mã hoá
Mã hoá dạng sóng
Đòi hỏi tốc độ bit rất cao nhưng tạo ra chất lượng âm thanh hoàn hảo và thời
gian xử lý rất ít, bởi vì phương pháp này chỉ đơn giản lấy mẫu tín hiệu ở tốc độ nào
đó và lượng tử hoá từng mẫu dùng lượng tử hoá tuyến tính. Cách tiếp cận này gọi

chuồi nhiễu trắng để tạo ra âm hữu thanh hay vô thanh, AbS sử dụng một dãy các
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
16
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

trạng thái được lưu trữ trong codebook. Khi xem xét một khung âm thanh, AbS
kiểm tra khung đó với rất nhiều tín hiệu kích thước rồi sẽ chọn tín hiệu nào đưa ra
kết quả gần đúng nhất với âm thanh ban đầu. Bộ giải mã chỉ cần biết chỉ số của
xung kích thước đó, sau đó tra codebook rồi tái tạo lại âm thanh. Một số các tham
số khác nhau như năng lượng của sự kích thích và giá trò chu kỳ cũng cần đến khi
giải mã. Các phương pháp mã đi theo cách này đòi hỏi quá trình tính toán phức
tạp, có thể tất cả các mục trong từ điển đều phải thử để đưa ra giá trò tốt nhất.
Hệ thống thông tin toàn cầu GMS : GSM là mộ chuẩn điện thoại được Viện
Tiêu Chuẩn Viễn Thông Châu u ETSI để ra. Đầu vào của bộ nén GMS 06.10 bao
gồm các khung 160 mẫu các tín giệu PCM tuyến tính lấy mẫu tại tần số 8 kHz.
Chu kỳ mỗi khung là 20 ms, đây là khoảng thời gian rất ngắn và trong khoảng thời
gian này cho phép được coi tín hiệu âm thanh ổn đònh. Độ trễ truyền dẫn thông tin
được tính bằng tổng thời gian xử lý và kích thước khung của thuật toán.
Bộ mã hoá thực hiện việc nén một khung tín hiệu đầu vào 160 mẫu (20 ms)
vào một khung 260 bit. Như vậy một giây nó sẽ thực hiện nén được 13.13
3
bit (
tương đương với 1625 byte). Do vậy để nén một megabyte tín hiệu chỉ cần một thời
gian chưa đầy 10 phút.[4]
Trung tâm của quá trình xử lý tín hiệu là bộ lọc. Đầu ra của bộ lọc phụ
thuộc rất nhiều vào giá trò đầu vào đơn của nó. Khi có một dãy các giá trò đưa qua
bộ lọc thì dãy tín hiệu này sẽ được dùng để kích thích bộ lọc. Dạng của bộ nén
GMS 06.10 dùng để nén tín hiệu âm thanh bao gồm 2 bộ lọc và một giá trò kích
thước ban đầu. Bộ lọc ngắn hạn dự đoán tuyến tính được đặt tại tầng đầu tiên của

Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

giới hạn là fs. Bây giờ chúng ta giả sử là các bước a, c và d có thể thực hiện
một cách hoàn toàn chính xác, chúng ta tập trung vào việc xác đònh các lỗi
lượng tử xuất hiện trong bước b.
Cho bước lượng tử (kí hiêu :

). Nếu số lượng các mức lượng tử rất lớn, người ta
giả sử rằng sai số lượng tử có phân bố đồng nhất như sau : ∆
=
1
)(Ep
, -
22

<≤

E
(1)
Điều này sẽ không đúng nếu tín hiệu là bão hoà bộ lượng tư. Ví du như biểu
diễn hình 1, đầu ra của bộ lượng tử có thể bão hoà tại 5 với tần số đầu và vượt qua
số lượng và mỗi lượng tử trong trường hợp này sẽ là một hàm tăng tuyến tính.[4]

Hình III.2 a.Đặc tuyến lượng tử hoá;b.Đặc tuyết sai số lượng tử; c.VD lượng tử đều

Nếu như ta cho rằng bộ lượng tử không bò bão hoà. Theo công thức (1) thì
giá trò bình phương trung bình của sai số lượng tử là :


Ví dụ, cho bộ lượng tử có khoảng biên độ từ – 4Xrms đến + 4Xrms( để
thuận tiện về mặt lý thuyết, thì độ rộng 8Xrms của bộ lượng tử không có ràng buộc
riêng, ngoại trừ các trường hợp đặc biệt. Ví dụ, nếu tín hiệu PDF p(x) được biến
đổi bằng hàm Gaussian trung bình – không, thì các mẫu tín hiệu sẽ rơi bên ngoài
khoảng 8Xrms của bộ lượng tử với xác xuất nhỏ hơn 1/10.000). bước lượng tử đều
có thể được thực hiện tỷ số của khoảng biên độ trên số lượng các bước lượng tử (số
các mức đầu ra). B
rms
X 2/8=∆
(4)
Từ (3) và (4) ta có :

2,76log10)(
10
−== BSNRdBSNR
(5)

Công thức trên miêu tả rất tốt về PCM với các điều kiện sau :
1.Hệ thống hoạt động với kênh sạch(không nhiễu), chỉ giới hạn về sai số lượng tử(
và không gây ra lỗi các từ mã khi kênh có nhiễu).
2.Tín hiệu đầu vào đủ phức tạp để loại trừ cấu trúc thời gian hiển nhiên trong dạng
tín hiệu lỗi, như vậy biểu diễn tónh của lỗi trong 1 được thể hiện đầy đủ.
3.lượng tử hoá đủ mòn(B>6) để ngăn chặn những thành phẩm liên quan đến tín
hiệu trong dạng tín hiệu lỗi, sai số có thể được đo trong biểu thức công suất nhiễu
hay là biến sai số 2.
4.Bộ lượng tử được sắp với thanh biên độ từ (-4Xrms;+4Xrms)

1:10. Giải thuật GSM dựa trên giao thức truyền thông Mobile Phone, hiện tại là
giao thức phổ biến nhất tại Châu Âu đối với điện thoại di động.
Đầu vào của GSM bao gồm các frames 160 tín hiệu, những tín hiệu PCM
tuyến tính 13 bits lấy mẫu ở 8 Khz. GSM có sẵn trong thư viện C có thể được dùng
để tạo ra một đối tượng gsm giữ trạng thái cần thiết hoặc để mã hóa những mẫu
PCM tuyến tính thành các frames GSM, hoặc giải mã các frames GSM thành các
frames PCM tuyến tính. Bộ mã hóa nén 160 frames PCM 16 bits thành các frames
GSM 260 bits. Tương ứng một giây tiếng nói thành 1625 bytes. Bởi vì mẫu 260 bits
không chẵn để gắn vào các bytes 8 bits, nên bộ mã hóa sẽ mã hóa frame 160 bytes
thành frame GSM 264 bits. Một buffer GSM nén 1 Mb có thể lưu tiếng nói gần 10
phút.[2]
Một dòng dữ liệu tiếng nói giải nén 16 bits/mẫu ở 8Khz yêu cầu băng thông
tốc độ 128 Kbits/s, trong khi đó băng thông để truyền qua mạng nếu dùng giải
thuật nén GSM , tiếng nói 16 bits/mẫu chỉ cần:
( 264 bits * 8.000 mẫu/giây)/160 mẫu = 13,2 Kbits/giây
Cho tỉ lệ nén 128/13,2 = 9,7 tương đương 10 :1.

III.2.2.2 Phương pháp nén ADPCM
Nguyên tắc :
Là một phương pháp có thể được dùng để nén các khối dữ liệu tiếng nói
trước khi chúng được truyền đến các máy nhận và giải nén chúng để phát lại sau
khi được nhận từ đường truyền.
Hình sau là một giản đồ khối đơn giản của bộ mã hóa và giải mã ADPCM :
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
20
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ Hình III.3 Sơ đồ khối bộ mã hoá và giải mã ADPCM

Hình III.4 Sơ đồ giải thuật mã hoá nén IMA ADPCM
Từ sơ đồ giải thuật ta thấy rằng bit thứ ba được cài đặt lên 1 nếu độ chênh
lệch giữa X[n] và Xp[n-1] là lớn hơn hay bằng step_size. Sau đó step_size được
chia 2 và so sánh trở lại với độ chênh lệch (độ chênh lệch sẽ được tính lại Mẫu =
mẫu-kích thước mẫu tại bước giải thuật nếu bit thứ ba được cài lên1). Bit thứ hai
cũng được cài lên 1 khi độ chênh lệch mới ≥ kích thước mẫu tại bước giải thuật/2.
Bộ mã hóa một lần nữa l chia kích thước mẫu tại bước giải thuật cho 2 và so sánh
với độ chênh lệch mới và thiết lập giá trò cho bit một tương tự như các bước trước.

THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
22
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
LUẬN VĂN TỐT NGHIỆP Trang
23
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

IV.1.1 CẤU TRÚC FILE WAVE VÀ HÀM PLAYSOUND
IV.1.1.1 Cấu trúc file âm thanh wave
Một file wave thật sự là một phần của một lớp file lớn hơn dùng bởi các
hàm multimedia của windows là các file RIFF ( Resource Interchange File
Format). Một file Riff bao gồm một hoặc nhiều chunk. Trong mỗi chunk có con trỏ
chỉ đến chunk kế tiếp. Mỗi chunk có một mô tả kiểu theo sau bởi một số dữ liệu.
Một ứng dụng để đọc các file RIFF có thể bước qua một số chunk, đọc các chunk
cần quan tâm và bỏ qua các chunk không liên quan. Chunk file RIFF luôn luôn bắt
đầu bằng header sau:
Typedef struct {
FOURCC ckID;
DWORD cksize;
}CK;
Trong đó:
FOURCC là một vùng 4 bytes đònh nghóa loại chunk. Vùng này sẽ chứa từ
WAVE đối với file wave.
ckSize đặc tả kích thước dữ liệu trong chunk, sau header này chúng ta sẽ tìm
thấy cSize bytes dữ liệu.
Các chunk có thể chứa các subchunks. Cấu trúc thật sự một file wave cơ bản
bao gồm một chunk fmt theo sau là một chunk dữ liệu. Có thể có những chunk
khác phía sau chunk WAVE nhưng thiết bò sử dụng file WAVE sẽ bỏ qua các
chunk này. Hình sau mô tả cấu trúc file RIFF chứa dữ liệu WAVE.
Giá trò WAVE_FORMAT_PCM báo cho phần mềm đọc file wave biết cách âm
thanh trong nó được mã hoá.
nChannels : Của đối tượng WAVEFORMAT có 2 giá trò :
• 1 đối với âm thanh mono.
• 2 đối với âm thanh stereo.
nSamplePerSec : Cho biết tần số lấy mẫu của âm thanh để có thể thu và
phát cùng một tốc độ, giá trò thông thường của field này nhận một những giá trò
sau:
11025 - 11,025Khz
22055 - 22,050Khz
44100 - 44,1 Khz
nAvgBytesPerSec : Cho biết số bytes trung bình trong mỗi giây để thu và
phát dữ liệu wave.
nBlockAlign : Xác đònh số bytes yêu cầu chứa trong một mẫu
• Những mẫu có độ phân giải nhỏ hơn hoặc bằng 8 bits có thể lưu vào
1 bytes.
• Những mẫu có độ phân giải từ 9 đến 16 bits yêu cầu 2 bytes.
Những mẫu stereo yêu cầu số bytes gấp đôi những mono.
Trong cấu trúc trên không đònh nghóa số bits thật sự trong một mẫu dữ liệu
âm thanh file wave, để đònh nghóa số bits trong một mẫu ta dùng cấu trúc sau:
Typedef struct pvmwaveformat_tag{
WAVEFORMAT wf;
WORD wBitsPerSample;
} PCMWAVEFORMAT;
Trong đó:
wf: Đối với dữ liệu subchunk fmt của một chunk WAVE chúng ta thật sự
làm việc với đối tượng PCMWAVEFORMAT.
nBitsPerSample: Xác đònh số bits thật sự trong một mẫu .
Trong một mẫu mono 8 bits dữ liệu của chunk dữ liệu gồm một chuỗi dài có giá trò
1 byte. Những mẫu stereo được chia ra với byte đầu dùng cho kênh bên trái và

Hàm PlaySound còn cho phép chúng ta xuất âm thanh tùy theo một sự kiện
nào đó xảy ra trong hệ thống như click mouse hay nhấn một phím nào đó. Hệ
thống sẽ phát âm thanh tùy theo hiệc tượng xảy ra để cảnh báo người sử dụng. m
thanh dạng này được gọi là sound events.
Để xác đònh sound event, hàm PlaySound sẽ được gọi với thông số
pszSound trỏ đến bảng đăng ký sự kiện. Ví dụ chúng ta sẽ gọi hàm PlaySound ứng
với sự kiện mouse click như sau:
PlaySound("MouseClick", NULL, SND_SYNC);
IV.1.2 GIAO TIẾP AUDIO VỚI BẰNG CÁC DỊCH VỤ CẤP THẤP
Trong phần này chúng ta sẽ khảo sát việc giao tiếp với thiết bò audio bằng
các hàm cấp thấp, các hàm này phù hợp với các ứng dụng cần giao tiếp. Các hàm
và cấu trúc cấp thấp này đều có prefix là wave.[6]

Thiết bò và dữ liệu
Khi muốn giao tiếp với thiết bò, chúng ta phải mở thiết bò để sử dụng và sau
khi sử dụng xong thì phải đóng thiết bò lại. Trong khi sử dụng chúng ta sẽ truy xuất
các tính năng của thiết bò và theo dõi thiết bò thực thi bằng các handles và
Identifiers.

IV.1.3 SỬ DỤNG CÁC THIẾT BỊ XUẤT NHẬP, HỖ TR WAVEFORM AUDIO
Chúng ta dùng hàm waveOutOpen để mở thiết bò đầu ra nhằm xuất dữ liệu
dạng waveform. Hàm sẽ mở thiết bò waveOut và trả handle về cho ứng dụng. Hệ
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN

Trích đoạn MODUL MÃ HỐ VÀ GIẢI MÃ ÂM THANH THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH CPHONE
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status