Tải bản đầy đủ (.docx) (76 trang)

XÂY DỰNG ỨNG DỤNG TRUYỀN ÂM THANH TRONG MẠNG LAN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.25 MB, 76 trang )

1

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

XÂY DỰNG ỨNG DỤNG TRUYỀN ÂM THANH
TRONG MẠNG LAN


2

HÀ NỘI - 2017
TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN DUY KHÁNH

XÂY DỰNG ỨNG DỤNG TRUYỀN ÂM THANH
TRONG MẠNG LAN

Chuyên ngành : Công nghệ thông tin
Mã ngành

:52480201


3
NGƯỜI HƯƠNG DẪN:

TS. PHẠM MINH HẢI


HÀ NỘI - 2017
LỜI CAM ĐOAN
Em tên là Nguyễn Duy Khánh, sinh viên khóa DH3, Trường đại học Tài
nguyên và Môi trường Hà Nội, chuyên ngành Công nghệ thông tin, xin cam đoan:
1. Đây là đồ án tốt nghiệp do bản thân em trực tiếp thực hiện dưới sự hướng dẫn của

Thầy Phạm Minh Hải.
2. Công trình này không trùng lặp với bất kỳ nghiên cứu nào khác đã được công bố.
3. Các số liệu và thông tin trong nghiên cứu là hoàn toàn chính xác, trung thực, khách
quan và phù hợp với thực tiễn, đã được xác nhận theo đúng quy định.
Nếu có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm trước pháp
luật về những cam kết này. Trường đại học Tài nguyên và Môi trường Hà Nội và
cán bộ giảng viên hướng dẫn không liên quan đến những vi phạm tác quyền, bản
quyền do em gây ra trong quá trình thực hiện (nếu có).
Hà Nội, ngày 12, tháng 05, năm 2017
Sinh viên thực hiện

Nguyễn Duy Khánh


4
LỜI CẢM ƠN
Trên thực tế, phía sau những thành công luôn luôn có sự hỗ trợ, giúp đỡ nhiệt
tình của mọi người. Trong đó là sự quan tâm, động viên từ phía thầy cô, gia đình và
bạn bè.
Với tấm lòng biết ơn, em xin gửi lời cảm ơn đến toàn thể thầy cô trong
trường Đại học Tài nguyên và Môi trường Hà Nội đã tâm huyết truyền đạt tri thức
cho em trong suốt thời gian học tập vừa qua.
Đặc biệt em xin gửi lời cảm ơn sâu sắc đến TS. Phạm Minh Hải người đã
trực tiếp tạo điều kiện quan tâm hướng dẫn và giúp đỡ em hoàn thiện đồ án này.

Việc nghiên cứu và xây dựng chương trình phần mềm đòi hỏi phải đầu tư
nhiều thời gian. Vì điều kiện thời gian có hạn cho nên báo cáo tốt nghiệp này không
tránh khỏi những thiếu sót, em rất mong được sự chỉ dẫn thêm của thầy cô.
Sau cùng, em xin kính chúc thầy Phạm Minh Hải và toàn thể các thầy cô
trong trường sức khỏe dồi dào, ngày càng thành công hơn nữa trong sự nghiệp trồng
người.
Em xin chân thành cảm ơn!
Hà Nội, ngày 12, tháng 05, năm 2017
Sinh viên thực hiện

Nguyễn Duy Khánh


5
MỤC LỤC


6
Từ viết
tắt
ADPCM
AbS
ATC
ETSI
GSM
ÍDN
ICMP
IMA
IP
LPC

MCI
OSI
PABX
PCM
PSTN
RIFF
TDM
TCP
UDP

Tên đầy đủ
Adaptive Differential Pulse Code
Modulation
Analysis by Synthesis
Adaptive Transform Coding
European Telecommunication
Standards Institude
Global System for Mobile
Communications
Integrated Services Digital Network
Internet Control Message Protocol

Nghĩa của từ
Điều xung mã vi sai thích nghi

Phân tích theo Tổng hợp
Chuyển đổi mã hóa thích nghi
Viện Tiêu chuẩn Viễn thông
châu Âu
Hệ thống thông tin di động toàn

