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

Công nghệ điện tử Viễn thông 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, 43 trang )

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

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

PHẠM VĂN HẬU
PHẠM VĂN HẬU

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

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

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

Hà Nội - 2014


MỤC LỤC



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.

LỜI CAM ĐOAN

Các số liệu, kết quả nêu trong luận văn là

MỤC LỤC

trung thực và chưa từng được công bố

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

trong bất kỳ công trình nào khác.

MỤC LỤC HÌNH VẼ
DANH MỤC VIẾT TẮT 

Tác giả

Phạm Văn Hậu

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 

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 

Định hướng nghiên cứu tiếp theo ........................................................................ 63 

Bảng 4-1: Một số tệp chính của dự án ................................................................ 52 

TÀI LIỆU THAM KHẢO ................................................................................ 64 

Bảng 4-2: Bảng cho điểm MOS .......................................................................... 60 

PHỤ LỤC


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

Bảng 4-3: Mẫu âm thanh dùng để đánh giá ........................................................ 61 

A. 

Mô hình mã hóa dự đoán tuyến tính LPC .................................................... i 

Bảng 4-4: Đánh giá PESQ của cài đặt C55x MELP ........................................... 61 

B. 

Thuật toán Levinson-Durbin ...................................................................... iii 

Bảng A-1: Bảng so sánh MC đối với các độ phân giải thường gặp...................... x 

C. 

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

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 toán và lượng tử hóa biên độ Fourier.......................... 12

Hình 2-4: Quá 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ự đoán có được từ một sóng âm (bên trái) và đo đạc đỉnh áp
dụng cho sai số dự đoá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

DANH MỤC VIẾT TẮT

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

Từ viết tắt

Hình 3-1: Sơ đồ khối của CPU TMS320C55x .................................................. 33

2-D

Hình 3-2: Sơ đồ đơn giản hóa của IU................................................................ 34

AbS

Analysis-by-synthesis


ACELP

Algebraic
code-excited
prediction
Absolute category rating

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

ACR
ADPCM
APCM

Tiếng Anh đầy đủ

Nghĩa tiếng Việt

2-Demensional

Hai chiều
Phân tích bằng cách tổng hợp
linear Dự đoán tuyến tính mã kích thích đại số
Tỉ lệ phân loại tuyệt đối

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

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ự đoán tuyến tính mã kích thích

Hình 4-4: Tệp Vn_M gốc và qua xử lý của C55x MELP ................................. 62

CS-ACELP

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

