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

Nén âm thanh tiếng thoại theo chuẩn ITU

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 (701.64 KB, 33 trang )

1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
----------

BÁO CÁO BÀI TẬP LỚN
XỬ LÝ DỮ LIỆU ĐA PHƯƠNG TIỆN
Đề tài: Nén âm thanh tiếng thoại theo chuẩn ITU
Giáo viên hướng dẫn: PGS.TS NGUYỄN THỊ HOÀNG LAN
Nhóm sinh viên:
Trịnh Công Nam 20101926
Cao Thanh Hoàng 20101569
Nguyễn Đức Mạnh 20101862

Mục lục
1


2

CHƯƠNG 1: TÌM HIỂU KHÁI NIỆM, ĐẶC ĐIỂM CỦA HAI LOẠI TÍN
HIỆU
1.1 Khái niệm âm thanh
Âm thanh là sóng cơ học được tạo nên do sự dao động của các phần tử
không khí. Sóng trong không khí truyền tới tai, va đập vào màng nhĩ, làm cho
màng nhĩ cũng dao động với tần số bằng tần số dao động của các phân tử khí, và
có khả năng tạo ra cảm giác âm thanh trong tai ta khi tần số sóng đạt tới một độ lớn
nhất định( tần số trong khoảng từ 16Hz đến 20KHz).
- Những sóng có tần số < 16Hz : sóng hạ âm.
- Những sóng có tần số >20kHz: sóng siêu âm.


Tai con người không cảm nhận được sóng hạ âm và sóng siêu âm.
Âm thanh có thể lan truyền trong môi trường khí, lỏng, rắn nhưng không
truyền được trong chân không.
1.2 Khái niệm audio
Là sự tái tạo của âm thanh dưới dạng tín hiệu điện tử.
Dựa trên dải tần của tín hiệu người ta chia thành 2 loại như sau:
• Âm thanh dải tần cơ sở (âm thanh tiếng nói thoại) với dải tần số từ 300Hz

đến 4KHz
2


3
• Âm thanh tiếng nói dải rộng (Audio Hifi) (tiếng nói trình diễn, hát, âm

nhạc…) với dải tần số từ 100Hz đến 20KHz.
Ở đây ta sẽ không xét đến chất lượng cũng như sự khác nhau giữa chất
lượng thiết bị nghe để giải thích cho sự khác nhau về chất lượng âm thanh mà chỉ
quan tâm tới điểm khác nhau giữa sự phân loại âm thanh dựa trên dải tần. Giữa dải
tần cơ sở và dải tần rộng thì bên nào cho chất lượng tốt hơn.
1.3 Đặc điểm của tín hiệu tiếng nói thoại
1.3.1 Tần số cơ bản và phổ tần
- Thông lượng: thể tích không khí vận chuyển qua thanh môn trong một đơn vị
thời gian (khoảng 1cm3/s).
- Chu kỳ cơ bản T 0: Khi dây thanh rung với chu kỳ T 0 thì thông lượng cũng biến
đổi tuần hoàn theo chu kỳ này và ta gọi T0 là chu kỳ cơ bản.
- Giá trị nghịch đảo của T 0 là F0=1/ T0 được gọi là tần số cơ bản của tiếng nói . F 0
phụ thuộc vào giới tính và độ tuổi của người phát âm; F 0 thay đổi theo thanh điệu
và F0 cũng ảnh hưởng đến ngữ điệu của người nói.
1.3.2 Biểu diễn tín hiệu tiếng nói

Có 3 phương pháp biểu diễn tín hiệu tiếng nói cơ bản là :
- Biểu diễn dưới dạng sóng theo thời gian.
- Biểu diễn trong miền tần số: Phổ tín hiệu của tiếng nói.
- Biểu diễn trong không gian 3 chiều (Sonagram).
a. Dạng sóng thời gian
Phần tín hiệu ứng với âm vô thanh là không tuần hoàn, ngẫu nhiên và có
3


4