cầu
Mạng số tích hợp đa dịch vụ
Giao thức Thông báo Kiểm soát
Internet
Interactive Multimedia Association Hiệp hội tương tác đa phương
tiện
Internet Protocol
Giao thức Internet
Linear Prediction Coding
Mã hoá dự đoán tuyến tính
Media Control Interface
Giao diện điều khiển truyền
thông
Open Systems Interconnection
Mô hình tham chiếu kết nối các
Reference Model
hệ thống mở
Private Automatic Branch eXchange Bộ chuyển mạch tự động
Pulse Code Modulation
Điều chế xung mã
Public Switched Telephone
Mạng điện thoại chuyển mạch
Network
công cộng
Resource Interchange File Format
Định dạng tệp trao đổi tài
nguyên
time division multiplexing
Ghép kênh thời gian
Transmission Control Protocol

Giao thức điều khiển truyền vận
User Datagram Protocol
Giao thức gói mạch dữ liệu
người dùng


7
DANH MỤC HÌNH


8
MỞ ĐẦU
1. Xu thế chung
Trong những năm gần đây, công nghệ thông tin ngày càng trở nên phổ biến.
Việc kết nối giữa các thiết bị điện tử đem lại cho chúng ta nhiều lợi ích trong công
việc học tập cũng như trong việc giải trí. Bên cạnh đó, tốc độ phát triển của nền
công nghệ hiện đại đã cho ra đời nhiều thiết bị thông minh. Với các kỹ thuật cao đã
tạo ra các máy PC với tốc độ tính toán, khả năng xử lý nhanh hơn, những chiếc điện
thoại thông minh với nhiều chức năng vô cùng tiện ích cho cuộc sống hằng ngày.
Giờ đây, việc trao đổi với nhau không chỉ bằng văn bản mà còn kết hợp tất cả các
phương tiện hỗ trợ khác như âm thanh, hình ảnh…
2. Lý do chọn đề tài
Việc áp dụng kỹ thuật đa phương tiện 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. Các trang web trở nên
sinh động hơn khi kèm theo kỹ thuật đa phương tiện. Có thể kể tên các ứng dụng
tiện ích như Video Call, Chat Voice, Yahoo, Facebook, Zalo... Tuy là những ứng
dụng này vừa mới được bắt đầu thực hiện trong thời gian gần đây nhưng việc tiếp
cận đến người dùng là rất nhanh chóng. Khi có sự hỗ trợ của những thiết bị âm
thanh, hình ảnhthì việc giao tiếp với nhau trong đời sống hằng ngày không còn gì là
khó khăn cản trở bởi thời gian, địa lý. Chính vì vậy em xin chọn đề tài cho đồ án tốt

nghiệp: Xây dựng ứng dụng truyền âm thanh trong mạng LAN.
3. Mục tiêu
Thứ nhất là tìm hiểu các mô hình và công nghệ truyền âm thanh hiện nay,
thứ hai là trên cơ sở đó xây dựng ứng dụng truyền âm thanh trong mạng LAN để có
thể phát triển xây dựng được ứng dụng. Thể hiện sự hữu ích cần thiết của ứng dụng
cho cuộc sống.
4. Nội dung và cấu trúc của luận văn
Đồ án sẽ xây dựng thử nghiệm một ứng dụng cho phép trao đổi thông tin
bằng âm thanh, tương tác điểm – điểm trên mạng LAN. Đồ án được trình bày gồm 3
chương với bố cục như sau :
Chương 1 : Tổng quan về mô hình điện thoại qua mạng.
Chương 2 : Phân tích xác định yêu cầu ứng dụng truyền âm thanh.


9
Chương 3 : Xây dựng ứng dụng truyền âm thanh trong mạng LAN.
Phần kết luận : Nêu những kết quả của đề tài và hướng nghiên cứu hướng
phát triển tiếp theo.
5. Phương pháp nghiên cứu
Tìm hiểu lý thuyết của mô hình thực tế truyền âm thanh trong mạng LAN.
Nêu ra các phương pháp, cách thức xử lý.
Phân tích thiết kế yêu cầu ứng dụng truyền âm thanh trong mạng LAN
Xây dựng úng dụng bằng môi trường lập trình Android với sự hỗ trợ của
NodeJS và Socket IO.


