Đồ án tốt nghiệp viết chương trình ứng dụng truyền âm thanh trên mạng LAN - Pdf 12

LUẬN VĂN TỐT NGHIỆP Trang 1
LỜI NÓI ĐẦU
Trong 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
thiết bò. Ngày nay, khi công nghệ thông tin đã phát triển thì việc hiện thực chương
trình này là hoàn toàn có thể. Ứng dụng trong nhiều lónh vực khác nhau như :
 •Việc dạy học từ xa.
 •Việc chẩn đoán, chữa bệnh từ xa.
 •Hội thảo, thảo luận theo nhóm.
 •Công cụ trao đổi thông tin bằng hình ảnh và âm thanh.
Mục tiêu của đồ án tốt nghiệp là tìm hiểu các mô hình và công nghệ truyền âm

I.1.1 MÁY TÍNH ĐẾN MÁY TÍNH
Trong mô hình này cả hai thuê bao đều sử dụng máy tính được nối vào
mạng IP như một thiết bò đầu cuối. Tiếng nói được mã hoá sau đó là nén và quá
trình nhận dữ liệu hoàn toán giống nhưng với quy trình ngược lại là giải nén, giải
mã bằng phần mềm. Trong mô hình này đòi hỏi cả hai thuê bao cần phải có
soundcard, microphone, loa và phần mềm giống nhau.[1]

Hình I.1 : Mô hình PC - PC
I.1.2 MÁY TÍNH ĐẾN ĐIỆN THOẠI HOẶC ĐIỆN THOẠI ĐẾN MÁY TÍNH
Trong mô hình này, một thuê bao sử dụng máy tính nối mạng với mạng còn
thuê bao kia sử dụng điện thoại trong mạng PSTN/ISDN/GSM/TDM. Sử dụng một
gateway để chuyển tiếng nói trên mạng IP thành tiếng nói trên mạng PSTN và
trao đổi thông tin giữa hai mạng trên. Như vậy, ở đây máy tính phải đầy đủ các
thiết bò như Soundcard, loa, microphone và phần mềm thông qua server của mạng
IP để có thể kết nối với mạng PSTN thông qua Geteway.
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]

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

IP
Máy tính Điện thoại
I
P
Gateway
PSTN

máy tính như điện thoại hữu tuyến thông thường. Bất kỳ máy nào trong mạng cũng
có thể ở chế độ chờ hay chế độ chạy nền (background) gọi máy là P-SERVER;
máy ở chế độ gọi (active) gọi là P-CLIENT. Như vậy một máy trong mạng có thể
là P-SERVER hoặc P-CLIENT. Trên môi trường mạng, khi chúng ta muốn nói
chuyện một người trên một máy nào đó, chúng ta sẽ tiến hành việc gọi liên kết.
Việc gọi liên kết được tiến hành bằng việc xác đònh đòa chỉ IP của máy mà chúng
ta cần liên kết. Sau đó chúng ta sẽ chờ việc xác lập liên kết. Ở máy được gọi sẽ có
thông báo cho người sử dụng biết rằng có một người khác muốn nói chuyện. Tùy
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ó
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
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
LUẬN VĂN TỐT NGHIỆP Trang 5
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
ra cách giải quyết cho phù hợp. Ngoài các vấn đề chính ở trên, một số yêu cầu

lượng mạng và số lượng nút có thể của mỗi lớp đòa chỉ :
Lớp đòa chỉ Số lượng mạng Số lượng nút
A 127 16.777.241
B 16.383 65.534
C 2.097.151 254
Mạng lớp A dùng cho mạng diện rộng. Trường netid có 7 bits nên có thể có
127 mạng. Mạng lớp B là mạng có kích thước trung bình và thích hợp cho các tổ
chức có quy mô lớp và vừa. Mạng lớp C dùng trong cơ quan nhỏ, trong đó mỗi
mạng chỉ có không hơn 254 nút.
Con số 32 bits biểu thò 4 chữ số thập phân tương ứng giá trò 4 byte tạo thành
đòa chỉ IP. Những số thập phân cách nhau bởi dấu chấm (.). Một ví dụ về tên máy
và đòa chỉ IP của máy :
Hostname : viethung
IP Address : 192.168.0.55
II.1.1 KHÁI NIỆM SOCKET
Socket là một đơn vò cấu trúc truyền thông 2 chiều. Chúng có thể đọc hay
ghi lên nó. Tuy nhiên mỗi socket là một thành phần của một mối nào đó giữa các
máy trên mạng máy tính và các thao tác đọc ghi chính là các thao tác trao đổi dữ
liệu giữa các ứng dụng trên nhiều máy khác nhau. Socket là điểm kết nối cuối
cùng cho phép những ứng dụng gắn vào mạng. Khái niệm socket được cung cấp
bởi một thư viện chứa tất cả các hàm yêu cầu cho bất kỳ chương trình mạng nào.
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]
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
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
Máy A

Trò số của cổng trong các ứng dụng :
- Các ứng dụng chuẩn : 0 – 999
- Các ứng dụng không chuẩn : 1000 – 64000
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]
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
LUẬN VĂN TỐT NGHIỆP Trang 9
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

Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
LUẬN VĂN TỐT NGHIỆP Trang 11