Hình 4-5: Tệp Vn_F gốc (và qua xử lý của C55x MELP ................................. 62

DC

Direct current

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

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


Tự hồi quy

Dòng một chiều

code-excited

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


1
LP

Linear prediction

LPC

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

MỞ ĐẦU

Dự đoán tuyến tính

MA

Moving average

Trung bình dịch chuyển


1.

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


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.

PESQ

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

PSQM

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

PVQ

Predictive vector quantization

QCELP

Qualcomm
prediction

code-excited

Lượng tử hóa vec-tơ dự đoán

linear Dự đoán tuyến tính kích thích mã
Qualcomm

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

excited

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

Lý do chọn đề tài

Đã có rất nhiều thuật toá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ự đoá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 toá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ự đoán; các trọng số tổng hợp, hoặc các hệ số dự đoán tuyến tính được dùng
đại diện cho một khung cụ thể. Mô hình MELP (dự đoá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 toá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 toá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 toá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 toá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 hoàn chỉnh thuật toá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 toá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 TOÁ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 quá trình phân tích và sau đó có thể tái
tạo lại tín hiệu tiếng nói yê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 toá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 toá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

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

Tín hiệu ra
(128kbps)

Mô hình nén thoại

Có thể rút gọn quá 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

7

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

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

[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à yê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:

Để 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 toán phải thấp.

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.

1.2.7 Trễ nén thấp

Trong quá 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 toán nén thoại không
kiểm soá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ự đoá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ý quá trình mã hóa thực sự.
1.3.2 Trễ xử lý mã hóa

Quá 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 toá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 quá 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

9

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ã

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ã

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

Đâ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ì toàn bộ một khung dữ liệu tiếng nói tổng hợp phải hoà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


Số lượng bit

Thời gian

Thời gian

Hình 1-5:

Trong chế độ theo gói, mọi bit liên quan đến một khung nào đó sẽ được
truyền hoàn toà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.

Đồ 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.

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

11

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 toá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 hoàn
Đáp ứng xung

Pitch
Period

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:

+Hình dạng của xung kích thích dùng cho kích thích tuần hoà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 hoà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.

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

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 hoà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 soá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 hoàn phân bố
đều lên đến ±25% của âm sắc sẽ cho các kết quả tốt.


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

2.2 Biên độ Fourier (Fourier Manitudes)
[4] Mô hình MELP phụ thuộc vào tính toán các biên độ Fourier từ tín hiệu
sai số dự đoá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 hoà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
hoà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


13


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ả quá 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

Đầu vào để tính toá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ự đoán sẽ được tính toá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 toá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:



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


;

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
toá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 toá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 toán; do đó chỉ có 256
mẫu được đưa tới khối tính toán tiếp theo. Tính toá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:

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 quá 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 toán và lượng tử hóa
Tiếng
nói

/
/

Lọc sai
số dự
đoá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 toán và lượng tử hóa biên độ Fourier

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 quá trình tìm kiếm, ta có


14

15

đượ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 Quá trình tạo kích thích xung
Chỉ
số

Giải mã
VQ

Mở
rộng

Mở rộng
đối xứng



/

;

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]

IDFT

Hàm tính modulo MOD(n, N) được xác định như sau:
Pitch period

Xung

Hình 2-4:

Chuẩn
hóa

Dịch vòng

Quá trình tạo kích thích xung

Trong quá 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:

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

17

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 toán đầu ra cho 1 đáp ứng thay vì làm
năm lần.

- Nội suy có thể được thực hiện tương đối dễ dàng: Để đảm bảo thông
suốt trong quá trình chuyển đổi giữa các khung, các đáp ứng xung của bộ lọc tạo
hình sẽ được nội suy trong quá trình giải mã MELP. Bản chất của bộ lọc FIR
cho phép nội suy tuyến tính các đáp ứng xung, hay các hệ số bộ lọc,với sự ổn
định được đảm bảo.
2.4 Pitch period và ước lượng voice strength
[4] Mô hình MELP sử dụng một thủ tục phức tạp để ước lượng chính xác

pitch period và voice strength, các tham số này đóng vai trò quan trọng trong
chất lượng của tiếng nói tổng hợp. Trong thực tế, lọc phân đoạn được sử dụng
trong suốt quá trình mã hóa. Một ngân hàng bộ lọc phân tích được sử dụng để
tách tín hiệu đầu vào thành năm dải tần, để tìm ra voice strength trong mỗi băng
tần. Các hoạt động được mô tả trong phần này chỉ được thực hiện trong quá
trình mã hóa, khi các tín hiệu tiếng nói được phân tích với các thông số cần trích
xuất.
2.4.1 Bộ lọc phân tích

Năm bộ lọc phân tích có cùng thiết lập băng thông cũng giống như bộ lọc
tổng hợp. Khác với bộ lọc tổng hợp thảo luận ở trước, các bộ lọc này được thực
hiện như Butterworth bậc 6, đó chính là IIR. Thiết kế này được chủ yếu dựa trên
chi phí tính toán tương đối thấp kết hợp với cấu hình IIR. Chẳng hạn,
Butterworth bậc 6 cần 12 bước nhân trên mỗi mẫu đầu ra, trong khi đó, bộ lọc
FIR 31-cổng cần tới 31 phép nhân. Tính phi tuyến trong đáp ứng pha (một đặc
trưng điển hình của hệ thống IIR) cũng khá là quan trọng vì được sử dụng cho
tính toán tương quan.
2.4.2 Vị trí cửa sổ

Trước khi ước lượng chu kỳ âm sắc, ta cần xác định vị trí của một số cửa
sổ xử lý tín hiệu đối với các khung tín hiệu. Hình 2-6 tóm tắt các cửa sổ lớn sử
dụng bởi mã hóa MELP. Giống như LPC, mỗi khung bao gồm 180 mẫu. Các vị
trí của các cửa sổ phân tích được lựa chọn để nội suy,vì các tham số của một
khung cho trước sẽ được nội suy giữa hai tập hợp khác nhau, được tính toán từ
cửa sổ phân tích sẽ nằm giữa mẫu bắt đầu và mẫu kết thúc của khung.


19

18

Gain

Tiếng
nói
đầu
vào

đỉnh

Bộ lọc
phân
tích thứ
1

Ước lượng
Pitch
period

r[T(1)]

Quyết
định cờ
Aperiodic

af

vs1(1)

Sai số dự đoán


T(1)
Biên độ Fourier
Ước lượng Pitch
period

Quá khứ

Hiện tại

Tương lai

Khung tín hiệu

180

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

Một số cửa sổ có thể chồng lấn lên nhau. Đối với hầu hết các tham số, cửa
sổ phân tích tương ứng với khung hiện thời thì nằm giữa mẫu cuối cùng của
khung hiện tại.
2.4.3 Ước lượng Pitch period bước 1.

Tín hiệu tiếng nói đầu vào được lọc qua bộ lọc phân tích thứ nhất, với
băng tần từ 0 tới 500Hz. Đối với mỗi khung 180-mẫu ta tính toán tự tương quan
chuẩn hóa với l= 40,41,..,160 (tương ứng với tần số từ 50 đến 200 Hz).

r[l ] 


c[0, l, l ]
c[0,0, l ]c[l, l, l ]

Với c[l, m, k ] 

 k /2 79



[2.8]

s[n  l]s[n  m] .

Hình 2-7:

+ Giá trị tương quan c[0,T+1,T] và c[0,T-1,T] được tính toán. Nếu c[0,T1,T] > c[0,T+1,T], thì T = T-1; ngược lại thì chuyển sang bước tiếp theo. Mục
đích của bước này là để kiểm tra khả năng điểm tương quan tối đa nằm ở vị trí
[T,T+1] hay [T-1,T] thông qua việc so sánh giá trị tương quan ở độ trễ của T-1
và T+1.
+ Tính toán giá trị thập phân của Pitch period:


c[0, T  1, T ]c[T , T , T ]  c[0, T , T ]c[T , T  1, T ]
c[0, T  1, T ]( c[T , T , T ]  c[T , T  1, T ])  c[0, T , T ]( c[T  1, T  1, T ]  c[T , T  1, T ])

[2.10]
+ Tính toán giá trị tương quán chuẩn hóa
r [T   ] 

[2.9]


(1   ) c[0, T , T ]   c[0, T  1, T ]



c[0, 0, T ] (1   ) 2 c[T , T , T ]  2 (1   ) c[T , T  1, T ]   2 c[T  1, T  1, T ]

n k /2 80

Kết quả phần nguyên của pitch period chính là giá trị T = l với r[l] đạt
cực đại. Phương trình chuẩn hóa này được sử dụng cho tất cả các khung (trừ
khung có năng lượng thấp).

Mô phỏng ước lượng Pitch period bước 1

Phương trình tính tương quan [2.8] ở trên sử dụng 160 phép nhân. Đối với
mỗi hoạt động ước lượng Pitch period phải sử dụng 320 mẫu liên tiếp của tín
hiệu. 320 mẫu liên tiếp này tạo thành cửa sổ ước lượng pitch period. Cửa sổ này
dựa trên 160 mẫu của khung hiện tại, cộng với 160 mẫu của khung kế tiếp. Các
mẫu s[0] trong phương trình [2.9] tương ứng với các mẫu đầu tiên của khung kế
tiếp. Ký hiệu T là giá trị nguyên của Pitch period, tiếp tục các bước thực hiện
như sau:



[2.11]
(1)
Giá trị Pitch period thực được ký hiệu là T  T  , gọi là Pitch period

bước 1 (hình 2-7).



20

21
+ voice strength của dải tần được tính theo công thức:

2.4.4 Voice strength tần thấp

Voice strength ở dải tần thấp (0-500Hz, vs1 ) bằng giá trị tự tương quan
chuẩn hóa theo T(1) tính theo công thức [2.11], tức là:

vs 1  r[T (1) ]

[2.12]

2.4.5 Cờ không tuần hoàn (Aperiodic)

Giá trị cờ không tuần hoàn af phụ thuộc vào voice strength tần thấp:

1,
af  
0,

[2.13]

ng−îc l¹i

Đối với voice strength cao (> 0.5), khung là tuần hoàn mạnh và cờ
được thiết lập về 0. Đối với tuần hoàn yếu, cờ được thiết lập là 1, báo hiệu cho

các bộ giải mã MELP để tạo ra các xung kích thích không tuần hoàn. Cờ được
truyền như một phần của khung MELP.
2.4.6 Ước lượng voice strength cho 4 dải tần cao

Tiếng
nói đầu
vào

Trích
xuất
đường
bao

Tự
tương
quan

Bộ so
sánh

vs2,3,4,5

Tự
tương
quan

Hình 2-8:

Lặp đi lặp lại quá trình này cho bốn bộ lọc còn lại để tìm ra các giá trị
voice strength vs2, vs3, vs4, và vs5. Như vậy, voice strength được tính thông qua

so sánh các giá trị tự tương quan có được trực tiếp từ tín hiệu băng thông và từ
đường bao của bản thân tín hiệu, tìm lấy giá trị cao hơn.
Phân tích LP bậc 10 được thực hiện đối với tín hiệu tiếng nói đầu vào sử
dụng cửa sổ Hamming 200-mẫu (25-ms). Phương pháp tự tương quan được sử
dụng cùng với thuật toán Levinson-Durbin (xem phụ lục). Các hệ số kết quả thì
được mở rộng băng thông với hằng số 0.994, chúng được lượng tử hóa và được
dùng để tính toán tín hiệu sai số dự đoán.
2.4.8 Xác định Peakness

Peakness của tín hiệu sai số dự đoán được tính toán thông qua cửa sổ 160mẫu đặt giữa mẫu cuối của khung hiện tại. Giá trị Peakness được tính bởi công
thức:

Pitch period T(1)

Bộ lọc
phân tích
thứ
2,3,4,5

[2.14]

2.4.7 Phân tích LP và sai số dự đoán

vs1  0.5

nÕu

v s  m a x ( r1 , r2 )

Mô phỏng ước lượng voice strength băng thông


Hình 2-8 cho thấy hệ thống sử dụng để ước lượng voice strength cho 4 dải
băng tần còn lại, bao gồm các bước như sau:
+ Tính toán r1  r[T(1) ] , với r[.] là tự tương quan chuẩn hóa tính toán ở
công thức [2.11], và T(1) là Pitch period thực bước 1. Tín hiệu được sử dụng để
tính toán tự tương quan chính là đầu ra từ bộ lọc băng tần tương ứng.
+ Tính toán r2  r[T (1) ] . Ở thời điểm này, tín hiệu được sử dụng chính là
đường bao của tín hiệu băng tần, đường bao có được bằng cách tinh chỉnh (giá
trị tuyệt đối của các mẫu), sau đó là lọc thông thấp.

79
1
 n80 e 2 [n]
160
p
79
1
 e[n]
160 n 80

[2.15]

và được đo theo mức đỉnh của tín hiệu. Mức đỉnh ở đây chính là những mẫu có
biên độ tương đối cao so với trung bình biên độ của các mẫu.
Trong ví dụ ở hình 2-9, hình trên bên trái là xung p =13.4, trên bên phải là
một số xung bất thường p=7.3, dưới bên trái là sóng dạng sin p =1.1, dưới bên
phải là nhiễu trắng p = 1.2. Nhiễu trắng có các đỉnh thấp bởi vì thực tế thì không
có đỉnh nào xuất hiện ở đạng tín hiệu này.



22

23
thưa thớt (khung jitter voiced). Như thế, việc đo đạc các đỉnh sẽ rất hữu ích
trong việc phân loại khung là có tiếng hay không tiếng, cũng như trong việc phát
hiện các khung chuyển đổi.

Hình 2-11:

Hình 2-9:

Một số tín hiệu và giá trị đỉnh của nó

Sai số dự đoán có được từ một sóng âm (bên trái) và đo đạc đỉnh
áp dụng cho sai số dự đoán (bên phải)

Hình 2-11 cho thấy một ví dụ về phép xác định đỉnh trong trường hợp tín
hiệu sai số dự đoán thực tiễn. Ta thấy rằng đỉnh cao hơn nhiều đối với n ở giữa
1000 và 2000, ở đó tín hiệu là có tiếng. Đỉnh đặc biệt cao đối với khung có
n=1000 chủ yếu do sự chuyển đổi tự nhiên, khi một số xung kích thích xuất hiện
bất thường trong khung.
2.4.9 Peakness và voice strength

Theo giá trị của đỉnh, voice strength của ba dải tần thấp nhất sẽ được điều
chỉnh như sau:
+ Nếu p > 1.34 thì vs1 = 1
+ Nếu p > 1.60 thì vs2 = 1 và vs3 = 1
Khi đỉnh là cao, nó sẽ ghi đè lên voice strength bằng cách đặt nó trực tiếp
bằng giá trị cao. Mỗi voice strength sẽ được lượng tử hóa về 0 hoặc 1, khi truyền
đi sử dụng 1 bit.


Hình 2-10:

Đỉnh của chuỗi xung không gian đồng nhất

Trong hình 2-10 hiển thị giá trị các đỉnh của một chuỗi xung tuần hoàn có
một chu kì cụ thể. Các đỉnh sẽ tăng dần đều theo chu kì khi đỉnh của sai số dự
đoán được tính, thì giá trị đo đạc sẽ là cao hơn cho các khung có tiếng. Đặc biệt,
giá trị của nó có thể được cực đại hóa khi số lượng các xung trong khung trở nên

Sự kết hợp giữa đỉnh và phép đo tự tương quan có hiệu quả cao trong việc
phân loại trạng thái âm. Thông thường, các khung không âm sẽ có đỉnh và tự
tương quan thấp, dẫn đến voice strength là yếu. Đối với khung chuyển tiếp thì sẽ
có đỉnh là cao và tự tương quan ở mức trung bình.Với những khung này, tương
quan tương đối thấp sẽ đặt cờ không tuần hoàn bằng 1, khiến cho bộ giải mã
sinh ra các chu kì ngẫu nhiên. Đối với khung có âm, đỉnh là trung bình với
tương quan cao; điều này sẽ đưa giá trị cờ không tuần hoàn về 0: voice strength
cao. Mô hình MELP dựa trên cờ không tuần hoàn aperiodic kết hợp với voice
strength để quản lý thông tin trạng thái âm thanh.


24
2.4.10 Ước lượng chu kỳ âm sắc cuối cùng

Tín hiệu sai số dự đoán được lọc qua bộ lọc thông thấp với ngưỡng 1kHz,
đầu ra được sử dụng để ước lượng pitch period. Kết quả thu được bằng cách tìm
kiếm trong một phạm vi xung quanh giá trị pitch period bước 1 T(1). Ước lượng
lại pitch period sử dụng sai số dự đoán sẽ có được kết quả chính xác hơn, do cấu
trúc đỉnh cộng của tín hiệu tiếng nói gốc đã được loại bỏ.
2.5 Hoạt động mã hóa


25
11.
qvs5= 0
12. return qvs2,.., qvs5

Thủ tục này có đầu vào là voice strength của 5 dải tần. Đối với trường hợp
không phải tiếng nói, dựa vào biên độ vs1<= 0.6 , giá trị voice strength lượng tử
hóa qvsi của bốn dải tần cao sẽ được đặt là 0. Ngược lại, chúng sẽ được lượng tử
hóa là 0 hoặc 1 tùy theo biên độ là nhỏ hơn hay lớn hơn 0.6. Trường hợp (qvs2,
qvs3, qvs4, qvs5 ) = (0,0,0,1) sẽ hoàn toàn bị loại ở dòng lệnh 10 và 11.
2.5.2 Lượng tử hóa pitch period và voice strength tần thấp

Pitch period T và voice strength thấp tần vs1 được lượng tử hóa cùng
nhau sử dụng 7 bit. Nếu vs1<= 0.6, khung là không tiếng và một mã toàn giá trị
0 sẽ được gửi đi. Ngược lại, logT sẽ được lượng tử hóa với bộ lượng tử đồng
nhất 99 cấp có phạm vi từ log20 tới log160. Giá trị vs1 đã lượng tử hóa được ký
hiệu là qvs1, nó sẽ nhận giá trị 0 đối với trạng thái không tiếng và 1 đối với trạng
thái có tiếng.
2.5.3 Tính toán gain

Gain được đo hai lần trên một khung sử dụng kích thước cửa sổ thích nghi
âm sắc. Kích thước này được xác định như sau:

Hình 2-12:

Mô hình mã hóa MELP

2.5.1 Mã hóa voice strength băng thông


Voice strength của bốn dải tần cao được lượng tử hóa theo thủ tục mã giả
sau:
QUANTIZE_VS(vs1, …, vs5)
1. if vs1<= 0.6
// không tiếng
2.
for i = 2 to 5
3.
qvsi= 0
4. else
// có tiếng
5.
for i = 2 to 5
6.
if vsi > 0.6
7.
qvsi= 1
8.
else
9.
qvsi= 0
10.
if qvs2== 0 and vs3== 0 and qvs4== 0

+ Nếu vs1> 0.6, kích thước cửa sổ là bội nhỏ nhất của T(1), thường lớn hơn
120 mẫu. Nếu kích thước này vượt quá 320 mẫu, nó sẽ được chia cho 2. Trường
hợp này tương ứng với các khung tiếng nói, khi sự đồng bộ âm sắc được tìm
trong suốt quá trình tính toán gain. Bằng cách sử dụng một bội nguyên của pitch
period, sự biến thiên của gain tương ứng với vị trí của cửa sổ sẽ được giảm
thiểu.

+ Nếu vs1<= 0.6, kích thước cửa sổ là 120 mẫu. Đây là trường hợp khung
không tiếng hoặc khung tiếng chập chờn.
Tính toán gain cho cửa sổ đầu tiên sẽ tạo ra giá trị g1 và được tập trung
vào 90 mẫu trước mẫu cuối cùng ở khung hiện tại. Tính toán gain cho cửa sổ thứ
hai sẽ tạo ra g2 và được tập trung vào mẫu cuối cùng ở khung hiện tại. Phương
trình tính giá trị gain là:

1


g  10log10  0.01   s 2[n] 
N n



[2.16]

Trong đó, N là kích thước cửa sổ, s[n] là tín hiệu tiếng nói đầu vào. Phạm vi của
n phụ thuộc vào kích thước cửa sổ và từng giá trị gain cụ thể (g1 hoặc g2). Phần


26

27

tử 0.01 sẽ ngăn không cho biểu thức tiến về 0. Phép đo giá trị gain có giả thiết
rằng tín hiệu đầu vào có phạm vi từ -32768 tới 32767 (16 bit trên mỗi mẫu).
2.5.4 Mã hóa gain

Giá trị g2 được lượng tử hóa bởi một bộ lượng tử đồng nhất 5 bit có phạm

vi từ 10 tới 77 dB. Giá trị g1 thì được lượng tử hóa 3 bit theo thủ tục sau:

ENCODE_g1(g1, g2, g2,past)
1. if| g2- g2,past| < 5 and | g1- (g2+ g2,past)/2 |< 3
2.
index = 0
3. else
4.
gmax = MAX(g2,past, g2) + 6
5.
gmin = MIN(g2,pastg2) - 6
6.
if gmin < 10
7.
gmin = 10
8.
if gmax > 77
9.
gmax = 77
10.
index = UNIFORM(g1, gmin, gmax, 7)
11. return index

Thủ tục này sử dụng g1 và g2 của khung hiện tại, g2,past của khung trước
đó. Ở dòng 1, một số điều kiện được xác định để xem khung là trạng thái ổn
định hay không (năng lượng ít thay đổi ). Nếu điều kiện được thỏa mãn, thì thủ
tục kết thúc với chỉ số bằng 0. Ngược lại, khung này là tạm thời và ta sử dụng bộ
lượng tử hóa đồng nhất cấp 7. Giá trị giới hạn của bộ lượng tử (gmin, gmax)
được tính toán từ dòng 4 tới dòng 9; mã hóa thông qua bộ lượng tử đồng nhất ở
dòng 10; kết quả đưa đến là chỉ số tập hợp {1,2,…,7}. Như vậy, tổng cộng có 8

mức, có thể khai thác bằng 3 bits. Hàm UNIFORM() ở dòng 10 sẽ nhận giá trị
đầu vào là g1 và mã hóa nó thông qua bộ lượng tử hóa đồng nhất với giới hạn
đầu vào [gmin, gmax] và 7 từ mã. Phương pháp này là một mô hình lượng tử
thích nghi với tham số của cả quá khứ và tương lại đều được sử dụng để cải
thiện hiệu suất.
2.5.5 Cấp phát bit

Bảng 2-1 tổng kết sơ đồ cấp phát bit của mã hóa FS MELP. Ta đã biết,
các mô hình LPC đều được lượng tử như là LSF sử dụng MSVQ. Việc đồng bộ
hóa này là một mẫu thay đổi 1/0. Việc bảo vệ lỗi chỉ dành cho các khung không
tiếng, sử dụng 13 bit. Mỗi khung sẽ được truyền tổng cộng là 54 bit, với độ dài
là 22.5 ms. Kết quả ta có bit-rate là 2400 bps.

Bảng 2-1: Sơ đồ cấp phát bit của mã hóa MELP
Tham số

Có tiếng

Không tiếng

25

25

Pitch period/ VS thấp tần

7

7


VS băng thông

4

-

Gain thứ nhất g1

3

3

Gain thứ hai g2

5

5

Cờ không tuần hoàn

1

-

Biên độ Fourier

8

-


Đồng bộ hóa

1

1

Chống lỗi

-

13

Tổng cộng

54

54

LPC

2.6 Hoạt động giải mã
[4] Hình 2-13 cho thấy sơ đồ giải mã MELP, ở đó, luồng bit MELP được
bung gói với các chỉ số được đưa đến các bộ giải mã tương ứng. So với hình 212, ta thấy mô hình tạo tiếng nói đã được nhúng bên trong cấu trúc của giải mã.
Có hai bộ lọc được bổ sung vào trong quá trình xử lý đó là bộ lọc nâng cao phổ
với đầu vào là kích thích hỗn hợp và bộ lọc phân tán xung ở cuối của quá trình
xử lý. Hai bộ lọc này được sử dụng để nâng cao chất lượng của tiếng nói tổng
hợp.
2.6.1 Giải mã và nội suy tham số

Trong giải mã MELP, các tham số từ dòng bit sẽ được bung gói và giải

mã theo các lược đồ tương ứng. Những tham số này bao gồm: LPC (LSF), pitch
period/voice strength tần thấp, voice strength băng thông, gain (g1 và g2), cờ
không tuần hoàn và các biên độ Fourier. Các tham số này đại diện cho thông tin
của khung, hầu hết được nội suy một cách tuyến tính trong quá trình tổng hợp
tiếng nói.
Đối với các khung không tiếng (được phát hiện thông qua mã voice
strength thấp tần/ pitch period), chúng ta sẽ sử dụng các giá trị mặc định cho
một vài tham số, đó là pitch period = 50, jitter = 0.25, tất cả các biên độ Fourier


28

29

đều là 1, và tất cả các giá trị voice strength đều là 0. Các giá trị mặc định này là
cần thiết đối với khung không tiếng bởi vì việc nội suy tuyến tính được thực
hiện trên cơ sở “pitch period – by – pitch period” trong suốt quá trình tổng hợp.
Ở đây có xuất hiện một tham số mới: jitter, nó chỉ được sử dụng trong việc giải
mã để điều khiển số lượng ngẫu nhiên xảy ra trong quá trình tạo ra các âm kích
thích không tuần hoàn.
Đối với khung có tiếng, giá trị của jitter được sử dụng như sau: jitter =
0.25 nếu cờ không tuần hoàn là 1, ngược lại thì jitter = 0. Trong trường hợp này,
pitch period được giải mã từ dòng bit. Sau khi nội suy, giá trị pitch period thực
sự sẽ được tính theo công thức:
[2.17]

T  T 0 (1  j i t t e r * x )

Với T0 là giá trị pitch period đã giải mã và suy ra được, còn x là một số
ngẫu nhiên có phân bố chuẩn trong khoảng [-1,1]. Theo cách này, các chu kỳ bất

thường sẽ được sinh ra, mô phỏng các điều kiện phát sinh trong quá trình dịch
chuyển các khung. Chú ý rằng nhiễu tối đa đối với pitch period vào khoảng
±25%, đây là giới hạn cho hầu hết các tình huống thực tiễn.

n 0  [0 ,1 7 9 ] ,

gắn liền với khung hiện tại, tập hợp các tham số cần thiết để tổng

hợp tiếng nói sẽ được đánh giá từ nội suy tuyến tính của dữ liệu từ các khung
quá khứ và hiện tại. Hệ số nội suy  được tính theo công thức:
[2.18]

  n0 / 1 8 0

Hệ số nội suy này được áp dụng chung cho tất cả các tham số LPC, pitch
period, jitter, biên độ Fourier, và các hệ số lọc định hình. Do voice strength có
thể suy ra được, việc nội suy các hệ số bộ lọc định hình thường có chi phí tính
toán thấp. Giá trị pitch period được tính theo công thức:
[2.19]

T  (1   ) T p a s t   T p r e s e n t

Với kết quả được làm tròn tới số nguyên gần nhất. Giá trị gain được cho bởi
công thức nội suy sau:
 (1   ) g 2, past   g1, present n0  90,
g
 (1   ) g1, present   g 2, present 90  n0  180

Đối với trường hợp mà


n0  T  180

[2.20]

, thì chu kỳ sẽ được xem xét đánh giá

ngang qua biên của khung, các tham số vẫn được nội suy theo cùng công thức.
Đến chu kì tiếp theo, n0 được điều chỉnh bằng cách trừ đi 180 để xác định tọa độ
của khung mới.
2.6.2 Tạo kích thích hỗn hợp

Chuỗi xung T-mẫu được sinh ra từ các biên độ Fourier sẽ có giá trị đơn vị
rms. Chuỗi này được lọc thông qua bộ lọc định hình xung và cộng với chuỗi
nhiễu đã được lọc để tạo thành kích thích hỗn hợp. Nhiễu được sinh ra bởi một
số ngẫu nhiên phân bố chuẩn với giá trị trung bình là 0 có giá trị đơn vị rms. Các
hệ số của bộ lọc được suy diễn đồng thời với pitch period.
2.6.3 Bộ lọc tăng cường phổ

Bộ lọc có hàm hệ thống:
10

H ( z )  (1   z )
1

1   ai  i z  i
i 1
10

1   ai i z  i


[2.21]

i 1

Trong đó,
Hình 2-13:

Mô hình giải mã MELP

Trong quá trình tổng hợp tiếng nói, tín hiệu được sinh ra trên cơ sở “pitch
period by pitch period”. Tức là, trong một khoảng thời gian n0 nhất định,

ai

là các hệ số dự đoán tuyến tính. Các tham số µ, α, β được tạo tùy

vào các điều kiện tín hiệu. Bộ lọc này đồng nhất với bộ lọc được sử dụng rộng
rãi trước đây trong mô hình CELP. Bộ lọc này được sử dụng để nâng cao chất
lượng tiếng nói tổng hợp thông qua làm nổi bật các đặc trưng phổ ban đầu.


31

30
2.6.4 Bộ lọc tổng hợp

Đây là một bộ lọc tổng hợp đỉnh cộng theo hình thức trực tiếp, với các hệ
số tương ứng với LSF đã suy ra được.
2.6.5 Tính toán hệ số khuếch đại


Công suất đầu ra ở bộ lọc tổng hợp phải cân bằng với gain g suy diễn
được (ở công thức 2.20) của chu kì hiện tại. Do kích thích được tạo ra ở mức tùy
ý nên ta cần có một hệ số tỉ lệ để khuếch đại giá trị của đầu ra y[n] của bộ lọc
tổng hợp để tạo ra giá trị ở mức thích hợp:

g0 

10g /20
1
 y2[n]
T n

[2.22]

Lấy giá trị g0 này nhân với y[n], chuỗi T-mẫu kết quả sẽ có công suất của
(10g/20)2 , hoặc g dB.
2.6.6 Bộ lọc phân tán xung

Bộ lọc này là một bộ lọc FIR 65 lớp trích xuất từ một xung tam đỉnh phổ
phẳng. Như ta thấy thì nó gần như là một bộ lọc thông suốt, khi mà các thay đổi
trong đáp ứng biên độ là tương đối nhỏ.

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

Bộ lọc phân tán xung được dùng để cải thiện cho bộ lọc tổng hợp băng
thông với tiếng nói tự nhiên dạng sóng trong các vùng không có cộng hưởng
đỉnh. Tiếng nói tự nhiên đã qua lọc băng thông thì có một tỉ lệ đỉnh-trũng nhỏ

hơn so với tiếng tổng hợp.
2.7 Kết chương
Chương này chúng ta tìm hiểu về mô hình MELP, mô hình này có cải tiến
hơn nhiều so với LPC, với nhiều thông số được sử dụng thêm để tăng cường

tính tự nhiên, độ mượt, và khả năng thích ứng với các điều kiện tín hiệu đa dạng
hơn. Mô hình MELP đã đạt được tất cả các lợi thế mà không cần nâng cao bitrate tổng thể, chủ yếu do việc sử dụng kỹ thuật lượng tử hóa véc-tơ. Phần lớn
yếu tố chất lượng kém của LPC đã bị loại bỏ nhờ vào voice strength độc lập tần
số..
MELP liên quan tới họ các lập trình tham số. Khi so sánh với các mô hình
lập trình lai như CELP, yêu cầu bit-rate lại thấp hơn nhiều do tránh được các mô
tả chi tiết hóa cho các kích thích. Thay vào đó, nó sử dụng một tập hợp thô các
thông số được trích xuất để đại diện cho kích thích. Tương tự như LPC, nó cũng
có thể được phân loại như là một bộ coder đa chế độ điều khiển nguồn, do sử
dụng các lược đồ mã hóa khác nhau tùy thuộc vào tính chất của tín hiệu.
Ý tưởng sử dụng kích thích hỗn hợp, tức là kết hợp thành phần nhiễu
trắng với thành phần tuần hoàn cùng nhau, đã được nghiên cứu rất sâu trong quá
khứ. Coder kích thích nhiều dải tần đã được nghiên cứu thay thế cho việc phân
loại có tiếng/không tiếng trong coder LPC với một tập hợp các quyết định trên
miền tần số. Tuy nhiên, khi mô hình này không còn phù hợp với tín hiệu đầu
vào, chất lượng tín hiệu đầu ra đã giảm đáng kể, đặc biệt khi có âm nhạc hay
tiếng ồn trộn lẫn với tín hiệu tiếng nói. Trong khi đó, mô hình MELP hoạt động
khá tốt đối với một số loại tín hiệu không phải tiếng nói. Chất lượng của nó chủ
yếu là do sự mạnh mẽ và tính linh hoạt của các mô hình cơ bản, cho phép thích
ứng tốt với nhiều lớp chung của các tín hiệu âm thanh.


32

Chương 3 -


33

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

3.1 Giới thiệu
[2] Các bộ xử lý tín hiệu số với kiến trúc và lệnh được thiết kế đặc biệt
cho các ứng dụng DSP đã được phát triển bởi các hãng Texas Instruments,
Motorola, Lucent Technologies, Analog Devices.. Các bộ xử lý DSP đã được sử
dụng rộng rãi trong nhiều lĩnh vực như viễn thông, xử lý tiếng nói, xử lý ảnh,
thiết bị y sinh, điện tử.. Trong chương này, chúng ta tìm hiểu kiến trúc và lập
trình của bộ xử lý họ TMS320C55x của Texas Instruments.
Một số đặc điểm quan trọng của họ C55x bao gồm:
-

-

Mã nguồn tương thích với tất cả các thiết bị TMS32054x
Hàng đợi bộ đệm lệnh 64 byte làm việc như một bộ đệm chương trình và cải
thiện hiệu quả các hoạt động lặp khối.
2 đơn vị MAC 17 bit có thể chạy song song phép nhân có nhớ trên cùng một
vòng lệnh đơn.
1 bộ số học logic ALU 40 bit thực hiện các tính toán logic và số học chính
xác cao, kèm theo một bộ ALU 16 bit thực hiện các lệnh số học đơn giản
song song với ALU chính.
4 bộ nhớ 40bit dành cho việc lưu trữ các kết quả tính toán nhằm giảm truy
cập bộ nhớ.
8 thanh ghi phụ mở rộng cho việc lưu dữ liệu cộng với 4 thanh ghi dữ liệu
tạm dành cho các dữ liệu đơn giản.
Chế độ địa chỉ xoay vòng cho phép hỗ trợ tới 5 bộ đệm vòng

Hoạt động lặp đơn lệnh và khối lệnh hỗ trợ lặp không quá tải.

3.2 Kiến trúc họ TMS32C55xx
[2] CPU C55x bao gồm 4 thành phần: đơn vị bộ đệm lệnh (IU), đơn vị
luồng chương trình (PU), đơn vị luồng dữ liệu địa chỉ (AU) và đơn vị tính toán
dữ liệu (DU). Các đơn vị này được kết nối tới 12 địa chỉ và đường bus dữ liệu
khác nhau như hình 3-1.

Hình 3-1:

Sơ đồ khối của CPU TMS320C55x

3.2.1 Kiến trúc tổng thể

 Bộ đệm lệnh (IU)
Bộ đệm lệnh chịu trách nhiệm lấy các lệnh từ bộ nhớ đưa vào CPU. C55x
được thiết kế để tối ưu hóa thời gian chạy và mật độ mã. Các lệnh đơn giản được
mã hóa sử dụng 8 bits (1 byte), trong khi đó các lệnh phức tạp thì phải dùng tới
48 bits (6 bytes). Trong mỗi nhịp đồng hồ, IU có thể lấy được 4 bytes mã
chương trình thông qua bus dữ liệu đọc-chương trình 32bit của nó. Cùng trong
thời gian đó, IU có thể giải mã tới 6 bytes chương trình. Sau khi 4 bytes mã
được lấy về, IU đặt nó vào bộ đệm lệnh 64 byte. Cùng lúc đó, bộ logic giải mã
sẽ tiến hành giải mã từ 1 tới 6 bytes đã được đặt trước đó trong bộ giải mã lệnh,


34

35

như hình 3-2. Các lệnh đã giải mã được thì được chuyển sang cho PU, AU hoặc

DU.
BUS dữ liệu đọc-chương trình PB
32 (4-byte opcode)

 Bộ điều khiển dòng dữ liệu-địa chỉ (AU)
AU hoạt động như một trình quản lý truy cập dữ liệu cho các bus đọc và
ghi dữ liệu. AU chứa 8 thanh ghi phụ 23 bit (XAR0 tới XAR7), 4 thanh ghi tạm
16 bit (T0-T3), 1 con trỏ dữ liệu hệ số mở rộng 23 bit (XCDP), và 1 con trỏ
stack mở rộng 23 bit (XSP).
CB

Hàng đợi bộ
đệm lệnh
(64bytes)

Bộ giải mã
lệnh

48
(1-6 byte opcode)

Hình 3-2:

PU

DB

AU
DU


Sơ đồ đơn giản hóa của IU

 Bộ điều hướng chương trình (PU)
PU là đơn vị điều khiển dòng hoạt động của chương trình DSP, bao gồm 1
bộ đếm chương trình (PC), 4 thanh ghi trạng thái, 1 bộ sinh địa chỉ chương trình
và một bộ bảo vệ đường ống.
BUS địa chỉ đọc-chương trình PAB
24 bit

KHÔNG GIAN BỘ NHỚ DỮ LIỆU

IU

16 bit

EB

T0

XAR0

T1

XAR1

T2

XAR2

T3


XAR3

FB

XAR4

BAB
CAB
DAB
EAB

16 bit ALU

XAR5
XAR6

Bộ sinh địa
chỉ dữ liệu
24 bit

XAR7
XCDP
AU

FAB
PU

23 bit


XSP

Bộ đếm chương trình (PC)
Thanh ghi trạng thái (ST0,ST1,ST2,ST3)
Bộ sinh địa chỉ
Bộ bảo vệ pipeline
Hình 3-3:

Mô hình đơn giản hóa của PU

Bộ sinh địa chỉ tạo ra các địa chỉ 24 bit bao phủ hết 16Mb của không gian
chương trình. Do hầu hết các lệnh sẽ chạy tuần tự, C55x sử dụng cấu trúc đường
ống (pipe) để cải thiện hiệu năng chạy chương trình. Tuy nhiên, các lệnh rẽ
nhánh, gọi hàm, trả về, chạy có điều kiện và ngắt sẽ gây ra các chuyển địa chỉ
chương trình không tuần tự. PU sử dụng một bộ bảo vệ ống để tránh cho luồng
chương trình gây tổn hại cho các đường ống bởi các hoạt động không tuần tự.

Hình 3-4:

Bộ điều khiển luồng dữ liệu địa chỉ C55x

AU chứa một bộ ALU 16 bit mở rộng dùng cho các tính toán số học đơn
giản. AU sử dụng hai thanh ghi địa chỉ cùng với 1 con trỏ hệ số cho các tính
toán dữ liệu song song với 1 hệ số chỉ trong 1 vòng đồng hồ. AU cũng hỗ trợ 5
bộ đệm vòng cho các tính toán cần thiết.
 Bộ tính toán dữ liệu (DU)
DU xử lý dữ liệu cho hầu hết các ứng dụng C55x, bao gồm một cặp
MAC, một bộ ALU 40 bit, 4 bộ tích lũy 40 bit (AC0, AC1, AC2, AC3), một bộ
dịch thùng, 1 bộ logic điều khiển làm tròn và bão hòa.



36
BB
16 bit

CB

AC0

ALU 40 bit

AC1

Bộ dịch
thùng

AC2

16 bit

AC3
DB

37

Bộ điều
khiển tràn
và bão hòa

MAC


16 bit

MAC
Hình 3-5:

hóa sức mạnh xử lý bằng cách duy trì phân tách các cấu trúc bus bộ nhớ cho các
tính toán tốc độ cao.
EB
16 bit

FB
16 bit

DU

Mô hình cấu trúc bộ tính toán dữ liệu

3.2.3 Ánh xạ bộ nhớ

C55x sử dụng một cấu hình bộ nhớ vào ra, dữ liệu và chương trình đồng
nhất. Toàn bộ dung lượng 16Mbs của bộ nhớ đều dành cho chương trình và
không gian dữ liệu. Không gian vào/ra thì được tách biệt khỏi không gian
chương trình/dữ liệu, và được sử dụng cho các giao tiếp song công đối với thiết
bị ngoại vi. Khi CPU lấy các lệnh từ không gian chương trình, bộ sinh địa chỉ
C55x sử dụng bus địa chỉ đọc chương trình 24 bit. Mã chương trình được lưu
thành các byte. Khi CPU truy cập vào không gian dữ liệu, bộ sinh địa chỉ C55x
sẽ đánh dấu bit hiệu lực nhỏ nhất (LSB) của địa chỉ dữ liệu khi mà dữ liệu được
lưu vào bộ nhớ thành các word (2 bytes). .


3.2.2 TMS320C55X bus

3.3 Công cụ phát triển

Như mô tả trong hình 3-1, TMS320C55x có một đường bus dữ liệu
chương trình 32 bit, 5 đường bus dữ liệu 16 bit, 6 đường bus địa chỉ 24 bit. Các
bus chương trình bao gồm bus dữ liệu đọc chương trình 32 bit (PB) và 1 đường
bus địa chỉ đọc chương trình 24 bit (PAB). PAB chứa địa chỉ bộ nhớ chương
trình để đọc mã từ không gian chương trình. Đơn vị được tính của địa chỉ
chương trình được tính theo bytes, từ 0x000000 tới 0xFFFFFF. PB chuyển 4
bytes mã chương trình tới IU trong mỗi vòng đồng hồ. Các bus dữ liệu bao gồm
3 bus dữ liệu đọc dữ liệu 16 bit (BB, CB, DB), 3 bus địa chỉ đọc dữ liệu 24 bit
(BAB, CAB, DAB). Kiến trúc này hỗ trợ 3 đường đọc dữ liệu đồng thời từ bộ
nhớ dữ liệu hoặc không gian vào/ra. Các đường bus C và D có thể gửi dữ liệu tới
PU, AU và DU; trong khi đường bus B chỉ làm việc với DU. Chức năng chính
của BB là kết nối bộ nhớ tới cặp MAC; vì thế một số hoạt động đặc biệt có thể
truy cập tới cả 3 đường bus dữ liệu, chẳng hạn hai đường đọc dữ liệu và 1 đường
đọc hệ số. Các hoạt động ghi dữ liệu được thực hiện thông qua hai đường bus dữ
liệu ghi-dữ liệu 16 bit (EB, FB) và hai đường bus địa chỉ ghi-dữ liệu 24 bit
(EAB, FAB). Đối với việc ghi dữ liệu đơn 16 bit thì ta chỉ cần sử dụng EB. Việc
ghi dữ liệu 32 bit sẽ sử dụng cả hai đường EB và FB trong cùng 1 vòng chạy.
Các bus địa chỉ ghi-dữ liệu (EAB, FAB) đều có phạm vi địa chỉ 24 bit. Do việc
truy cập địa chỉ sử dụng một từ (2 bytes), nên không gian bộ nhớ dữ liệu sẽ có
phạm vi đánh địa chỉ 23 bit từ 0x000000 tới 0x7FFFFF.

3.3.1 Giới thiệu

Kiến trúc C55x được xây dựng dựa trên 12 bus này. Các bus chương trình
sẽ làm việc với các mã lệnh và các toán hạng trung gian từ bộ nhớ chương trình,
trong ghi các bus dữ liệu kết nối các đơn vị khác nhau. Kiến trúc này cực đại


[2] Nhà sản xuất các bộ xử lý DSP thường cung cấp một tập hợp các công
cụ phần mềm để người dùng có thể phát triển các phần mềm DSP hiệu quả. Các
công cụ phần mềm cơ bản bao gồm bộ hợp dịch, bộ liên kết, bộ biên dịch C, và
bộ mô phỏng. Các chương trình DSP thường được viết bằng ngôn ngữ C hoặc
hợp ngữ. Để chạy thuật toán DSP trên các hệ thống đích, các chương trình C
hoặc hợp ngữ trước hết phải được biên dịch sang mã máy, sau đó được liên kết
với nhau để tạo thành mã khả thi cho phần cứng DSP đích. Quá trình chuyển đổi
này được thực hiện thông qua công cụ phát triển, như mô tả trong hình 3-6.
3.3.2 Trình biên dịch C

Chúng ta đã biết, C là ngôn ngữ lập trình bậc cao phổ biến nhất để đánh
giá các thuật toán DSP và phát triển các phần mềm thời gian thực trong các ứng
dụng thực tiễn.
Bảng 3-1: Ví dụ về mã C và mã hợp ngữ được trình biên dịch C55x sinh ra


Mã hợp ngữ gợi nhớ

Mã hợp ngữ đại số

in_buffer[i] = sineTable[i];

mov * SP (#0), AR2

AR2 = *SP(#0)

add #_sineTable, AR2

AR2 = AR2+#_sineTable


mov *SP(#0), AR3

AR3 = *SP(#0)

add #_in_buffer, AR3

AR3 = AR3 + #_in_buffer

mov *AR2, *AR3

*AR3 = *AR2


38
Trình biên dịch C55x hỗ trợ ANSI C và các thư viện chạy của nó. Thư
viện chạy rts55.lib bao gồm các hàm hỗ trợ xử lý chuỗi, cấp phát bộ nhớ,
chuyển đổi dữ liệu, lượng giác, và tính toán lũy thừa.

39
điều khiển các vấn đề khác nhau trong quá trình xử lý hợp ngữ, như là định dạng
liệt kê tệp mã nguồn, căn chỉnh dữ liệu, nội dung các section.. Các tệp nhị phân
đối tượng chứa các khối khác nhau (gọi là các section) của các mã và dữ liệu để
có thể tải lên không gian bộ nhớ.
Các chỉ thị hợp ngữ được sử dụng để điều khiển quá trình hợp dịch và để
đưa dữ liệu vào chương trình. Nó có thể được dùng để khởi tạo bộ nhớ, định
nghĩa các biến toàn cục, thiết lập các khối hợp ngữ có điều kiện, và chuẩn bị
không gian bộ nhớ cho lệnh và dữ liệu. Một số chỉ thị hợp ngữ quan trọng của
C55x bao gồm: .BSS, .DATA, .SECT, .USET, .TEXT, .INT, .SET..
3.3.4 Trình liên kết


Trình liên kết được sử dụng để phối hợp các tệp đối tượng vào một
chương trình khả thi. Nó sẽ xử lý các tham chiếu ngoài và thực hiện việc định vị
lại mã để tạo ra mã khả thi. Trình liên kết C55x xử lý các yêu cầu khác nhau của
các tệp đối tượng và thư viện khác nhau cũng như các cấu hình bộ nhớ của hệ
thống đích.
Ta có thể đưa các tên tệp và tùy chọn vào một tệp lệnh, sau đó gọi trình
liên kết kèm theo đặc tả tên tệp lệnh. Tệp lệnh liên kết đặc biệt hữu ích khi ta
phải thường xuyên gọi trình liên kết với các thông tin giống nhau. Một đặc điểm
quan trọng khác của tệp lệnh đó là ta có thể áp dụng các chỉ thị MEMORY và
SECTION để tùy biến chương trình cho các cấu hình phần cứng khác nhau. Tệp
lệnh thường là một tệp văn bản ASCII và có thể chứa các thành phần sau:
-

Tệp đầu vào (các tệp đối tượng, thư viện..)
Tệp đầu ra (tệp ánh xạ và tệp khả thi)
Tùy chọn liên kết để điều khiển trình liên kết
Các chỉ thị MEMORY và SECTION để đặc tả cấu hình bộ nhớ đích và
thông tin để ánh xạ các section mã vào không gian bộ nhớ khác nhau.

Bảng 3-2: Ví dụ về tệp lệnh liên kết sử dụng cho bộ mô phỏng C55x

Hình 3-6:

Công cụ và Luồng phát triển phần mềm TMS320C55X

3.3.3 Trình hợp dịch

Trình hợp dịch chịu trách nhiệm biên dịch các tệp mã nguồn viết bằng
hợp ngữ đã đặc tả theo chip xử lý (dưới dạng văn bản ASCII) sang các tệp đối

tượng nhị phân COFF cho các bộ xử lý DSP. Các tệp mã nguồn có thể chứa các
chỉ thị hợp ngữ, các chỉ thị macro và các lệnh. Chỉ thị hợp ngữ được sử dụng để

/* Đặc tả ánh xạ bộ nhớ hệ thống */
MEMORY
{
RAM (RWIX)
: origin=0100h, length=01FEFFh
/* Data memory*/
RAM2 (RWIX): origin=040100h, length=040000h
/* Program memory*/
ROM (RIX)
: origin=020100h,
length=020000h
/* Program memory*/
VECS (RIX)
: origin=0FFFF00h,length=00100h
/* Reset vector*/
}
/* Đặc tả việc cấp phát section vào bộ nhớ */
SECTIONS


40

41
phức tạp. Tín hiệu thực chỉ có thể số hóa và đưa vào bộ mô phỏng như các dữ
liệu kiểm tra. Ngoài ra, thời gian chạy thuật toán đối với mọi điều kiện đầu vào
sẽ không được kiểm tra đầy đủ với bộ mô phỏng.


{
Vectors > VECS /* Bảng véc tơ ngắt */
.text
> ROM /* Mã */
.switch > RAM /* thông tin chuyển bảng */
.const
> RAM /* dữ liệu hằng số */
.cinit
> RAM2/* khởi tạo bảng */
.data
> RAM /* dữ liệu đã khởi tạo */
.bss
> RAM /* biến tĩnh và biến toàn cục */
.stack
> RAM /* stack chính */
}

Bảng 3.2 mô tả một ví dụ về tệp lệnh của trình liên kết. Phần thứ nhất sử
dụng chỉ thị MEMORY để xác định vùng bộ nhớ tồn tại vật lý ở trong phần
cứng hệ thống đích. Mỗi khối nhớ đều có tên, địa chỉ bắt đầu và độ dài khối. Địa
chỉ và độ dài sẽ tính bằng byte. Phần thứ hai là chỉ thị SECTIONS, cung cấp các
tên section khác nhau để trình liên kết tiến hành cấp phát chương trình và dữ liệu
vào trong các khối nhớ. Các thuộc tính bên trong ngoặc đơn là tùy chọn để hạn
chế truy cập vào bộ nhớ (R –có thể đọc, W –có thể ghi, X –có thể chứa mã khả
thi, I –có thể khởi tạo).
3.3.5 Code composer studio (CCS)

Khảo sát tệp
vào


SIM

Biên dịch

Gỡ rối
chương trình

EVM
XDS

Phân tích
hồ sơ
Hình 3-7:

Hiển thị đồ
họa

Khảo sát tệp
ra

DSK và EVM là các board phát triển cùng với bộ xử lý C55x. Chúng
được dùng để phân tích thời gian thực các thuật toán DSP, đánh giá logic mã, và
kiểm thử các chương trình đơn giản. XDS cho phép sử dụng các điểm dừng để
đánh giá các thanh ghi và bộ nhớ nhằm đánh giá kết quả trong thời gian thực với
DSP board. Bộ giả lập cho phép phần mềm DSP có thể chạy đầy đủ tốc độ trong
môi trường thời gian thực.
3.3.6 Cú pháp lệnh hợp ngữ

Các câu lệnh hợp ngữ TMS320C55X có thể chia thành 4 trường có thứ tự.
Biểu thức cú pháp cơ bản như sau:

[label] [:] mnemonic[operand list] [;comment]

DSK
Soạn
thảo tệp

CCS cung cấp đầy đủ cửa sổ hiển thị và các lệnh khác nhau phục vụ cho
việc gỡ rối. Ta có thể tải lên mã đối tượng khả thi, hiển thị phiên bản giải hợp
ngữ của mã cùng với mã nguồn ban đầu, và xem nội dung các thanh ghi và bộ
nhớ. Dữ liệu trong thanh ghi và bộ nhớ có thể chỉnh sửa được. Dữ liệu được
hiển thị dưới dạng mã hex, số thập phân, hoặc dấu chấm động. Chương trình có
thể chạy từng bước, chạy tới con trỏ, hoặc chạy theo các điểm dừng.

Trong đó, các thành phần bên trong ngoặc [] là không bắt buộc. Câu lệnh
phải bắt đầu bằng một nhãn (label), dấu trống (blank), dấu sao (*), hoặc dấu
chấm phẩy (;). Mỗi trường phải phân tách bởi ít nhất một dấu cách.
my_symbol

.set

2

; my_sumbol = 2

start

mov

#my_symbol, AR1


; Load AR1 with 2

DSP board

Phát triển phần mềm TMS320C55X với CCS

Hình 3-7 mô tả công cụ soạn thảo mã CCS, nó cung cấp giao diện người
dùng với bộ mô phỏng C55x (SIM), bộ kit DSP đơn giản (DSK), mô-đun đánh
giá (EVM), hoặc bộ giả lập trong mạch (XDS). CCS hỗ trợ cả chương trình C
lẫn chương trình hợp ngữ. Do mọi hàm của TMS320C55X đều chạy trên máy
tính chủ, nên việc mô phỏng có thể rất chậm, đặc biệt đối với các ứng dụng DSP

Nhãn

Từ gợi nhớ

Toán hạng

Ghi chú

Label

mnemonic

operand

comment

Hình 3-8:


Ví dụ về lệnh hợp ngữ của TMS320C55X

+ Trường label: trường này có thể lên tới 32 ký tự chữ và số (A-Z, a-z, 09, _, $). Nó liên kết một địa chỉ biểu tượng với một vị trí trong chương trình duy


×