biên độ nhỏ hơn nguyên âm (cỡ khoảng 1/3).
Ranh giới giữa các từ là khoảng lặng (Silent), cần phân biệt khoảng lặng với
âm vô thanh.

Hình 1.1: Dạng sóng theo thời gian
Âm thanh theo dạng sóng được lưu trữ theo định dạng thông dụng trong máy
tính là *. WAV với các tần số lấy mẫu thường gặp: 8000Hz, 10000Hz, 11025Hz,
16000Hz, 22050Hz, 32000Hz, 44100Hz,…;
Độ phân giải (số bit/ mẫu ) là 8 hoặc 16 và số kênh là 1 (mono) hoặc 2
(stereo)
b. Phổ tín hiệu tiếng nói
Dải tần số của tín hiệu tiếng nói thoại nằm từ khoảng 0Hz đến 20KHz, tuy
nhiên phần lớn công suất nằm trong dải tần số từ 0,3 KHz đến 3,4 KHz.
Dưới đây là một số hình ảnh biểu diễn tín hiệu tiếng nói trong miền tần số

4


5


Hình 1.2: Phổ tín hiệu tiếng nói và đường bao phổ
c. Biểu diễn tín hiệu tiếng nói trong không gian 3 chiều
Để biểu diễn trong không gian 3 chiều, người ta chia tín hiệu thành các
khung (frame) ứng với các ô quan sát như hình vẽ 3:

Hình 1.3: Chia tín hiệu thành các khung cửa sổ (frame)
Độ dài 1 cửa sổ tương ứng là 10ms
Các cửa sổ có đoạn chồng lên nhau (khoảng 1/2 cửa sổ)

5


6

Tiếp theo ta vẽ phổ của khung tín hiệu trên trục thẳng đứng , biên độ phổ
biểu diễn bằng độ đậm/nhạt (đối với đồ thị đơn sắc) hoặc "nóng"/"lạnh" (đối với đồ
thị màu) của màu sắc . Ta vẽ theo trục thời gian bằng cách chuyển sang cửa sổ tiếp
theo

Hình 1.4: Phổ của một khung cửa sổ
Dựa vào phương pháp này ta có thể phân biệt âm vô thanh và âm hữu
thanh theo các đặc điểm:
- Âm vô thanh:
Năng lượng tập trung ở miền tần số cao.
Các mức tần số phân bổ khá đồng đều ở cả 2 miền tần số cao và tần sốthấp.
- Âm hữu thanh: Năng lượng tập trung không đồng đều.
* Formant và Antiformant
Tuyến âm được coi như 1 hốc cộng hưởng có tác dụng tăng cường một tần
số nào đó . Những tần số đươc tăng cường lên gọi là Formant. Khoang mũi cũng

được coi là một hốc cộng hưởng , khoang mũi và khoang miệng được “mắc” song
6


7

song nên có thể làm suy giảm một số tần số nào đó và các tần số bị suy giảm này
gọi là các AntiFormant.

Hình 1.5: Đường bao phổ và các formant
Cùng một người phát âm nhưng Formant có thể khác nhau. Giá trị đặc trưng
cho âm hữu thanh không chỉ căn cứ vào giá trị của từng formant mà còn phải dựa
vào sự phân bố tương đối của các Formant. Ngoài ra nếu xác định formant trực tiếp
từ phổ thì không chính xác mà phải dựa vào đường bao phổ, cũng chính là đáp ứng
tần số của tuyến âm.
1.4 Đặc điểm của tín hiệu tiếng nói dải rộng (audio HiFi)
Âm thanh tiếng nói dải rộng là một công nghệ âm thanh được sử dụng phổ
biến trong điện thoại. Nó mở rộng phạm vi tần số của tín hiệu âm thanh truyền qua
đường dây điện thoại cho chất lượng cao hơn. Phạm vi của các tiếng nói của con
người kéo dài từ 80 Hz đến 4 kHz, nhưng các cuộc gọi điện thoại truyền thống,
voiceband hoặc hẹp giới hạn tần số âm thanh khoảng 300 Hz đến 3,4 kHz. Âm
thanh tiếng nói dải rộng giới hạn băng thông và truyền trong phạm vi tần số âm

