1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

43 586 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 1,66 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

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

Hà Nội - 2014

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 2

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

Trang 3

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

Trang 4

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

AbS Analysis-by-synthesis Phân tích bằng cách tổng hợp ACELP Algebraic code-excited linear prediction Dự đoán tuyến tính mã kích thích đại số ACR Absolute category rating Tỉ lệ phân loại tuyệt đối

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

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-excited linear prediction

Dự đoán tuyến tính mã kích thích đại số cấu trúc liên hợp

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 code-excited linear prediction Dự đoán tuyến tính mã kích thích trễ thấp LMS Least mean square Bình phương trung bình tối thiểu

Trang 5

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 Multipulse–maximum likelihood quantization Chuẩn hóa dạng tối đại đa xung

MSE 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 Perceptual evaluation of speech quality Đánh giá cảm nhận về chất lượng thoại

PSQM Perceptual speech quality measure Đo đạc chất lượng thoại

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

QCELP

Qualcomm code-excited linear

prediction 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

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

prediction Dự đoán tuyến tính kích thích tổng vec-tơ

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

Trang 6

2

- 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

3 Đố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

- 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

4 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

- 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

- 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

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

Phụ Lục: Mô hình LPC và Lượng tử hóa véc-tơ nhiều lớp

Trang 7

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:

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ự

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

Tín hiệu vào (128kbps)

Dòng bit đã mã hóa (<128kbps)

Tín hiệu ra (128kbps)

Trang 8

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

bit-rate 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.3 Trễ nén

Hình 1-3: 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

Tín hiệu vào

Dòng bit

Trễ

Đo thời gian Tiếng nói tổng hợp

Trang 9

8

Hình 1-4: 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

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

Khung

đầu vào

bộ đệm Mã hóa

Truyền tải bit Giải mã

Khung đầu ra

Trễ mã hóa

Thời gian Trễ bộ đệm

mã hóa

Trễ xử lý mã

hóa

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

Trễ xử lý giải mã

Thời gian Trễ bộ đệm mã hóa

Thời gian

Số lượng bit

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ã

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

Trang 10

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

Hình 2-1: 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

Bộ tạo

chuỗi

xung

Lọc tạo xung

Lọc tạo hình xung

Tạo nhiễu trắng

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

Lọc tổng hợp

Đáp ứng xung

Hệ số lọc Gain

Tiếng nói

+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

Trang 11

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

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

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

Hình 2-3: Mô hình tính toán và lượng tử hóa biên độ Fourier

Lọc tạo xung Chuỗi

xung

Đáp ứng xung

Chuỗi xung

Mã hóa

VQ

Chuẩn hóa

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

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:

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:

Trang 12

14 được 10 giá trị độ lớn mong muốn Như vậy, Fourier magnitudes là những đỉnh

giá trị độ lớn của 10 hài lân cận tần số pitch

Chuỗi biên độ Fourier Fmag[i] được chuẩn hóa theo công thức:

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

Hình 2-4: 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]

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:

Giải mã

VQ

Mở rộng

Mở rộng đối xứng

Chuẩn hóa Dịch vòng Pitch period

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

Trang 13

16

  5  

1

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

5 1

- 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

Trang 14

18

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)

[0, , ][ ]

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)

Quá khứ Hiện tại Tương lai

Gain

đỉnh

Biên độ Fourier Sai số dự đoán

Ước lượng Pitch period

Khung tín hiệu

180

19

Hình 2-7: 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:

+ Giá trị tương quan c[0,T+1,T] và 1,T] được tính toán Nếu 1,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

