Tải bản đầy đủ (.pdf) (85 trang)

(Luận văn thạc sĩ) thực thi thời gian thực mô hình thuật toán MELP trên bộ xử lý tín hiệu số TMS320C5509

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 (1.66 MB, 85 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

PHẠM VĂN HẬU

THỰC THI THỜI GIAN THỰC MƠ HÌNH THUẬT
TỐN MELP TRÊN BỘ XỬ LÝ TÍN HIỆU SỐ
TMS320C5509

LUẬN VĂN THẠC SĨ CÔNG NGHỆ ĐIỂN TỬ - VIỄN THÔNG

Hà Nội - 2014


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

PHẠM VĂN HẬU

THỰC THI THỜI GIAN THỰC MƠ HÌNH THUẬT
TỐN MELP TRÊN BỘ XỬ LÝ TÍN HIỆU SỐ
TMS320C5509

Ngành: Cơng nghệ Điện tử Viễn thông
Chuyên ngành: Kỹ thuật điện tử
Mã số: 60 52 02 03

LUẬN VĂN THẠC SĨ CÔNG NGHỆ ĐIỆN TỬ VIỄN THÔNG
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. TRẦN ĐỨC TÂN

Hà Nội - 2014




LỜI CAM ĐOAN
Tơi xin cam đoan đây là cơng trình
nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là
trung thực và chưa từng được công bố
trong bất kỳ cơng trình nào khác.

Tác giả

Phạm Văn Hậu


MỤC LỤC



LỜI CAM ĐOAN
MỤC LỤC
MỤC LỤC BẢNG BIỂU
MỤC LỤC HÌNH VẼ
DANH MỤC VIẾT TẮT 
MỞ ĐẦU

....................................................................................................... 1 

Chương 1 - 

TỔNG QUAN NÉN THOẠI ...................................................... 4 


1.1 

Cấu trúc của hệ thống nén thoại .................................................................. 4 

1.2 

Các thuộc tính lý tưởng của nén thoại ........................................................ 6 

1.3 

Trễ nén ........................................................................................................ 7 

1.4 

Ứng dụng của các mơ hình nén thoại.......................................................... 9 

Chương 2 - 

MƠ HÌNH NÉN THOẠI MELP ............................................. 10 

2.1 

Mơ hình tạo tiếng nói MELP .................................................................... 10 

2.2 

Biên độ Fourier (Fourier Manitudes) ........................................................ 11 

2.3 


Bộ lọc định hình ........................................................................................ 15 

2.4 

Pitch period và ước lượng voice strength ................................................. 17 

2.5 

Hoạt động mã hóa ..................................................................................... 24 

2.6 

Hoạt động giải mã ..................................................................................... 27 

2.7 

Kết chương ................................................................................................ 30 

Chương 3 - 

CHIP XỬ LÝ TÍN HIỆU SỐ TMS320C55xx ........................ 32 

3.1 

Giới thiệu................................................................................................... 32 

3.2 

Kiến trúc họ TMS32C55xx ....................................................................... 32 


3.3 

Công cụ phát triển ..................................................................................... 37 

3.4 

Các chế độ địa chỉ TMS320C55x ............................................................. 42 

3.5 

Đường ống và cơ chế song song ............................................................... 44 

3.6 

Tập lệnh TMS320C55x ............................................................................. 47 

3.7 

Lập trình hỗn hợp C và Assembly ............................................................ 48 


Chương 4 - 

CÀI ĐẶT VÀ THỬ NGHIỆM ................................................. 51 

4.1 

Cài đặt MELP thời gian thực trên C5509 và C5510. ................................ 51 


4.2 

Thực hiện cài đặt ....................................................................................... 52 

4.3 

Đánh giá kết quả........................................................................................ 59 

KẾT LUẬN ..................................................................................................... 63 
Kết quả đạt được của luận văn ............................................................................ 63 
Định hướng nghiên cứu tiếp theo ........................................................................ 63 
TÀI LIỆU THAM KHẢO ................................................................................ 64 
PHỤ LỤC

........................................................................................................ i 

A. 

Mơ hình mã hóa dự đốn tuyến tính LPC .................................................... i 

B. 

Thuật tốn Levinson-Durbin ...................................................................... iii 

C. 

Lượng tử hóa véc-tơ nhiều lớp (MSVQ) .................................................. vii 


MỤC LỤC BẢNG BIỂU

Bảng 2-1: Sơ đồ cấp phát bit của mã hóa MELP ................................................ 27 
Bảng 3-1: Ví dụ về mã C và mã hợp ngữ được trình biên dịch C55x sinh ra .... 37 
Bảng 3-2: Ví dụ về tệp lệnh liên kết sử dụng cho bộ mô phỏng C55x ............... 39 
Bảng 3-3: Gán các loại tham số tới thanh ghi ..................................................... 49 
Bảng 3-4: Sử dụng và duy trì thanh ghi .............................................................. 50 
Bảng 4-1: Một số tệp chính của dự án ................................................................ 52 
Bảng 4-2: Bảng cho điểm MOS .......................................................................... 60 
Bảng 4-3: Mẫu âm thanh dùng để đánh giá ........................................................ 61 
Bảng 4-4: Đánh giá PESQ của cài đặt C55x MELP ........................................... 61 
Bảng A-1: Bảng so sánh MC đối với các độ phân giải thường gặp...................... x 

MỤC LỤC HÌNH VẼ
Hình 1-1: Mơ hình hệ thống nén thoại ................................................................ 4
Hình 1-2: Mơ hình nén thoại ............................................................................... 5
Hình 1-3: Mơ hình xác định trễ ........................................................................... 7
Hình 1-4: Mơ tả các thành phần của trễ nén ....................................................... 8
Hình 1-5: Đồ thị mẫu truyền bit ở hai chế độ liên tục (trên) và gói (dưới) ........ 8
Hình 2-1: Mơ hình tạo tiếng nói ........................................................................ 10
Hình 2-2: Mơ phỏng xử lý tín hiệu với bộ lọc tạo xung ................................... 12
Hình 2-3: Mơ hình tính tốn và lượng tử hóa biên độ Fourier.......................... 12
Hình 2-4: Q trình tạo kích thích xung ........................................................... 14
Hình 2-5: Sơ đồ bộ lọc tạo hình xung ............................................................... 16
Hình 2-6: Vị trí của các cửa sổ khác nhau tương ứng với khung tín hiệu ........ 18
Hình 2-7: Mơ phỏng ước lượng Pitch period bước 1 ........................................ 19
Hình 2-8: Mơ phỏng ước lượng voice strength băng thơng .............................. 20
Hình 2-9: Một số tín hiệu và giá trị đỉnh của nó ............................................... 22
Hình 2-10: Đỉnh của chuỗi xung khơng gian đồng nhất ..................................... 22
Hình 2-11: Sai số dự đốn có được từ một sóng âm (bên trái) và đo đạc đỉnh áp
dụng cho sai số dự đốn (bên phải) .................................................. 23
Hình 2-12: Mơ hình mã hóa MELP..................................................................... 24



Hình 2-13: Mơ hình giải mã MELP .................................................................... 28
Hình 2-14: Đáp ứng xung (trái) và đáp ứng biên độ (phải) của bộ lọc phân tán
xung ................................................................................................... 30
Hình 3-1: Sơ đồ khối của CPU TMS320C55x .................................................. 33
Hình 3-2: Sơ đồ đơn giản hóa của IU................................................................ 34
Hình 3-3: Mơ hình đơn giản hóa của PU .......................................................... 34
Hình 3-4: Bộ điều khiển luồng dữ liệu địa chỉ C55x ........................................ 35
Hình 3-5: Mơ hình cấu trúc bộ tính tốn dữ liệu ............................................... 36
Hình 3-6: Công cụ và Luồng phát triển phần mềm TMS320C55X .................. 38
Hình 3-7: Phát triển phần mềm TMS320C55X với CCS.................................. 40
Hình 3-8: Ví dụ về lệnh hợp ngữ của TMS320C55X ....................................... 41
Hình 3-9: Sơ đồ hoạt động của đường ống C55x .............................................. 46
Hình 4-1: Mơ hình hệ thống cho phát triển mơ hình MELP ............................. 51
Hình 4-2: Mơ hình triển khai thời gian thực trực tuyến .................................... 52
Hình 4-3: Mơ hình tổng quát của một phương pháp đo phổ biến ..................... 60
Hình 4-4: Tệp Vn_M gốc và qua xử lý của C55x MELP ................................. 62
Hình 4-5: Tệp Vn_F gốc (và qua xử lý của C55x MELP ................................. 62


DANH MỤC VIẾT TẮT
Từ viết tắt

Tiếng Anh đầy đủ

Nghĩa tiếng Việt

2-D


2-Demensional

Hai chiều

AbS

Analysis-by-synthesis

Phân tích bằng cách tổng hợp

ACELP

Algebraic
code-excited
prediction
Absolute category rating

ACR

linear Dự đốn tuyến tính mã kích thích đại số
Tỉ lệ phân loại tuyệt đối

APCM

Adaptive differential pulse code Điều chế mã xung sai phân thích nghi
modulation
Adaptive pulse code modulation
Điều chế mã xung thích nghi

AR


Tự hồi quy

Tự hồi quy

ARMA

Tự hồi quy moving average

Trung bình dịch chuyển tự hồi quy

CCR

Comparison category rating

Tỉ lệ phân loại so sánh

CDMA

Code division multiple access

Đa truy cập chia theo mã

CELP

Code-excited linear prediction

Dự đốn tuyến tính mã kích thích

CS-ACELP


Conjugate structure algebraic code- Dự đốn tuyến tính mã kích thích đại số
excited linear prediction
cấu trúc liên hợp

DC

Direct current

Dòng một chiều

DCR

Degradation category rating

Tỉ lệ phân loại suy giảm

DFT

Discrete Fourier transform

Biến đổi Fourier rời rạc

DPCM

Differential pulse code modulation

Điều chế mã xung sai phân

DSP


Digital signal processing/processor

Xử lý tín hiệu số

DTAD

Digital telephone answering device

Thiết bị trả lời thoại số

DTFT

Discrete time Fourier transform

Biến đổi Fourier thời gian rời rạc

DTMF

Dual-tone multifrequency

Âm kép đa tần

EFR

Enhanced full rate

Tăng cường đầy đủ tỉ lệ

FFT


Fast Fourier transform

Biến đổi Fourier nhanh

FIR

Finite impulse response

Đáp ứng xung hữu hạn

FM

Frequency modulation

Điều tần

FS

Federal Standard

Chuẩn liên bang

GLA

Generalized Lloyd algorithm

Thuật toán Generalized Lloyd

IDFT


Inverse discrete Fourier transform

Biến đổi Fourier rời rạc nghịch đảo

IIR

Infinite impulse response

Đáp ứng xung vô hạn

LD-CELP

Low-delay
prediction

LMS

Least mean square

ADPCM

code-excited

linear Dự đốn tuyến tính mã kích thích trễ
thấp
Bình phương trung bình tối thiểu


LP


Linear prediction

Dự đốn tuyến tính

LPC

Linear prediction coding/coefficient Mã hóa dự đốn tuyến tính

MA

Moving average

Trung bình dịch chuyển

MNB

Measuring normalizing block

Khối chuẩn hóa đo đạc

MP–MLQ
MSE

Multipulse–maximum
quantization
Mean square error

Sai số bình phương trung bình


MSVQ

Multistage vector quantization

Lượng tử hóa vector đa lớp

PCM

Pulse code modulation

Điều chế mã xung

PESQ
PSQM

Perceptual evaluation of speech Đánh giá cảm nhận về chất lượng thoại
quality
Perceptual speech quality measure
Đo đạc chất lượng thoại

PVQ

Predictive vector quantization

QCELP

Qualcomm
prediction

RC


Reflection coefficient

Hệ số phản xạ

RV

Random variable

Biến ngẫu nhiên

SD

Spectral distortion

Sự biến dạng phổ

SNR

Signal to noise ratio

Tỉ lệ tín hiệu trên nhiễu

SPG

Segmental prediction gain

SSE

Sum of squared error


Tổng sai số bình phương

SSNR

Segmental signal to noise ratio

Tỉ lệ tính hiệu phân đoạn trên nhiễu

TDMA

Time division multiple access

Đa truy cập phân chia thời gian

TI

Texas Instruments

VoIP

Voice over internet protocol

Truyền âm qua giao thức internet

VQ

Vector quantization

Lượng tử hóa véc-tơ


VSELP

Vector
sum
prediction

likelihood Chuẩn hóa dạng tối đại đa xung

code-excited

excited

Lượng tử hóa vec-tơ dự đốn
linear Dự đốn tuyến tính kích thích mã
Qualcomm

linear Dự đốn tuyến tính kích thích tổng vectơ


1

MỞ ĐẦU
1.

Lý do chọn đề tài

Hiện nay, nén dữ liệu âm thanh nói chung và nén dữ liệu tiếng nói nói
riêng đã và đang được các nhà khoa học, cơng nghệ trên thế giới quan tâm
nghiên cứu, các kết quả đạt được đã được ứng dụng nhiều trong lĩnh vực truyền

thơng và giải trí. Đặc biệt, trong điều kiện cơng nghệ thông tin, truyền thông
đang phát triển rất mạnh như hiện nay thì vấn đề xử lý âm thanh, tiếng nói càng
được nghiên cứu và ứng dụng rộng rãi.
Đã có rất nhiều thuật tốn và mơ hình xử lý tiếng nói được nghiên cứu và
sử dụng, trong đó, mơ hình dự đốn tuyến tính (LPC) là một phần khơng thể
thiếu của hầu hết tất cả các giải thuật mã hóa thoại hiện đại ngày nay. Ý tưởng
cơ bản là một mẫu thoại có thể được xấp xỉ bằng một kết hợp tuyến tính của các
mẫu trong quá khứ. Trong một khung tín hiệu, các trọng số dùng để tính tốn kết
hợp tuyến tính được tìm bằng cách tối thiểu hóa bình phương trung bình sai số
dự đốn; các trọng số tổng hợp, hoặc các hệ số dự đốn tuyến tính được dùng
đại diện cho một khung cụ thể. Mơ hình MELP (dự đốn tuyến tính kích thích
hỗn hợp) được thiết kế để vượt qua một số hạn chế của mô hình LPC, sử dụng
một mơ hình tạo tiếng nói phức tạp hơn, với các thông số bổ xung để cải thiện
độ chính xác. MELP bắt đầu được phát triển bởi McCree từ năm 1995, tích hợp
nhiều nghiên cứu tiến bộ vào thời điểm đó, bao gồm cả lượng tử hóa vec-tơ,
tổng hợp tiếng nói và cải tiến từ mơ hình LPC cơ bản.
Hiệu quả của MELP đã được chứng minh thực tế khi được NATO và Mỹ
chấp nhận và sử dụng trong nhiều thiết bị quân sự. Tuy nhiên ở Việt Nam thì
MELP chưa được chú ý nghiên cứu, phát triển vì tính ứng dụng hẹp: chủ yếu
trong lĩnh vực quân sự. Xuất phát từ những lý do trên mà tôi đã chọn đề tài:
“Thực thi thời gian thực mô hình thuật tốn MELP trên bộ xử lý tín hiệu số
TMS320C5509”.
2.

Mục tiêu và nhiệm vụ nghiên cứu

Mục tiêu của luận văn này là triển khai trong thời gian thực thuật tốn nén
thoại MELP trên bộ xử lý tín hiệu số TMS320C55xx, với các nội dung như sau:
- Phân tích tổng quan về nén thoại.
- Mơ hình nén thoại MELP.

- Phân tích, nghiên cứu bộ xử lý tín hiệu số TMS320C55X .


2

3.

- Phân tích, xây dựng, triển khai thực thi thời gian thực mơ hình MELP
trên bộ xử lý tín hiệu số TMS320C5509, đề xuất cải tiến MELP và
đánh giá kết quả thử nghiệm.
Đối tượng và phạm vi nghiên cứu

+ Đối tượng nghiên cứu
- Tìm hiểu tổng quan về nén thoại và thuật tốn MELP,
- Nghiên cứu bộ xử lý tín hiệu số TMS320C55xx.
+ Phạm vi nghiên cứu

4.

- Các vấn đề về nén dữ liệu tiếng nói.
- Ứng dụng thuật tốn MELP trên bộ xử lý tín hiệu số TMS320C5509
Phương pháp nghiên cứu

+ Phương pháp nghiên cứu lý thuyết
- Nghiên cứu tài liệu, ngôn ngữ và công nghệ liên quan.
- Tổng hợp các tài liệu.
- Phân tích và thiết kế hệ thống.
+ Phương pháp nghiên cứu thực nghiệm

5.


- Thiết kế và triển khai thuật toán trên chip TMS320C5509
- Đánh giá kết quả đạt được, đề xuất phương án mở rộng kết quả nghiên
cứu.
Kết quả dự kiến

Phân tích, thiết kế hệ thống và triển khai hồn chỉnh thuật tốn MELP trên
chip TMS320C5509.
6.

Ý nghĩa khoa học và thực tiễn của luận văn

+ Về mặt lý thuyết
- Tìm hiểu tổng quan về nén thoại và thuật toán MELP.
- Đề xuất khả năng triển khai thuật tốn MELP trên bộ xử lý tín hiệu số
+ Về mặt thực tiễn

7.

- Ứng dụng các công cụ, ngôn ngữ hỗ trợ để triển khai, cài đặt thuật toán
MELP trên bộ xử lý tín hiệu số TMS320C5509.
- Kết quả của luận văn có thể áp dụng cho ứng dụng thực tiễn, đặc biệt
trong lĩnh vực quân sự.
Đặt tên đề tài

“THỰC THI THỜI GIAN THỰC MƠ HÌNH THUẬT TỐN MELP
TRÊN BỘ XỬ LÝ TÍN HIỆU SỐ TMS320C5509”


3

8.

Bố cục luận văn
Nội dung chính của luận văn được chia thành 4 chương như sau:
Chương 1: Tổng quan về nén thoại
Chương 2: Mơ hình nén thoại MELP
Chương 3: Chip xử lý tín hiệu số TMS320C55x
Chương 4: Cài đặt và thử nghiệm
Phụ Lục: Mơ hình LPC và Lượng tử hóa véc-tơ nhiều lớp


4

Chương 1 -

TỔNG QUAN NÉN THOẠI

[4] Nén thoại hay mã thoại, là một q trình phân tích và sau đó có thể tái
tạo lại tín hiệu tiếng nói u cầu: sử dụng càng ít bít càng tốt mà khơng làm
giảm chất lượng tiếng nói. Do sự bùng nổ của viễn thông, nên nén thoại ngày
càng được nghiên cứu và ứng dụng rộng rãi. Kỹ thuật vi điện tử và các bộ xử lý
khả trình giá rẻ cũng góp phần thúc đẩy và trợ giúp phát triển, chuyển giao công
nghệ nhanh chóng từ nghiên cứu đến thực tiễn. Nén thoại được thực hiện bằng
nhiều bước và được đặc tả bằng một thuật toán.Thuật toán là một tập các lệnh,
cung cấp các bước tính tốn cần thiết để thực hiện cơng việc cụ thể. Máy tính
hoặc bộ vi xử lý có thể thực hiện các lệnh này để hoàn thành nhiệm vụ mã hóa,
giải mã. Các lệnh cũng có thể chuyển đổi sang cấu trúc mạch số, thực hiện các
tính tốn trực tiếp trên phần cứng: FPGA, CPLD…
1.1 Cấu trúc của hệ thống nén thoại


Hình 1-1:

Mơ hình hệ thống nén thoại

[4] Hình 1-1 thể hiện mơ hình của một hệ thống nén thoại. Tín hiệu thoại
tương tự liên tục theo thời gian từ nguồn phát sẽ được đi qua một bộ lọc tiêu
chuẩn (khử nhiễu), lấy mẫu (biến đổi thời gian rời rạc), và chuyển đổi tương tựsố (lượng tử hóa chuẩn). Đầu ra sẽ là tín hiệu thoại thời gian rời rạc với các giá
trị mẫu cũng được rời rạc hóa, tín hiệu này được gọi là thoại số.
Hầu hết các hệ thống nén thoại đều được thiết kế để hỗ trợ các ứng dụng
viễn thông, với tần số giới hạn từ 300 đến 3400 Hz. Theo định lý Nyquist, tần số
lấy mẫu phải gấp ít nhất là 2 lần băng thơng của tín hiệu. Giá trị tần số khoảng
8kHz thường được chọn làm tần số lấy mẫu chuẩn cho tín hiệu thoại. Để chuyển


5
đổi mẫu tương tự sang tín hiệu số, ta sử dụng lượng tử hóa chuẩn và duy trì chất
lượng thoại nhiều hơn 8 bits/mẫu. Việc sử dụng 16 bits/mẫu sẽ cung cấp chất
lượng thoại cao hơn. Thông thường, chúng ta sẽ sử dụng các tham số cho tín
hiệu thoại số như sau:
Tần số lấy mẫu:

8 kHz

Số lượng bit trên mẫu:

16

Khi đó, bit-rate = 8 * 16 = 128 kbps.
Giá trị bit-rate này được gọi là bit-rate đầu vào, chính là giá trị mà bộ mã
hóa nguồn cố gắng giảm xuống. Đầu ra của mã hóa nguồn sẽ biểu diễn tín hiệu

thoại số đã mã hóa có bit-rate thấp hơn đầu vào càng nhiều càng tốt.
Dữ liệu thoại số mã hóa sẽ được xử lý tiếp qua mã hóa kênh, cung cấp khả
năng chống sai cho dòng bit trước khi truyền lên kênh truyền tải (bị ảnh hưởng
từ rất nhiều nguồn nhiễu). Trong hình 1-1, bộ mã hóa nguồn và mã hóa kênh
được tách biệt với nhau nhưng ta cũng có thể phối hợp 2 quá trình này trong một
bước.
Quá trình giải mã kênh sẽ xử lý dữ liệu đã được chống sai số để lấy lại dữ
liệu đã mã hóa, và truyền sang bộ giải mã nguồn để tạo ra tín hiệu thoại số đầu
ra với bit-rate ban đầu. Tín hiệu thoại số đầu ra được chuyển đổi sang dạng tín
hiệu tương tự thơng qua bộ chuyển đổi số-tương tự.
Tín hiệu vào
(128kbps)

Mã hóa

Giải mã
Dịng bit đã mã hóa
(<128kbps)

Hình 1-2:

Tín hiệu ra
(128kbps)

Mơ hình nén thoại

Có thể rút gọn q trình mã hóa nguồn và giải mã nguồn như hình 1-2.
Tín hiệu đầu vào (thời gian rời rạc, bit-rate 128 kbps) được đưa vào bộ mã hóa
để tạo ra dịng bit đã mã hóa, hay dữ liệu thoại nén. Bit-rate của dịng bit này
thường thấp hơn tín hiệu đầu vào. Bộ giải mã sẽ nhận dịng bit đã mã hóa làm

đầu vào và khơi phục thành tín hiệu đầu ra, là tín hiệu thời gian rời rạc có cùng
bit-rate của tín hiệu thoại đầu vào ban đầu.
Mơ hình mã hóa/giải mã trên hình 1-2 được gọi là mơ hình nén thoại, với
tín hiệu thoại đầu vào được mã hóa tạo ra dịng bit có bit-rate thấp. Dịng bit này
lại được truyền đi và làm đầu vào cho bộ giải mã, tạo thành xấp xỉ tín hiệu gốc
ban đầu.


6
1.2 Các thuộc tính lý tưởng của nén thoại
[4] Mục tiêu chủ yếu của nén thoại, hoặc là tối đa hóa chất lượng cảm
nhận ở một bit-rate nhất đinh, hoặc là tối thiểu hóa bit-rate cho một chất lượng
cảm nhận nhất định. Bit-rate phù hợp để tiếng nói có thể được truyền tải hoặc
lưu trữ, sẽ phụ thuộc vào giá của việc truyền tải hoặc bộ nhớ, giá của việc mã
hóa (nén) tín hiệu thoại số, và u cầu chất lượng thoại. Trong hầu hết các mơ
hình nén thoại, tín hiệu được tái tạo sẽ sai khác so với tín hiệu ban đầu. Bit-rate
được giảm bằng cách biểu diễn lại tín hiệu thoại với độ chính xác cũng bị giảm
và bằng cách loại bỏ các dư thừa từ tín hiệu, kết quả tạo thành một mơ hình nén
lossy. Các tính chất lý tưởng của một mơ hình nén thoại bao gồm:
1.2.1 Bit-rate thấp

Bit-rate của dịng bit mã hóa càng thấp thì ta càng cần ít băng thơng hơn
cho việc truyền tải, hệ thống sẽ hiệu quả hơn. Yêu cầu này là xung đột với các
tính chất tốt khác của hệ thống, như: chất lượng thoại. Trong thực tiễn, ta phải
trả giá để cân bằng các tính chất tùy theo yêu cầu của ứng dụng cụ thể.
1.2.2 Chất lượng thoại cao

Tiếng nói được giải mã cần phải có chất lượng chấp nhận được cho ứng
dụng mục tiêu. Có rất nhiều khía cạnh trong sự cảm nhận chất lượng tiếng nói,
bao gồm tính dễ hiểu, tính tự nhiên, tính dễ gần, và nhận dạng người nói.

1.2.3 Thích ứng với ngơn ngữ

Hệ thống nén thoại cần phải được thiết kế đủ bao quát được đối với người
nói khác nhau (người lớn/trẻ em, nam/nữ) và các ngôn ngữ khác nhau. Đây
không phải làm một nhiệm vụ đơn giản, bởi vì mỗi tín hiệu âm thanh đều có các
đặc trưng riêng.
1.2.4 Khả năng chịu đựng lỗi kênh

Điều này rất quan trọng trong truyền thơng tín hiệu số, khi mà lỗi kênh có
ảnh hưởng khơng nhỏ đến chất lượng thoại.
1.2.5 Hiệu suất cao đối với tín hiệu không tiếng (unvoiced)

Trong hệ thống viễn thông thông thường, nhiều tín hiệu khác sẽ xuất hiện
bên cạnh tiếng nói. Các tín hiệu âm như sóng âm đa tần (DTMF) trong tiếng
quay số, tiếng nhạc.. thường xuyên xảy ra. Cho dù các hệ thống nén thoại bitrate cao cũng không thể tái tạo lại mọi âm thanh một cách trung thực, ta khơng
nên tạo ra các tín hiệu thay thế có thể gây khó chịu cho người nghe.


7
1.2.6 Kích thước nhớ nhỏ và độ phức tạp tính toán thấp

Để triển khai các hệ thống nén thoại vào thực tế, giá thành cài đặt phải
thấp, bao gồm bộ nhớ cần thiết và độ phức tạp tính tốn phải thấp.
1.2.7 Trễ nén thấp

Trong q trình mã hóa và giải mã tiếng nói, sẽ xuất hiện các trễ, nó là
thời gian trễ giữa tiếng nói đầu vào của mã hóa với tiếng nói đầu ra của giải mã.
Mức trễ quá cao sẽ khó được chấp nhận trong hệ thống đàm thoại thời gian thực.
1.3 Trễ nén
Tín

hiệu
vào

Mã hóa

Dịng bit

Giải mã

Hình 1-3:

Tiếng nói
tổng hợp

Đo
thời
gian

Trễ

Mơ hình xác định trễ

[4] Trễ có được theo mơ hình xác định trên gọi là trễ nén, hoặc trễ nén
một chiều, nó được tính bởi thời gian tiêu hao từ thời điểm khi một mẫu tiếng
nói ở đầu vào mã hóa cho đến thời điểm mẫu đó xuất hiện ở đầu ra giải mã.
Cách xác định này không tính tới các yếu tố khác mà thuật tốn nén thoại khơng
kiểm sốt được như khoảng cách truyền thơng hoặc trang thiết bị… Dựa vào
định nghĩa này, trễ nén sẽ có 4 thành phần chủ yếu sau:
1.3.1 Trễ bộ đệm mã hóa


Nhiều bộ mã hóa tiếng nói cần phải thu thập một số lượng mẫu nhất định
trước khi xử lý. Chẳng hạn, các mơ hình nén dựa trên dự đốn tuyến tính LP đều
cần 1 khung mẫu có phạm vi từ 160 đến 240 mẫu, hoặc 20 đến 30 ms, trước khi
xử lý q trình mã hóa thực sự.
1.3.2 Trễ xử lý mã hóa

Q trình mã hóa tiêu tốn khá nhiều thời gian để xử lý dữ liệu trong bộ
đệm và xây dựng dịng bit. Trễ này có thể được giảm bớt bằng cách tăng cường
sức mạnh tính tốn của phần cứng và sử dụng các thuật toán phần mềm hiệu
quả. Trễ xử lý cần phải nhỏ hơn trễ bộ đệm, nếu khơng q trình mã hóa sẽ
khơng theo kịp với dữ liệu đưa vào ở khung kế tiếp.


8
Khung
đầu vào
bộ đệm

Truyền
tải bit

Mã hóa

Giải mã

Khung
đầu ra

Trễ mã hóa


Trễ bộ đệm
mã hóa

Trễ xử lý mã
hóa

Hình 1-4:

Trễ truyền tải /
Trễ bộ đệm
giải mã

Thời gian

Trễ xử lý
giải mã

Mô tả các thành phần của trễ nén

1.3.3 Trễ truyền tải

Khi bộ mã hóa hồn thành công việc xử lý một khung dữ liệu đầu vào,
dịng bít đã được nén sẽ được truyền tới bộ giải mã. Có rất nhiều chế độ truyền
khác nhau và có thể được lựa chọn tùy theo yêu cầu của từng hệ thống. Ở đây, ta
chỉ xem xét hai chế độ truyền: liên tục và theo gói.
Trễ bộ đệm mã hóa
Số lượng bit

Thời gian


Thời gian

Hình 1-5:

Đồ thị mẫu truyền bit ở hai chế độ liên tục (trên) và gói (dưới)

Trong chế độ liên tục, dòng bit sẽ được truyền đồng bộ ở một tốc độ cố
định, là số bit tương ứng trên một khung chia cho độ dài của khung. Ở chế độ
này, trễ đường truyền bằng với trễ bộ đệm mã hóa: các bit của khung sẽ được
truyền đầy đủ và ngay khi các bit của khung tiếp theo dồn đến. Chế độ này chủ
yếu được dùng cho các hệ thống giao tiếp số truyền thống, ví dụ như mạng điện
thoại hữu tuyến.


9
Trong chế độ theo gói, mọi bit liên quan đến một khung nào đó sẽ được
truyền hồn tồn trong một khoảng thời gian ngắn hơn trễ bộ đệm mã hóa.
Trong trường hợp này, mọi bit sẽ được đưa đi ngay sau khi chúng sẵn sàng, dẫn
đến một chút trễ truyền tải không đáng kể. Chế độ này được sử dụng trong mạng
internet, nơi mà dữ liệu được nhóm lại và truyền đi thành các gói.
Trễ truyền tải cịn được gọi là trễ bộ đệm giải mã, bởi vì nó chính là lượng
thời gian mà bộ giải mã phải chờ đợi để thu thập toàn bộ các bit liên quan đến
một khung để bắt đầu quá trình giải mã.
1.3.4 Trễ xử lý giải mã

Đây là khoảng thời gian cần thiết để giải mã, tạo ra tiếng nói tổng hợp.
Cũng giống như trường hợp trễ xử lý mã hóa, nó cũng phải nhỏ hơn trễ bộ đệm
mã hóa vì tồn bộ một khung dữ liệu tiếng nói tổng hợp phải hồn thành trong
khung thời gian này, sẵn sàng cho khung tiếp theo.
Nói chung, trễ bộ đệm mã hóa đóng vai trị quan trọng nhất, nó ảnh hưởng

đến cả 3 thành phần trễ cịn lại. Bộ đệm mã hóa càng dài thì hiệu quả mã hóa
càng cao và bit-rate sẽ thấp hơn. Do đó, hầu hết các mơ hình mã hóa có bit-rate
thấp thì thường có trễ cao. Trễ nén là trường hợp trả giá thường xuyên nhất để
có được bit-rate tốt.
1.4 Ứng dụng của các mơ hình nén thoại
[4] Nén thoại đóng một vai trò quan trọng trong kỹ thuật âm thanh hiện
đại, đặc biệt cho truyền thông thoại số, nơi mà chất lượng và độ phức tạp ảnh
hưởng trực tiếp đến giá thành và khả năng chiếm lĩnh thị trường của các sản
phẩm, dịch vụ. Có rất nhiều tiêu chuẩn nén thoại được thiết kế đối với một ứng
dụng nén thoại cụ thể, ví dụ:
- FS1015 LPC: mơ hình này được tạo ra từ năm 1984 để cung cấp truyền thông
bảo mật cho các ứng dụng quân sự.
- TIA IS54 VSELP: mơ hình này được tiêu chuẩn hóa từ năm 1989 cho hệ
thống điện thoại di động số TDMA ở Bắc Mỹ.
- ETSI AMR ACELP: mơ hình này được chuẩn hóa năm 1999, là một phần của
hệ thống viễn thông di động toàn cầu (UMTS) liên kết với 3GPP.
Những năm gần đây, cùng với sự bùng nổ của internet, rất nhiều công ty
tập trung phát triển các ứng dụng dựa vào VoIP. Nén thoại cũng đóng vai trị
trung tâm trong cuộc cách mạng này.


10

Chương 2 -

MƠ HÌNH NÉN THOẠI MELP

[4] Mơ hình MELP được thiết kế để khắc phục một số hạn chế của mơ
hình LPC (xem phụ lục). MELP sử dụng một mơ hình tạo tiếng nói phức tạp
hơn, với các thơng số tăng cường để cải thiện độ chính xác. Việc này địi hỏi

thêm chi phí tính tốn, nhưng thực tế chỉ cần sử dụng một bộ xử lý tín hiệu số
DSP là đủ.
MELP bắt đầu được phát triển bởi McCree từ năm 1995, tích hợp nhiều
nghiên cứu tiến bộvào thời điểm đó, bao gồm cả lượng tử hóa vec-tơ, tổng hợp
tiếng nói và cải tiến từ mơ hình LPC cơ bản. Trong chương này, luận văn sẽ mơ
tả mơ hình tạo tiếng nói mà MELP dựa vào và so sánh với LPC, đồng thời phân
tích một số kỹ thuật xử lý và hoạt động mã hóa và giải mã của mơ hình MELP.
2.1 Mơ hình tạo tiếng nói MELP
[4] Sơ đồ khối của mơ hình tạo tiếng nói MELP được thể hiện trong hình
dưới đây, đây là một cải tiến từ mơ hình LPC đã có. Tuy mơ hình MELP phức
tạp hơn LPC nhưng cả hai cùng có một số điểm tương đồng: đều dựa trên một
bộ lọc tổng hợp để xử lý tín hiệu kích thích nhằm tạo ra tiếng nói tổng hợp.
MELP sử dụng kỹ thuật nội suy phức tạp để tạo ra các chuyển đổi liên khung.
Kích thích tuần hồn
Đáp ứng xung

Pitch
Period

Hệ số lọc
Bộ tạo
chuỗi
xung

Lọc tạo
xung

Lọc tạo
hình
xung


Gain

Lọc
tổng
hợp

voice strength
Tạo
nhiễu
trắng

Hình 2-1:

Tiếng
nói

Lọc tạo
hình
nhiễu

Mơ hình tạo tiếng nói

Những cải tiến chính của mơ hình MELP so với mơ hình LPC:
+ Sử dụng period jitter ngẫu nhiên để làm thay đổi giá trị của pitch period nhằm
tạo ra một chuỗi xung không tuần hoàn.
Hạn chế cơ bản trong LPC là việc phân loại của một khung tiếng nói
thành hai loại: khơng âm (unvoiced) và có âm (voiced). Mơ hình MELP phân



11
thành ba loại: khơng âm, có âm, và âm jitter (jitter voiced). Trạng thái thứ ba
này tương ứng với trường hợp khi các kích thích là khơng tuần hồn nhưng
khơng hoàn toàn ngẫu nhiên, mà thường gặp phải trong quá trình chuyển đổi âm
thanh từ voiced sang unvoiced và ngược lại. Trạng thái này trong mơ hình
MELP được kiểm sốt bởi tham số kích thích âm sắc và chủ yếu là một số ngẫu
nhiên. Qua thực nghiệm, người ta thấy rằng một kích thích tuần hồn phân bố
đều lên đến ±25% của âm sắc sẽ cho các kết quả tốt.
+Hình dạng của xung kích thích dùng cho kích thích tuần hồn được chiết xuất
từ tín hiệu đầu vào và là một phần thơng tin được đóng gói trong khung truyền.
Trong hình thức đơn giản nhất của LPC, kích thích âm bao gồm một
chuỗi các xung kích thích. Mỗi kích thích xung có một hình dạng nhất định.
Hình dạng của xung chứa các thơng tin quan trọng và được phân tích bởi bộ mã
hóa MELP thơng qua giá trị Fourier manitudes .
+Kích thích tuần hồn và kích thích nhiễu trước hết được lọc bằng cách sử dụng
bộ lọc hình dạng xung và bộ lọc hình dạng nhiễu tương ứng; sau đó đầu ra của
chúng được cộng vào nhau tạo thành kích thích tổng được gọi là kích thích hỗn
hợp.
Đây chính là ý tưởng cốt lõi của mơ hình MELP và dựa trên những quan
sát thực tế mà chuỗi các sai số dự đoán là sự kết hợp của một chuỗi xung với
nhiễu. Như vậy, mơ hình MELP là thực tế hơn nhiều so với mơ hình LPC.
Trong hình vẽ 2-1, các đáp ứng tần số của bộ lọc định hình được điều
khiển bởi tập hợp các tham số gọi là voice strength. Đáp ứng của các bộ lọc này
thay đổi theo thời gian, với các tham số được ước lượng từ các tín hiệu âm đầu
vào, và được truyền dưới dạng thông tin theo khung.
2.2 Biên độ Fourier (Fourier Manitudes)
[4] Mô hình MELP phụ thuộc vào tính tốn các biên độ Fourier từ tín hiệu
sai số dự đốn để bắt hình dạng của xung kích thích. Fourier magnitudes là độ
lớn của biến đổi Fourier tín hiệu đầu vào. Tham số này được lượng tử hóa và
truyền như thơng tin trên các khung. Mục tiêu là tạo ra ở phía giải mã một chuỗi

tuần hồn càng gần tín hiệu kích thích ban đầu càng tốt. Ta chỉ tính Fourier
manitudes cho khung voiced hoặc jitter voiced.
2.2.1 Bộ lọc tạo xung

Mơ hình MELP dựa vào bộ lọc tạo xung để tạo ra các kích thích tuần
hồn. Xung kích thích với chu kỳ thời gian T qua bộ lọc tạo xung tạo ra một
chuỗi xung ở đầu ra. Kết hợp với độ lớn của biến đổi Fourier (là phổ của chuỗi


12
xung được được tính bằng tích giữa phổ của chuỗi xung và độ lớn đáp ứng của
các bộ lọc) ta có thể tính được độ lớn đáp ứng của bộ lọc tạo hình xung. Hình 22 mơ tả q trình tạo xung, việc đo độ cao được thực hiện ở các giá trị tần số ω
= 2πi/T, i=1,2,.. khi tìm được đáp ứng độ lớn, thì ta cũng biết được đáp ứng
xung của bộ lọc tạo xung và định hình được xung.
Chuỗi
xung

Chuỗi
xung

Lọc tạo
xung

Đáp ứng xung
Miền
thời
gian

Miền
tần số


Hình 2-2:

Mơ phỏng xử lý tín hiệu với bộ lọc tạo xung

Trong q trình mã hóa, ta đo được đỉnh của phổ độ lớn tương ứng với tần
số âm sắc. Các giá trị này là Fourier manitudes được truyền tới các bộ giải mã
để xây dựng các xung kích thích và đáp ứng xung của bộ lọc xung.
2.2.2 Biên độ Fourier (Fourier magnitudes): tính tốn và lượng tử hóa
Tiếng
nói

Lọc sai
số dự
đốn

Cửa sổ

Bổ sung
mẫu zero

Mã hóa
VQ

Chuẩn
hóa

FFT

LPC

Chỉ
số

Tìm kiếm
đỉnh độ lớn

Pitch period

Hình 2-3:

Mơ hình tính tốn và lượng tử hóa biên độ Fourier


13
Đầu vào để tính tốn Fourier manitudes là dữ liệu tiếng nói (khoảng 200
mẫu), tham số LPC và pitch period. LPC và pitch period đã được trích xuất từ
tín hiệu trước đó. Sai số dự đốn sẽ được tính tốn trước bằng cách truyền dữ
liệu tiếng nói thơng qua các bộ lọc sai số dự đoán. Cửa sổ Hamming nhân 200
mẫu chuỗi sai số dự đoán. Chuỗi 200 mẫu kết quả sẽ được bổ sung các mẫu 0 để
tạo thành 512 mẫu, sau đó qua tính tốn FFT tạo thành 512 mẫu phức.
FFT là triển khai nhanh của DFT, với DFT được xác định qua phương
trình giải tích:



/

;

0,1, . .


1

[2.1]

/

;

0,1, . .

1

[2.2]

X[k] và x[n] tạo thành cặp biến đổi DFT, và N=512 là độ lớn của chuỗi.
Việc thêm các mẫu 0 vào bộ 200 mẫu để có 512 mẫu nhằm tăng tốc độ tính
tốn. Giá trị 512 được lựa chọn là sự cân bằng giữa tần số và giá trị tính tốn, và
thường là bội số của 2. Do tín hiệu sai số dự đoán là giá trị thực, chuỗi DFT kết
quả là đối xứng và chỉ có một nửa số mẫu là cần phải tính tốn; do đó chỉ có 256
mẫu được đưa tới khối tính tốn tiếp theo. Tính tốn để tìm kiếm đỉnh độ lớn
trong hình 2-3 (với pitch period T đã biết) sẽ được tổng kết như sau:
MAG_PEAKS_SEARCH(X[0 . . . 255], T, Fmag[1 . . . 10])
1. fori = 1 to 10
2.
freq = round(512 * i/T)
3.
if freq > 255
4.
Fmag[i] = SMALLEST_MAG

5.
else
6.
peak = 0
7.
for j = freq - 5 to freq + 5
8.
if j > 255 break
9.
if abs( X[j] )> peak
10.
peak = abs( X[j] )
11.
Fmag[i] = peak
12. return Fmag[1 . . . 10]

Mục đích của đoạn mã chương trình này là tìm kiếm lân cận quanh giá trị
tần số 512i/T với i=1..10. Các giá trị này tương ứng với 10 giá trị hài đầu tiên
ứng với tần số âm sắc. Nếu giá trị tần số là trên 255, thì hài đã vượt ra khỏi
phạm vi ước lượng. Trường hợp thứ hai xảy ra khi tần số âm quá cao. Nếu các
giá trị tần số nhỏ hơn hoặc bằng 255,việc tìm kiếm các đỉnh được thực hiện
trong vịng phạm vi (512i/T)±5; phạm vi này có thể được điều chỉnh cho phù
hợp tùy thuộc vào độ chính xác mong muốn. Kết thúc q trình tìm kiếm, ta có


14
được 10 giá trị độ lớn mong muốn. Như vậy, Fourier magnitudes là những đỉnh
giá trị độ lớn của 10 hài lân cận tần số pitch.
Chuỗi biên độ Fourier Fmag[i] được chuẩn hóa theo cơng thức:
.


[2.3]





/

[2.4]

2.2.3 Q trình tạo kích thích xung
Chỉ
số

Giải mã
VQ

Mở
rộng

Mở rộng
đối xứng

IDFT

Chuẩn
hóa

Dịch vịng


Pitch period

Xung

Hình 2-4:

Q trình tạo kích thích xung

Trong q trình giải mã, tín hiệu kích thích sẽ được tổng hợp trên cơ sở
từng pitch period, nếu T là pitch period thì sẽ tạo ra T mẫu xung. Giả sử các biên
độ Fourier đã được giải mã, chúng sẽ được nội suy trong quá trình giải mã
MELP, chuỗi kết quả được ký hiệu là Fmag[i].
PULSE_GENERATION(Fmag[1 .. 10], T, y[0 .. T-1])
1.
Y[0] = 0
2.
for k = 11 to T – 11
3.
Y[k] = 1
4.
for k = 1 to 10
// Mở rộng đối xứng
5.
Y[k] = Fmag[k]
6.
Y[T-k] = Fmag[k]
7.
IDFT(Y[0 .. T-1], y[0 .. T-1], T)
8.

CIRCULAR_SHIFT(y[0 .. T-1], T, 10)
9.
NORMALIZE(y[0 .. T-1], T)
10.
return y[0 ..T-1]

Thủ tục này nhận 10 giá trị biên độ Fourier và Pitch period làm đầu vào
để tạo ra mảng T-mẫu Y bằng cách đặt Y[0]=0 còn các giá trị khác là 1. Mảng Y
được sử dụng cho biến đổi Fourier ngược IDFT, biểu diễn thơng tin trong miền
tần số. Ở dịng 4, chúng ta tiến hành mở rộng đối xứng để tính chuỗi đối xứng,
việc mở rộng này là cần thiết để tạo ra chuỗi các giá trị thực sau khi thực hiện
IDFT. Ở dịng 7, IDFT được tính theo cơng thức:


15


/

;

0,1, . . ,

1

[2.5]

Ở dòng 8, chuỗi kết quả y[n] được dịch vịng theo 10 mẫu và được chuẩn
hóa ở dòng 9. Hoạt động dịch vòng được thực hiện như sau:
CIRCULAR_SHIFT(y, T, n)

1.
for i = 0 to T - 1
2.
x[i] = y[MOD(i-n, T)]
3.
for i = 0 to T - 1
4.
y[i] = x[i]
5.
return y[0 . . . T _ 1]

Hàm tính modulo MOD(n, N) được xác định như sau:
MOD(n, N)
1.
if n < 0
2.
n=n+N
3.
if n < 0 goto 2
4.
else
5.
n=n-N
6.
if n>= N goto 5
7.
return n

Mục đích của việc dịch vịng là tránh các thay đổi đột ngột khi bắt đầu
chu kì.

2.3 Bộ lọc định hình
[4] Mơ hình MELP sử dụng hai bộ lọc tạo hình (hình 2-1) để trộn kích
thích xung với kích thích nhiễu nhằm tạo nên tín hiệu kích thích hỗn hợp. Phản
hồi của các bộ lọc này được điều khiển bởi tập hợp các tham số gọi là voice
strength, các tham số này được ước lượng từ tín hiệu đầu vào. Các bộ lọc này
quyết định số lượng xung và số lượng nhiễu trong pha kích thích ở các tần số
khác nhau.
Trong FS MELP, mỗi bộ lọc định hình được cấu thành từ 5 bộ lọc, gọi là
bộ lọc tổng hợp vì chúng được sử dụng để tổng hợp tín hiệu kích thích hỗn hợp
trong suốt q trình giải mã. Mỗi bộ lọc tổng hợp điều khiển một dải tần số nhất
định, với băng thông trong khoảng 0-500, 500-1000, 1000-2000, 2000-3000,
3000-4000 Hz. Các bộ lọc tổng hợp này được kết nối song song để xác định các
đáp ứng tần số của bộ lọc định hình.
Ký hiệu đáp ứng xung của lọc tổng hợp là hi[n], với i=1..5, đáp ứng tổng
của lọc định hình xung là:


16
5

h p  n   vsi hi  n 

[2.6]

i 1

Với 0  vsi 1 là voice strength. Bộ lọc tạo hình nhiễu thì có đáp ứng:
5

hn [n]   1  vsi  hi [n]


[2.7]

i 1

Lọc tổng hợp 1
vs1
Lọc tổng hợp 2
vs2

Lọc tổng hợp 5
vs5
Hình 2-5:

Sơ đồ bộ lọc tạo hình xung

Bộ lọc tổng hợp được cài đặt như FIR với 31 cổng. Bộ lọc FIR được sử
dụng bởi các lý do sau:
- Pha tuyến tính: hệ thống pha tuyến tính chỉ đơn giản là trễ nhóm là
hằng số với tần số, đó là một đặc tính của hệ thống FIR. Một trễ nhóm hằng số
đối với tất cả các giá trị tần số sẽ khơng bóp méo hình dạng của một xung đi qua
hệ thống, vì tất cả các thành phần được giữ trễ bởi cùng một lượng,việc này rất
quan trọng trong việc xử lý một chuỗi kích thích xung.
- Đáp ứng tần số có thể thay đổi dễ dàng: Đáp ứng tổng của bộ lọc có
thể đạt được thông qua các bước nhân và cộng, những bước này có thể được
thực hiện trong thực tế với chi phí tương đối thấp. Thực tế, kết hợp các đáp ứng
xung tổng hợp lại với nhau, ta chỉ cần tính tốn đầu ra cho 1 đáp ứng thay vì làm
năm lần.



×