ĐẠ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
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
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ự đoán tuyến tính LPC .................................................... i
B.
Thuật toá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 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
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 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
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ự đoá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ự đoán tuyến tính mã kích thích
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
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ự đ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
LP
Linear prediction
Dự đoán tuyến tính
LPC
Linear prediction coding/coefficient Mã hóa dự đoá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ự đoán
linear Dự đoán tuyến tính kích thích mã
Qualcomm
linear Dự đoá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 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
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 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
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à 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:
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 toán phải thấp.
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
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 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
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 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.
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ì 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
[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 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
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 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.
+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.
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
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
Đá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 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
- Xem thêm -