Hình II.5 Sơ đồ giao tiếp giữa server với client
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.
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
LUẬN VĂN TỐT NGHIỆP Trang 12
- 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
Ghi chúù:
Các bước trên cơ bản là giống nhau cho các ứng dụng client và server viết
trên Windows NT và UNIX. Tuy nhiên, với ứng dụng viết trên UNIX thì không
cần gọi các hàm WSAStartup, WSACleanup để khởi tạo thư viện quản lý socket
và đóng bộ phận này. Lý do, với UNIX thì bộ phận quản lý socket đã được hệ điều
hành nạp sẵn.
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
LUẬN VĂN TỐT NGHIỆP Trang 13
II.3 GIAO THỨC UDP
Giao thức UDP cung cấp khả năng broadcast trên hệ thống mạng TCP/IP .
Chúng ta cũng cần cài đặt ứng dụng client và server. Ứng dụng client có nhiệm vụ
gửi thông báo đến tất cả các instance của ứng dụng server đang chạy trên hệ thống
mạng.[5]
II.3.1 CÁCH CÀI ĐẶT ỨNG DỤNG SERVER UDP
Ứng dụng server UDP được cài đặt đơn giản hơn ứng dụng TCP. Chúng ta

này cho phép khôi phục một cách tương đối trung thực tín hiệu âm thanh trong dải
tần nghe được. Tuy nhiên trong một ứng dụng đặc biệt như truyền dữ liệu âm
thanh trên mạng, âm thanh được truyền với tốc độ thấp hơn nhiều. Từ đó xuất hiện
một số kỹ thuật mã hoá và nén tín hiệu âm thanh như ADPCM, LPC, GSM….
Các loại phần mềm và phần cứng thực hiện mã hoá và nén âm thanh sang
các loại dữ liệu số thường được gọi là codec(Coder-Decoder). Có thể phân loại các
phương pháp mã hoá âm thanh thành 3 loại :
Mã hoá dạng sóng(waveform codec) : Giữ nguyên hình dạng nguyên thuỷ
của sóng âm. Phương pháp mã hoá này đòi hỏi tốc độ dữ liệu rất cao nhưng lại cho
chất lượng âm thanh rất tốt. Ưu điểm của bộ mã hoá này là độ phức tạp, giá thành
thiết kế, độ trễ và công suất tiêu thụ thấp. Bộ mã hoá sóng đơn giản nhất là điều
biên xung mã (PCM)…Tuy nhiên nhược điểm của bộ mã hoá là không tạo được âm
thanh chất lượng cao tại tốc độ dưới 16 kbps, bộ mã nguồn khắc phục được nhược
điểm này.[4]
Mã hoá nguồn (Source codec) : Cho phép đạt được tốc độ truyền dữ liệu
thấp, có thể thực hiện tại tốc độ bit > 2kbps, nhưng chất lượng âm thanh không cao.
Mã hoá hỗn hợp (hybrid codec) : Sử dụng cả hai phương pháp trên để tạo ra
tín hiệu âm thanh có chất lượng tốt ở tốc độ dữ liệu trung bình.

Đề 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

Mã hoá hỗn hợp
Để giải quyết vấn đề của phương pháp mã hoá dạng sóng và của phương
pháp mã hoá dự đoán, một nhóm các phương pháp mã hoá sử dụng phương pháp
AbS (Analysis by Synthesis) để tạo ra mô hình máy phát âm phức tạp hơn. Trong
khi Vocoder sử dụng bộ lọc tuyến tính kích thích bởi chuỗi xung tuần hào hay
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
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
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
LUẬN VĂN TỐT NGHIỆP Trang 16
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

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 :
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
LUẬN VĂN TỐT NGHIỆP Trang 17∆
=
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à :






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)
như vậy trong lượng tử đều, cứ thêm 1 bit thì được lợi 6 dB và để có chất lượng
thích hợp thì B >11 do đó thông lượng tương đối lớn.