7


8

thanh từ 50 Hz đến 7 kHz hoặc cao hơn. AMR-WB đã được phát triển bởi Nokia
và VoiceAge và nó lần đầu tiên được quy định bởi 3GPP.


Hình 1.6: Dải tần của kênh thoại
Một số lợi ích âm thanh tiếng nói dải rộng so với truyền thống (hẹp):
• Chất lượng âm thanh tổng thể rõ ràng hơn.
• Dễ dàng hơn để nhận ra tiếng nói, phân biệt âm thanh khó hiểu và hiểu

những từ có dấu.
• Dễ dàng giải mã những từ có âm thanh gần nhau “s” và “f” và những
người khác, thường không thể phân biệt qua đường dây điện thoại.
• Sự nhận diện tốt hơn khi trong tạp âm, chẳng hạn như khi người nói đang
sử dụng một loa ngoài.
Âm thanh tiếng nói dải rộng được đưa ra như một giải pháp nhằm cải thiện chất
lượng cũng như độ tự nhiên của âm thanh bằng cách mở rộng dải phổ so với tiếng
8


9

nói thoại bình thường. Việc mở rộng tần số âm thanh được áp dụng rất nhiều trong
mạng điện thoại cũng như trong âm nhạc, trong mạng điện thoại từ dải tần cơ bản
để cải thiện chất lượng người ta đã mở rộng lên dải tần 200-7000Hz, còn trong âm
nhạc có thể nên tới 20kHz.

Cụ thể với sự phát triển của công nghệ âm thanh tiếng nói dải rộng đã giúp
chúng ta cải tạo được chất lượng tiếng nói, và độ tự nhiên đối với những âm có tần
số <300Hz, và làm tăng độ rõ với những âm có tần số >3400Hz. Mở ra nhiều công
nghệ mới đối với âm thanh tiếng nói dải rộng

9



10

1.5 So sánh đặc điểm chính đối với âm thanh tiếng nói dải rộng và tiếng nói
thoại
Tiếng nói thoại
Giới hạn dải phổ
tín hiệu

Tiếng nói dải rộng

xấp xỉ 4KHz

20KHz
fs=44.1KHz,

Tần số lấy mẫu

fs=8KHz, Ts= 125µs
fs chuyên dụng = 48KHz

Lượng tử hóa giá
trị
Tốc độ cần thiết
Các chuẩn nén
GSM

10

mã hóa bởi 8 bit

8bits

x

8KHz=

64Kbit/s
15,2Kbit/s, ADPCM:
32Kbit/s

mã hóa bởi 16 bits, 20
bits
176Kbyte/s
MPEG-1,
MPEG-3….

MPEG-2,


11

CHƯƠNG 2: CÁC PHƯƠNG PHÁP MÃ HÓA
2.1 Phương pháp mã hoá DPCM :
DPCM (Differential pulse code modulation) điều xung mã vi phân là quá
trình chuyển đổi 1 tín hiệu tương tự sang tín hiệu số bằng cách lấy mẫu tín hiệu
tương tự và sau đó lượng tử vi phân giữa giá trị tín hiệu thực và giá trị dự đoán (dự
đoán giá trị trên cơ sở mẫu trước đó hay các mẫu) và mã hóa thành giá trị số. Từ
mã DPCM miêu tả vi phân giữa các mẫu không như PCM là từ mã mô tả giá trị
mẫu.
Khái niệm cơ bản về mã DPCM là vi phân dựa trên thực tế là hầu hết các