10
CHƯƠNG 1: TỔNG QUAN MÔ HÌNH ĐIỆN THOẠI QUA MẠNG
Điện thoại là thiết bị viễn thông dùng để trao đổi thông tin từ xa giữa hai hay
nhiều người. Điện thoại biến tiếng nói, âm thanh thành tín hiệu điện và truyền trong

mạng điện thoại thông qua đường truyền kết nối để đến người sử dụng khác. Hệ
thống mô hình điện thoại có hai hợp phần cơ bản:


Thiết bị đầu cuối, thường gọi bằng chính tên "điện thoại", thực hiện biến tiếng nói
thu được thành tín hiệu điện để truyền đi, và biến tín hiệu điện nhận được thành âm

thanh.
• Đường truyền điện thoại (hữu tuyến và vô tuyến) điều khiển kết nối và truyền dẫn,
thực hiện kết nối những người dùng và truyền dẫn tín hiệu.
1.1.

Các mô hình điện thoại

1.1.1.

Máy tính đến máy tính
Trong mô hình này cả hai thiết bị máy tính được kết nối với nhau bằng địa
chỉ IP như một thiết bị đầu cuối. Âm thanh được mã hoá sau đó được truyền đi. Mô
hình đòi hỏi cả hai thiết bị máy tính cần phải có Soundcard, microphone, loa và
phần mềm ứng dụng giống nhau.

Hình 1.1. Mô hình PC – PC
1.1.2.

Máy tính đến điện thoại hoặc điện thoại đến máy tính
Mô hình bao gồm một thiết bị sử dụng máy tính nối mạng còn thiết bị kia sử
dụng điện thoại trong mạngPSTN, 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, máy tính cũng phải có đầ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.


11
Gateway là một thiết bị điện tử có thể kết nối các loại mạng khác nhau. Nó
cho phép ghép nối và kết hợp cách truyền thông cũ và mới mà không tạo ra các thay
đổi phức tạp đến các cơ sở hạ tầng điện thoại và mạng hiện có.

Hình 1.2. Mô hình Máy tính – Điện thoại
1.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 để kết nối cuộc gọi. Gateway được sử dụng ở cả hai đầu để
chuyển đổi dữ liệu giữa các mạng với nhau.

Hình 1.3. Mô hình Điện thoại – Điện thoại
1.2.

Yêu cầu ứng dụng truyền âm thanh trong mạng LAN
Vấn đề đặt ra là với một hệ thống mạng LAN, WAN cùng với tài nguyên sẵn
có xây dựng một chương trình truyền âm thanh cho phép từ máy này sang máy khác
(point to point) với một số các yêu cầu thích hợp giống như việc xử lý và truyền âm
thanh trong thông tin liên lạc (điện thoại hữu tuyến). Chương trình sử dụng giao
thức TCP/IP là một giao thức phổ biến và tin cậy hiện nay để kết nối và truyền âm
thanh. Do sử dụng giao thức TCP là giao thức có liên kết nên dẫn đến độ trễ rất lớn
nhưng với ứng dụng trong mạng LAN thì vẫn có thể chấp nhận được. Ngay khi
tiếng nói được thu và có thể qua một số các xử lý như mã hoá tiếng nói hoặc nén,
tiếng nói được truyền tới máy cần kết nối và qua các xử lý như giải mã để phát ra

loa. Chương trình cho phép kết nối hai máy và tạo một mô hình điện thoại trên 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ờ (lắng nghe) gọi là SERVER; máy ở chế độ gọi (phát tín hiệu) gọi


12
là CLIENT. Như vậy một máy trong mạng có thể là SERVER hoặc CLIENT. Trên
môi trường mạng, khi chúng ta muốn nói chuyện một người nào đó, chúng ta sẽ tiến
hành yêu cầu kết nối. Việc kết nối được xác định bởi địa chỉ IP. Sau đó chúng ta sẽ
chờ việc xác lập kết nối và 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. 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.
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, 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 khác đặt ra cho ứng dụng như : cơ chế tạo lập liên kết, việc chọn lựa
các dạng format dữ liệu, định các thông số thời gian.
1.3.