III.2 CÁC PHƯƠNG PHÁP NÉN TIẾNG NÓI
III.2.1 GIỚI THIỆU CHUNG
Y Ùtưởng nén tiếng nói là để giảm kích thước nhằm giúp ít tốn băng thông
truyền qua mạng. Dòng dữ liệu tiếng nói được giải nén ở tốc độ lấy mẫu mặc đònh
( 8bits/mẫu, 8 khz, kênh mono) sẽ yêu cầu đường truyền có tốc độ 8000 mẫu/giây
* 8 bits/ mẫu = 64 Kbits/giây để truyền dữ liệu qua mạng. Do đó, tùy theo tốc độ
đường truyền thực tế trên mỗi mạng mà chọn giải pháp nén hay không nén dữ liệu
trước khi truyền dữ liệu âm thanh qua mạng, cũng như chọn tỉ lệ nén là bao nhiêu
cho phù hợp (chọn giải thuật nén). Vì nếu dữ liệu được nén thì phải giải nén khi

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 :
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
LUẬN VĂN TỐT NGHIỆP Trang 20
Hình III.3 Sơ đồ khối bộ mã hoá và giải mã ADPCM
Bộ mã hóa ADPCM giả sử rằng những mẫu âm thanh kế cận nhau sẽ giống
nhau, vì thế thay vì biểu diễn mỗi mẫu độc lập như PCM. ADPCM tính toán sự
chênh lệch giữa các mẫu âm thanh và giá trò tiên đoán của nó và tạo ra những giá
trò vi phân PCM. Có nhiều giải thuật ADPCM khác nhau được đề nghò. Trong
phạm vi luận văn này em tìm hiểu và ứng dụng giải thuật đưa ra bởi IMA
(Interactive Multimedia Association) .
Giải thuật IMA ADPCM nén những mẫu PCM tuyến tính thành các mức
lượng hóa 4 bits, trong đó mỗi mẫu DPCM được biểu diễn bằng các giá trò âm
thanh 16 bits, do đó giải thuật này cung cấp một tỉ lệ nén là 4:1. Ví dụ tiếng nói 16
bits/mẫu, 8 Khz, kênh mono yêu cầu tốc độ truyền dữ liệu là 128 Kbits/s , khi nén
với giải thuật IMA_ADPCM chỉ cần tốc độ truyền dữ liệu 32 Kbits/s là đủ.
Quá trình thực hiện của giải thuật IMA_ADPCM là đọc từ những bộ đệm có
giá trò kiểu nguyên và nén chúng thành một mẫu âm thanh 16 bits được biểu diễn
bằng các mức lượng hóa 4 bit. Bởi vì không có giới hạn trong kích thước buffers
tiếng nói nên những mã ADPCM được kết hợp một cách dễ dàng với các phần còn
lại của chương trình để nén tiếng nói khi thu và giải nén trở lại khi phát.
Giải thuật nén IMA ADPCM :
Theo sơ đồ mã hóa trên chúng ta thấy giải thuật IMA ADPCM tính toán sự
chênh lệch giữa mẫu âm thanh hiện tại X[n] và mẫu đã tiên đoán trước Xp[n-1] và
sử dụng sự chênh lệch đó để tính toán mức lượng hóa D[n] cho mỗi mẫu. Giá trò
Xp[n-1] chỉ là giá trò trễ thời gian của giá trò X[n]. Hình sau chỉ ra sơ đồ khối của

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.
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ
LUẬN VĂN TỐT NGHIỆP Trang 23
ID
SIZE
FROM TYPE
"fmt"
SIZE
"data"
SIZE
Hai subchunk trong chunk wave đặc tả thông tin về một âm thanh file wave
và sau đó là chính dữ liệu âm thanh. Chunk fmt chứa chủ yếu đối tượng
WAVEFORMAT và một số dữ liệu thêm vào gắn ở cuối chunk. Một đối tượng
WAVEFORMAT được đònh nghóa như sau :
Typedef struct waveformar_tag{

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à
byte thứ hai dùng cho kênh bên phải, như vậy mỗi mẫu stereo 8 bits sẽ cần 2 bytes.
[6]
Để làm việc với một file RIFF bao gồm các bước sau :
Mở file.
Vào chunk cần thiết.
Chuyển con trỏ file vào vò trí bắt đầu dữ liệu của chunk.
Hoàn tất, ra khỏi chunk.
Vào chunk kế tiếp.
IV.1.1.2 Hàm Playsound
Chúng ta dùng hàm PlaySound để play dữ liệu dạng waveform hoặc chúng
ta có thể dùng hàm sndPlaySound. Tuy nhiên trong môi trường Win32 thì nên dùng
hàm PlaySound.
Hàm PlaySound cho phép chúng ta chỉ đònh các thông số nguồn âm thanh
theo các cách sau:
• Dùng tên alias khai báo trong file WIN.INI
• Dùng tên file.
• Dùng chỉ số nhận dạng tài nguyên
Waveform-Audio Files

Dò tìm thiết bò
Windows cung cấp các hàm sau giúp chúng ta xác đònh các thiết bò trong hệ
thống phù hợp cho yêu cầu của mình.
Hàm Chức năng
AuxGetNumDevs Truy xuất số lượng các thiết bò sẵn có trong
hệ thống
WaveInGetNumDevs Truy xuất số lượng các thiết bò nhập hỗ trợ
waveform audio sẵn có trong hệ thống
WaveOutGetNumDevs Truy xuất số lượng các thiết bò xuất hỗ trợ
waveform audio sẵn có trong hệ thống
Các thiết bò khai báo trong hệ thống được đánh các chỉ số nhận dạng bắt đầu
từ 0. Sau khi xác đònh số lượng các thiết bò sẵn có trong hệ thống, chúng ta có thể
dò tìm khả năng của từng thiết bò bằng các hàm sau:
Hàm Chức năng
AuxGetDevCaps Truy xuất khả năng của thiết bò xuất
WaveInGetDevCaps Truy xuất khả năng của thiết bò nhập dạng
Đề tài : Xây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ

Trích đoạn MODUL THU VAØ PHÁT Â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