tín hiệu nguồn chỉ ra mối tương quan giữa mẫu thành công để mã hóa sử dụng
sự dư thừa trong giá trị mẫu cái có tốc độ bit thấp hơn.
Sự thực hiện khái niệm cơ bản trên được dựa trên 1 kỹ thuật mà chúng ta có
thể dự đoán dòng giá trị mẫu cơ bản trên các mẫu trước đó (hay 1 mẫu) và chúng
ta phải mã hóa hiệu số giữa giá trị thực tế của mẫu đó với giá trị dự đoán (hiệu số
giữa các mẫu có thể được hiểu như dự đoán lỗi). Bởi vì nó rất cần thiết để dự đoán
giá trị mẫu DPCM từ mã dự đoán.
Quá trình nén DPCM phụ thuộc vào kỹ thuật dự đoán, kỹ thuật dự đoán
được truyền tải tốt sẽ làm tăng tốc độ nén, ở trường hợp khác thì DPCM sẽ so
sánh độ giãn trung bình để điều hòa mã PCM.
Sơ đồ mã hoá và giải mã DPCM :

11


12

Hình 2.1: Sơ đồ giải mã và mã hoá
2.2 Phương pháp mã hoá ADPCM :
Một cách đơn giản mà có thể được sửa đổi chế độ PCM là chúng ta có thể
mã hóa sự khác biệt giữa hai mẫu kế tiếp hay hơn là mã hóa các mẫu một cách
trực tiếp. Kỹ thuật này được gọi là điều chế xung mã vi sai.
Một đặc tính của các tín hiệu thoại có thể được sử dụng là một giá trị mẫu
có thể được dự đoán từ các giá trị mẫu quá khứ. Ở phía truyền, chúng ta dự
12


13

đoán giá trị của mẫu và tìm thấy sự khác biệt giữa giá trị dự báo và giá trị thực tế

và sau đó gửi các giá trị khác biệt. Kỹ thuật này được gọi là điều chế thích nghi
xung mã vi sai (ADPCM). Sử dụng ADPCM, tín hiệu thoại có thể được mã hoá tại
32kbps mà không cần bất kỳ sự xuống cấp về chất lượng so với PCM.
ITU-T khuyến nghị G.721 quy định các thuật toán mã hóa. Trong ADPCM,
giá trị của mẫu lời thoại không được truyền, nhưng sự khác biệt giữa giá trị dự báo
và các mẫu giá trị thực tế được thì được truyền. Nói chung, các coder ADPCM lấy
dữ liệu mã hoá tiếng nói PCM và chuyển đổi nó thành dữ liệu ADPCM.
Các sơ đồ khối của một bộ mã hóa ADPCM được thể hiện trong Hình 3 (a).
8-bit luật mẫu PCM được đặt vào bộ mã và được chuyển đổi sang dạng tuyến
tính. Mỗi giá trị mẫu được dự đoán bằng cách sử dụng một thuật toán dự đoán, và
sau đó giá trị dự đoán của các mẫu tuyến tính được trừ vào giá trị thực tế để tạo ra
các tín hiệu khác biệt. Lượng tử hóa thích nghi được thực hiện trên giá trị khác
biệt này để tạo ra một mẫu giá trị ADPCM 4-bit, là cái được truyền đi. Thay vì đại
diện cho mỗi mẫu bằng 8 bit, trong ADPCM chỉ có 4 bit được sử dụng. Ở đầu
tiếp nhận, các bộ giải mã, thể hiện trong hình 4.3 (b), có được phiên bản
dequantized (chuyển từ tín hiệu số sang tín hiệu tương tự) của tín hiệu kỹ thuật số.
Giá trị này được thêm vào các giá trị được tạo ra bởi các yếu tố dự báo thích ứng
để tạo ra các lời nói được mã hoá PCM tuyến tính, được điều chỉnh để tái tạo
lại bằng quy tắc M dựa trên phương pháp mã hoá tiếng nói PCM .

13


14

Hìn
h 2.2 : Bộ mã hoá ADPCM

Hình 2.3: Bộ giải mã ADPCM
2.3 Phương pháp mã hoá LPC :

Xét trong khoảng thời gian ngắn (20-50ms) thì tín hiệu tiếng nói gần như
không thay đổi .Các mẫu tín hiệu liền kề có sự tương quan cao . Mẫu tín hiệu tiếng
nói tại thời điểm n kí hiệu là s(n) sẽ coi là tổ hợp tuyến tính của các mẫu p trong
quá khứ :
s(n)=a1.s(n-1) + a2.s(n-2) + a3.s(n-3)+ … + a(p).s(n-p).
14