Khảo sát các giao thức truyền thông

1.3.1.

Giao thức TCP/IP
TCP/IP thực chất là một họ giao thức cùng làm việc với nhau để cung cấp

phương tiện truyền thông liên mạng. Trong hệ thống mạng Internet, mỗi máy có
một tên và một địa chỉ IP (Internet Protocol). Địa chỉ IP đều được biểu diễn bằng
một dãy 32 bits, được tách thành 4 vùng, mỗi vùng là 1 byte phân cách nhau bởi
dấu chấm và các bit đầu tiên được dùng làm định danh lớp địa chỉ.
Mỗi giao diện mạng trong một nút mạng 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). 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.


13

Hình 1.4. Các lớp địa chỉ IP

Hình 1.5. TCI/IP và mô hình OSI
NetID nhận dạng cho từng mạng riêng biệt. Các kiểu lớp địa chỉ IP cho thấy
số lượng mạng và số lượng nút của mỗi lớp khác nhau. Hình dưới cho thấy số lượng
mạng và số lượng nút của mỗi lớp địa chỉ :

Hình 1.6. Chi tiết các lớp địa chỉ


14
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ớn và vừa. Mạng lớp C dùng trong cơ quan nhỏ, trong đó mỗi
mạng chỉ có 254 nút.



Khái niệm SOCKET
Socket là một đơn vị cấu trúc truyền thông 2 chiều. Ta có thế lập trình điều
khiển đọc hay ghi lên nó và truyền thông giữa hai máy sử dụng giao thức TCP/IP.
Tuy nhiên mỗi socket là một thành phần của một đoạn truyền 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 liên kết vào mạng. 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ỳ các chương trình mạng. 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. Có hai loại socket:

-

Socket có hướng kết nối dùng cho TCP (Transmission Control Protocol) hay còn

-

gọi là Socket Stream
Socket không hướng kết nối dùng cho UDP (User Datagram Protocol) hay còn gọi
là Socket Datagram

Hình 1.7. Các socket và port trong mối nối TCP/IP


Giao thức liên mạng 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ạch 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



15
(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.
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).


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, nghĩa là nhất thiết phải có giai
đoạn thiết lập liên kết giữa các cặp thực thể TCP trước khi chúng 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.
Đơn vị dữ liệu cơ bản của TCP gọi là segment. Trong segment có một cặp
tham số là số hiệu cổng của trạm nguồn và số hiệu cổng của trạm đích. Mỗi một tiến
trình ứng dụng tại một trạm sẽ truy cập các dịch vụ TCP thông qua một cổng. Một
cổng như vậy kết hợp với một địa chỉ IP sẽ tạo thành một Socket duy nhất trong
mạng. Dịch vụ TCP được cung cấp nhờ liên kết logic giữa một cặp Socket, mỗi
Socket có thể tham gia liên kết với nhiều Socket ở xa khác nhau. Trước khi truyền

dữ liệu chúng thiết lập liên kết và khi không có nhu cầu truyền dữ liệu nữa thì liên
kết sẽ được giải phóng.
Mỗi ứng dụng TCP gồm hai phần là Client và Server.


16
Sơ đồ sau minh họa các bước cần thiết để các ứng dụng Client và Server giao
tiếp với nhau:

Hình 1.8. Sơ đồ kết nối giữa client và server theo giao thức TCP


Server TCP
Ứng dụng TCP server làm việc theo qui trình sau:
Gọi hàm socket để tạo một socket.
Gọi hàm bind để kết buộc socket với một port, đối với mỗi giao thức ứng
dụng chuẩn thì sẽ có một hằng số được định nghĩa sẵn cho port của giao thức đó.
Gọi hàm listen để chờ đến khi có một client nối vào port.
Khi có một client nối vào thì hàm listen trả điều khiển về, ứng dụng server
gọi hàm accept để xác nhận mối nối của client.


17
Gọi các hàm gửi hay nhận dữ liệu để trao đổi thông tin với client, ví dụ
sendto, recvfrom.
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.


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