c[0,T-và T+1

+ Tính toán giá trị thập phân của Pitch period:

[0, 1, ] [ , , ] [0, , ] [ , 1, ][0, 1, ]( [ , , ] [ , 1, ]) [0, , ]( [ 1, 1, ] [ , 1, ])

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

1

Ước lượng

Pitch period

Quyết định cờ Aperiodic af

vs 1(1)

T (1)

r[T (1)]

Trang 15

20

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

(1)

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:

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

Hình 2-8: 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 (1)

1 [T ]

r r , 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 (1)

2 [T ]

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

Tự tương quan

vs 2,3,4,5

Pitch period T (1)

Bộ so sánh

Tự tương quan

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

2.4.7 Phân tích LP và sai số dự đoá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ổ mẫ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:

160-79 280 79 80

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

Trang 16

22

Hình 2-9: Một số tín hiệu và giá trị đỉnh của nó

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

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

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

Trang 17

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

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ả

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:

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

2 10

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

Trang 18

26

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(g 1 , g 2 , g 2,past )

1 if| g2 - g 2,past| < 5 and | g1 - (g 2 + g 2,past )/2 |< 3

2 index = 0

3 else

4 gmax = MAX(g 2,past , g 2 ) + 6

5 gmin = MIN(g 2,past g 2 ) - 6

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

27

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

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

Trang 19

28

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

0 (1 * )

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

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,

29

0 [0 ,1 7 9 ]

n  , 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:

0 / 1 8 0

n

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:

(1 ) p a s 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:

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

i i

Trang 20

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:

/20 0

2

101[ ]

g

n

g

y n T

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

31 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 bit-rate 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

Trang 21

32

Chương 3 - 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

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,

Ngày đăng: 04/08/2016, 15:36

HÌNH ẢNH LIÊN QUAN

Hình 1-5:  Đồ thị mẫu truyền bit ở hai chế độ liên tục (trên) và gói (dưới) - 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
Hình 1 5: Đồ thị mẫu truyền bit ở hai chế độ liên tục (trên) và gói (dưới) (Trang 9)
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 - 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
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 (Trang 10)
Hình 2-5:  Sơ đồ bộ lọc tạo hình xung - 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
Hình 2 5: Sơ đồ bộ lọc tạo hình xung (Trang 13)
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 - 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
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 (Trang 14)
Hình 2-9:  Một số tín hiệu và giá trị đỉnh của nó - 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
Hình 2 9: Một số tín hiệu và giá trị đỉnh của nó (Trang 16)
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ô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ảng 2 1 tổng kết sơ đồ cấp phát bit của mã hóa FS MELP. Ta đã biết, (Trang 18)
Hình 2-13:  Mô hình giải mã MELP - 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
Hình 2 13: Mô hình giải mã MELP (Trang 19)
Hình 3-1:  Sơ đồ khối của CPU TMS320C55x  3.2.1  Kiến trúc tổng thể - 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
Hình 3 1: Sơ đồ khối của CPU TMS320C55x 3.2.1 Kiến trúc tổng thể (Trang 21)
Hình 3-3:  Mô hình đơn giản hóa của PU - 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
Hình 3 3: Mô hình đơn giản hóa của PU (Trang 22)
Hình 3-6:  Công cụ và Luồng phát triển phần mềm TMS320C55X - 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
Hình 3 6: Công cụ và Luồng phát triển phần mềm TMS320C55X (Trang 24)
Hình 3-9:  Sơ đồ hoạt động của đường ống C55x - 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
Hình 3 9: Sơ đồ hoạt động của đường ống C55x (Trang 28)
Bảng 3-4: Sử dụng và duy trì thanh ghi - 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ảng 3 4: Sử dụng và duy trì thanh ghi (Trang 30)
Bảng dưới đây liệt kê một số tên tệp và mô tả chức năng chủ  yếu của chúng - 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ảng d ưới đây liệt kê một số tên tệp và mô tả chức năng chủ yếu của chúng (Trang 31)
Hình 4-4:  Tệp Vn_M gốc và qua xử lý của C55x MELP - 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
Hình 4 4: Tệp Vn_M gốc và qua xử lý của C55x MELP (Trang 36)
Hình A-2:  Mã hóa (trên) và giải mã (dưới) MSVQ - 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
nh A-2: Mã hóa (trên) và giải mã (dưới) MSVQ (Trang 41)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w