15

Phương pháp LPC chia làm 2 phần :


Phần phân tích : từ tín hiệu tiếng nói ban đầu, phân tích để tìm ra các tham
số liên quan, các tham số này sẽ được xác định theo mô hình LPC .Sau đó
tham số sẽ được truyền đến phần tổng hợp.



Phần tổng hợp : Nhận các tham số từ phần phân tích và tổng hợp lại tiếng
nói ban đầu .

Bài toán phân tích :
Để minh hoạ cho phương pháp LPC ta sử dụng 1 bài toán :
– Đầu vào là 180 mẫu khi ta lấy mẫu trong khoảng thời gian 22.5ms với

tần số lấy mẫu là 4kHz . Đầu ra sẽ là 1 vector tham số có dạng A = (a1
, a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , G , V/UV , T).
– Trong đó ai là các hệ số bộ lọc LPC .
– G là trọng số kích thích .

– V/UV quyết định hữu thanh hay vô thanh .
– T là chu kì pitch(Chỉ áp dụng với âm hưu thanh).

Xác định tham số G :
Theo chuẩn LPC 10 tham số kích thích G được xác định bởi năng lượng
RMSE( Root mean Square Energy ) theo công thức :
En =( )1/2)
Xác định tham số T và V/UV :

15


16

Trước tiên ta xác định tập tham số giá trị bình sai khác mẫu AMDF(Average
Magnitude Difference Function )


AMDT(i) =

Trong đó :
-

u(t) là mẫu tín hiệu âm thanh thoại ban đầu .
i nằm trong khoảng giá trị [20 - 156] .

Nếu trong tập giá trị AMDT tồn tại 2 giá trị nhỏ nhất sao thì khoảng cách đó
chính là chu kì Pitch ứng với T và khi đó V/UV bằng 1 là giá trị hữu thanh .Còn
không thì ta sẽ có V/UV bằng 0 là âm vô thanh .
Xác định các hệ số LPC :



Giải thuật Levinson-Durbin :

Trong đó :

16


17

Sau khi dùng giải thuật trên ta thu đươc 1 tập các giá trị α . Các hệ số được xác
định : ai = αi,P .
Sau khi thu được các giá trị trên ta sẽ có tập giá trị mã hoá :
Thành phần
Đồng bộ frame
T và V/UV
Tham số G
a1 ,a2, a3 , a4
a5 , a6 , a7 ,a8 ,
a9
a10
Total

17

Số bit mã hoá
1 bit
7 bit
5 bit

5 bit
4 bit
3 bit
2 bit
54 bit


18

LPC Tổng hợp :

Hình 2.4: Sơ đồ tổng hợp tiếng nói
2.4 Phương pháp mã hoá Hỗn Hợp (Lai) :
Mã hoá lai (Hybrid coder) :là tổng hợp giữa hai phương pháp mã hoá dạng
sóng mà mã hoá nguồn , nhằm khắc phục cả 2 nhược điểm trên . Như ta đã nói thì
mã hoá dạng sóng sẽ cho chất lượng tốt không tốt lắm với tốc độ khoảng 16kbps ,
trong khi mã hoá nguồn lại được thực hiện ở một tốc độ bit thấp là 2.4kps nhưng
không thể đưa ra sản phẩm chất lượng tự nhiên . Có rất nhiều dạng mã hoá hỗn
hợp tuy nhiên phương pháp thành công nhất và sử dụng rộng rãi nhất và thành
công nhất đó là phương pháp mã hoá hỗn hợp trong miền tần số dựa trên phân tích
bằng cách tổng hợp AbS(Analysis by Synthesis) .Phương pháp này sử dụng mô
hình dự đoán lọc tuyến tính . Tuy nhiên thay vì mô hình đơn giản gồm có cả hai
18


19

trạng thái là hữu thanh và vô thanh(voiced / unvoiced) . Để tìm đầu vào cần thiết
cho bộ lọc , thì tín hiệu kích thích được chọn sao cho tín hiệu được khôi phục gần
giống nhất với tín hiệu ban đầu .