1.3.2.

Giao thức UDP
Giao thức UDP cung cấp khả năng quảng bá trên hệ thống mạng TCP/IP .
Giao thức yêu cầu cần cài đặt client và server. Ứng dụng client có nhiệm vụ gửi
thông báo đến tất cả các sự kiện của ứng dụng server đang chạy trên hệ thống mạng.



Server UDP
Ứng dụng server UDP được cài đặt đơn giản hơn ứng dụng TCP với các
bước chính sau đây :
Gọi hàm socket để tạo một socket .
Gọi hàm bind để kết buộc socket với một port, đối với mỗi giao thức ứng
dụng chuẩn thì sẽ có một hằng số được định nghĩa sẵn cho port của giao thức đó.
Gọi các hàm gửi hay nhận dữ liệu để trao đổi thông tin với client, ví như hàm
sendto, recvfrom.
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.




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.


18
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.
1.4.

Phương pháp mã hóa âm thanh
1.4.1. Giới thiệu chung
Trong hệ thống xử lý âm thanh, các mã hoá âm thanh 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ư PCM, 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 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.
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 lớn hơn 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.


19

Hình 1.9. 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. Phương pháp này gọi là
điều biến xung mã (PCM)lấy mẫu tốc độ 8KHz(lượng tử 8bit/mẫu) cho tốc độ bit ra
là 64 kbps.
Phương pháp điều biên xung mã vi phân (DPCM) dự đoán giá trị hiện tại dựa
vào các giá trị trước của các mẫu quá khứ, chỉ lưu trữ giá trị sai số lượng tử. Giá trị
sai số này sẽ nhỏ hơn giá trị thực của mẫu, do đó cho phép lưu trữ giảm đi một
phần.
Một cải tiến của DPCM là điều biến xung mã vi phân thích nghi (ADPCM).
Bộ tiến đoán và lượng tử hoá trong phương pháp này có khả năng thích nghi với tín

hiệu cần mã hoá. ADPCM hoạt động tốc độ 32 kbps cho chất lượng tương đối với
PCM 64 kbps.

• Mã hoá dự đoán tuyến tính LPC
Phương pháp mã hoá dạng sóng là khi lấy mẫu tín hiệu tương đương sẽ cho
ra dòng dữ liệu khá lớn. Các phương pháp mã hoá nguồn phải quan tâm đến việc
âm thanh được tạo ra như thế nào, nếu có thể mô hình hoá cách tạo ra âm thanh thì


20
không phải truyền đi các mẫu của tín hiệu âm thanh mà chỉ cần gửi đi cách thức tạo
ra âm đó trên đến bộ mã. Như vậy theo phương pháp này thay vì mã hoá và truyền
trực tiếp âm thanh thì người ta chỉ mã hoá các tham số tạo ra âm thanh tại nơi nhận,
từ các tham số này bộ tổng hợp tiếng nói sẽ tổng hợp nên tiếng nói nhân tạo. Những
phương pháp này gọi là Vocoder. Mô tả đơn giản nhất của mô hình này là mã hoá
dự đoán tuyến tính (LPC). Phương pháp mã hoá Vocoder cho tốc độ bit rất thấp (lớn
hơn 2 kbps) nhưng độ phức tạp cao hơn với phương pháp mã hoá dạng sóng và chất
lượng âm thanh không trung thực.

• 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
phân tích tổng hợ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 hoàn 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 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.
GMS làmột 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 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.


21
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.133 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.
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 quá trình nén và
tại tầng cuối cùng trong suốt quá trình dãn.
1.4.2.

Phương pháp điều biến xung mã PCM
Mã hoá tín hiệu âm thanh liên quan tới các bước sau đây :
Bước 1: Lấy mẫu. Tín hiệu âm thanh được lấy mẫu với tần số tối thiểu là :

f s ≥ 2 f max
fs : tần số lấy mẫu