Hình 2.5: Sơ đồ mã hoá lai

19


20

CHƯƠNG 3: TÌM HIỂU CÁC CHUẨN NÉN ITU
3.1 Tìm hiểu các chuẩn nén ITU.
Nén tín hiệu thoại: trong mạng điện thoại thông thường tín hiệu thoại được
mã hóa PCM theo luật A hoặc Muy với tốc độ 64Kbps. Với cách mã hoác này cho
phép khôi phục một cách tương đối trung thực các âm thanh trong giải tần tiếng
nói. Tuy nhiên trong một số ứng dụng đặc biệt yêu cầu truyền âm thanh với tốc độ
thấp hơn ví dụ như truyền tín hiệu thoại trên mạng internet. Từ đã xuất hiện một số
kỹ thuật mã hóa và nén tín hiệu tiếng nói xuống tốc độ thấp cụ thể là các chuẩn
G723..1, G729, G729A...
Hiệp hội viễn thông quốc tế ITU-T (International Telecommunication Union
- Telecommunication) đã đưa ra các chuẩn nén âm thanh mới nhất như G728,
G729, G723.1 … dành cho băng thông thoại thấp với tần số 300Hz đến 3.4 kHz.
Tất cả các chuẩn này đều dựa trên chuẩn mã hóa CELP (Code – Excited Linear
Prediction). Chuẩn nén âm thanh đã được tiêu chuẩn hóa trong mã ANSI-C với 2
lý do chính:
-

Độ tin cậy khi tương tác giữa các thiết bị.
Giá thành thấp và những tiện ích thực thi dựa trên 16 bit fixpoint DSP.

Một vài chuẩn nén âm thanh thoại ITU như:
 G.711 - Điều biến mã Pulse các tần số thoại (PCM) trong đó tín hiệu


audio 3.1 kHz analogue được mã thành các luồng 48, 56 hoặc 64 kbps
stream. Chỉ được dùng khi không có thể dùng được chuẩn nào khác.
Một giá trị được đề nghị củ tần số lấy mẫu là 8000 sample/giây. Độ sai
sót thường là +/- 50 phần triệu.
20


21
 G.722 - Mã hóa audio 7 kHz thành các luồng 48, 56 hoặc 64 kbps. Chất

lượng cao nhưng chiếm nhiều băng thông.
 G.722.1 - Mã hóa audio 7 kHz ở 24 và 32 kbps với tỉ lệ mất khung thấp.
 G.722.1 Annex C - Chuẩn ITU có nguồn gốc từ Siren 14 của Polycom mã hóa audio 14 kHz.
 G.722.2 - Mã hóa lời nói ở khoảng 16 kbps sử dụng Adaptive MultiRate Wideband, AMR-WB. Bao gồm 5 chế độ: 6.60, 8.85, 12.65, 15.85
và 23.85 kbps.
 G.723.1 - Mã hóa 3.4 kHz cho viễn thông ở 5.3 kbps và 6.4 kbps. Đây là
một bộ nén có thể dùng để nén tín hiệu thoại hoặc những tín hiệu âm
thanh khác của dịch vụ đa phương tiện ở tốc độ bits rất thấp. Hai tốc độ
trên có thể chuyển đổi qua lại tại bất kỳ khung truyền thoại 30 ms nào.
Tốc độ 6.3 kbit/s cho chất lượng âm thanh tốt hơn.
Thời gian trễ tổng cộng lầ 37.5 ms.
 G.728 - Mã hóa 3.4 kHz Low Delay Code Excited Linear Prediction
(LD-CELP) trong đó âm thanh 3.4 kHz analogue được mã thành luồng
16 kbps. Chuẩn này cung cấp chất lượng tốt ở tốc độ thấp.
 G.729 A/B - Mã hóa 3.4 kHz với âm thanh gần bằng chất lượng điện