fmax : tần số lớn nhất trong tín hiệu được lấy mẫu.
Việc lấy mẫu như vậy là có ý nghĩa biến đổi tiến hiệu liên tục thành tín hiệu
rời rạc và tín hiệu số đảm bảo hoàn toàn khôi phục lại được tín hiệu tương đương
ban đầu bởi thiết bị khôi phục thiết bị.
Khi truyền tin tức trong một tín hiệu x(t) liên tục thay vì truyền đi toàn bộ tín
hiệu x(t) ta chỉ truyền đi một số các giá trị tức thời của nó.
Điều kiện của các điểm lấy mẫu để tái tạo tín hiệu x(t) liên tục từ các mẫu rời
rạc mà không bị méo.
Bước 2: Lượng tử hóa. Chuyển tín hiệu vô hạn x(t) thành hữu hạn x*(t) với
N mức cần n bit để mã hóa: >=N. Và sai số lượng tử hóa:x= x(t) – x*(t)
Biên độ của từng mẫu tín hiệu được lượng tử hoá thành một trong số 2B
mức. Điều này có nghĩa dùng B bit trên một mẫu và thông lượng là 2fsB bit/giây
với tín hiệu được lọc thông thấp.


22
Bước 3: Các mức biên độ riêng biệt được thể hiện bằng các từ nhị phân riêng
biệt có chiều dài B. ví dụ : với B =2 thì một từ có thể thể hiện cho 4 mức riêng biệt
bằng cách sử dụng các từ mã 00, 01, 10 và 11.
Bước 4: Đối với việc giải mã, các từ nhị phân được ứng thành các mức biên
độ và chuỗi xung biên độ – thời gian được lọc thông thấp với một bộ lọc có dải tần
giới hạn là fs. Giả sử các bước 1, 3 và 4 có thể thực hiện một cách hoàn toàn chính
xác, thì việc xác định các lỗi lượng tử xuất hiện trong bước 2.
Cho mứ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 :


p(E ) =

1


,-



≤E<
2
2

(1)

Điều này sẽ không đúng nếu tín hiệu là bão hoà bộ lượng tử. Ví dụ như biểu
diễn hình dưới, đầ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.


23
Hình 1.10. Đặc tuyến lượng tử hoá

Hình 1.11. Đặc tuyết sai số lượng tử

Hình 1.12. 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à :
−∆




−∆

2

2

∆2
E p( E )dE =
12
2

(2)

Nếu giá trị độ rộng của đầu vào X là Xrms, thì tỷ số tín hiệu/nhiễu được tính
bởi :


24

[

2
SNR = X rms
/ ∆2 / 12

]


(3)

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. 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).

∆ = 8 X rms / 2 B
(4)
Từ (3) và (4) ta có :

SNR(dB ) = 10 log10 SNR = 6 B − 7,2
(5)
Công thức trên miêu tả về PCM với các điều kiện sau :

• 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).
• 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 đủ
• 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.
• Bộ lượng tử được sắp với thanh biên độ từ (-4Xrms;+4Xrms) .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 dẫn đến
thông lượng lớn.
1.5.
Phương pháp nén âm thanh

1.5.1. Giới thiệu chung
Nén âm thanh 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


25
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. Vì nếu dữ liệu được nén thì phải giải nén khi nhận, do đó cũng tốn thời gian để
nén và giải nén dữ liệu, điều này dẫn đến ảnh hưởng thời gian thực của hệ thống,
gây ra thời gian trễ rất lơn.
Đối với các mạng cục bộ, thường có tốc độ truyền của mạng cao nên có thể
không cần phải nén tiếng nói trước khi truyền.
Ngược lại, đối với mạng Internet, hệ thống được kết nối với Internet thông
qua các modem chuẩn có tốc độ thấp 14,4 Kbits/s hoặc 28,8Kbits/s thì nhất thiết
phải nén tiếng nói trước khi truyền và giải nén trước khi phát. Hai phương pháp nén
âm thanh thường được dùng nhất để giảm băng thông là GSM và ADPCM.
1.5.2.


Các phương pháp nén âm thanh
Phương pháp nén tiếng nói theo chuẩn GSM
Phát triển tại Đại học Kỹ thuật Berlin vào năm 1992, GSM là một trong
những phương pháp nén âm thanh phức tạp nhất đang được sử dụng, cho tỉ lệ nén
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 GMS 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 âm thanh 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.
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


×