thoại cố ddịnh, âm thanh được mã thành luồng 8 kbps sử dụng phương
pháp AS-CELP. Phụ lục A là mã giảm hóa bớt độ phức tạp, phụ lục B
hỗ trợ triệt lặng và cung cấp âm thanh nền dễ chịu. Ngoài ra mỗi nhà sản
xuất còn có các chuẩn mã hoá riêng cho chất lượng âm thanh rất cao nếu

sử dụng thiết bị đồng nhất của một hãng. Ví dụ: các chuẩn PT716plus,
PT724, Siren14, Siren22 của Polycom.

21


22

Hình 3.1: So sánh các chuẩn nén âm thanh thoại
3.2 Giải thích tại sao các chuẩn này thường được dùng trong các ứng dụng
VOIP?
-

Các ứng dụng VOIP cần truyền âm thanh với tốc độ thấp.
Cải thiện độ tin cậy và chất lượng âm thanh tốt hơn.

Nén tín hiệu thoại: trong mạng điện thoại thông thường tín hiệu thoại được
mã hóa PCM theo luật A hoặc Muy với tốc độ 64Kbps. Với cách mã hoác này cho
phép khôi phục một cách tương đối trung thực các âm thanh trong giải tần tiếng
nói. Tuy nhiên trong một số ứng dụng đặc biệt yêu cầu truyền âm thanh với tốc độ
thấp hơn ví dụ như truyền tín hiệu thoại trên mạng internet. Từ đã xuất hiện một số
kỹ thuật mã hóa và nén tín hiệu tiếng nói xuống tốc độ thấp cụ thể là các chuẩn
G723..1 G729 G729A.

22


23

CHƯƠNG 4: XÂY DỰNG THỬ NGHIỆM MỘT BỘ CODEC THEO

CHUẨN ITU
4.1 Phần mềm sử dụng :
Sử dung phần mềm mã nguồn mở Matlab . Matlab là phần mềm cung cấp
môi trường tính toán số và lập trình, do công ty MathWorks thiết kế. MATLAB
cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực
hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình
máy tính viết trên nhiều ngôn ngữ lập trình khác.
Với thư viện Toolbox, MATLAB cho phép mô phỏng tính toán, thực nghiệm nhiều
mô hình trong thực tế và kỹ thuật.
4.2 Kịch bản thử nghiệm :
Xây dựng bộ CODEC theo chuẩn G723 .Thực hiện mã hoá và giải mã . Sau
đó đánh giá hiệu năng bằng cách đo chỉ số MSE và tỉ số nén .
4.3 Thử nghiệm với matlab :
ENCODE
function adpcm_y = adpcm_encoder(raw_y)
[raw_y, Fs, nbits] = wavread('\file_demo.wav);
IndexTable = [-1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1,
-1, 2, 4, 6, 8];
StepSizeTable = [7, 8, 9, 10, 11, 12, 13, 14, 16, 17,
19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66,
23


24

73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209,
230, 253, 279, 307, 337, 371, 408, 449, 494, 544, 598,
658, 724, 796, 876, 963, 1060, 1166, 1282, 1411, 1552,
1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, 3660,
4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630,

9493, 10442, 11487, 12635, 13899, 15289, 16818, 18500,
20350, 22385, 24623, 27086, 29794, 32767];
prevsample = 0;
previndex = 1;
Ns = length(raw_y);
n = 1;
raw_y = 32767 * raw_y;

% 16-bit operation

while (n <= Ns)
predsample = prevsample;
index = previndex;
step = StepSizeTable(index);
diff = raw_y(n) - predsample;
if (diff >= 0)
code = 0;
else
code = 8;
24


25

diff = -diff;
end
tempstep = step;
if (diff >= tempstep)
code = bitor(code, 4);
diff = diff - tempstep;

end
tempstep = bitshift(tempstep, -1);
if (diff >= tempstep)
code = bitor(code, 2);
diff = diff - tempstep;
end
tempstep = bitshift(tempstep, -1);
if (diff >= tempstep)
code = bitor(code, 1);
end
diffq = bitshift(step, -3);
if (bitand(code, 4))
diffq = diffq + step;
25


×