You are on page 1of 87

Chương 1 Tổng quan về tiếng nói và xử lý tiếng nói.........................................................

3
1.1 Tiếng nói và đặc điểm của tiếng nói.................................................................3
1.1.1 Đặc tính vật lý của âm thanh....................................................................4
1.1.1.1 Độ cao (Pitch).......................................................................................4
1.1.1.2 Cường độ..............................................................................................4
1.1.1.3 Trường độ.............................................................................................5
1.1.1.4 Âm sắc..................................................................................................5
1.1.2 Đặc tính âm học của âm thanh..................................................................5
1.1.2.1 Nguyên âm............................................................................................5
1.1.2.2 Phụ âm..................................................................................................6
1.1.2.3 Tỷ suất thời gian...................................................................................6
1.1.2.4 Hàm năng lượng thời gian ngắn............................................................6
1.1.2.5 Tần số vượt qua điểm không.................................................................7
1.1.2.6 Phát hiện điểm cuối...............................................................................7
1.1.2.7 Tần số cơ bản........................................................................................8
1.1.2.8 Formant.................................................................................................9
1.1.3 Phân loại đơn giản dạng sóng tiếng nói:.................................................10
1.1.4 Bộ máy phát âm và cơ chế phát âm........................................................11
1.1.4.1 Bộ máy phát âm..................................................................................11
1.1.4.2 Cơ chế phát âm....................................................................................11
1.2 Một số kiến thức chung về xử lý tín hiệu rời rạc............................................12
1.2.1 Mô hình hệ xử lý tín hiệu rời rạc................................................................12
1.2.2 Phép biến đổi Z..........................................................................................14
1.3 Mô hình tạo tiếng nói.....................................................................................15
1.4 Biểu diễn số tiếng nói....................................................................................18
1.4.1 Xác định tần số lấy mẫu tín hiệu tiếng nói...........................................20
1.4.2 Lượng tử hoá..........................................................................................21
1.4.3 Nén tín hiệu tiếng nói............................................................................21
1.5 Tổng quan về mã hoá tiếng nói......................................................................22
1.5.1 Mã hóa dạng sóng...................................................................................23
1.5.2 Mã hoá nguồn.........................................................................................26
1.5.3 Mã hoá lai...............................................................................................27
1.6 Tổng quan về tổng hợp tiếng nói....................................................................28
1.6.1 Giới thiệu chung.....................................................................................28
1.6.2 Các mô hình tổng hợp tiếng nói..............................................................29
1.6.2.1 Tổng hợp formant...............................................................................29
1.6.2.2 Tổng hợp LPC.....................................................................................30
1.6.2.3 Tổng hợp dùng mô phỏng bộ máy phát âm.........................................31
Chương 2 Ứng dụng của LPC trong xử lý tiếng nói.........................................................32
1. Phương pháp dự đoán tuyến tính trong xử lý tiếng nói............................................32
a, Phương pháp tự tương quan..............................................................................36
b, Phương pháp covariance..................................................................................37
1.1.2 Xác định hệ số khuyếch đại.............................................................................39

1
1.1.3 Xác định hệ số tiên đoán tuyến tính.................................................................41
a, Phương pháp covariance...................................................................................41
b, Phương pháp tự tương quan.............................................................................44
2. Ứng dụng LPC trong phân tích tiếng nói..................................................................45
2.1 Dò tìm formant...............................................................................................45
2.2 Dùng bộ lọc đảo để tìm F0.............................................................................47
3. Tổng hợp tiếng nói...................................................................................................49
3.1 Giới thiệu...........................................................................................................49
3.2 Cơ sở lý thuyết...............................................................................................49
3.2.1 Mô hình vật lý........................................................................................49
3.2.2 Mô hình toán học....................................................................................50
3.2.3 Mô hình phân tích và tổng hợp LPC.......................................................53
3.3 Xây dựng mô hình.........................................................................................61
3.3.1 Khối phân tích LPC................................................................................62
3.3.2 Khối tổng hợp LPC.................................................................................64
3.4 Chuẩn LPC 10e..............................................................................................65
3.4.1 Giới thiệu................................................................................................65
3.4.2 Xây dựng mô hình..................................................................................66
Chương 3 Xây dựng chương trình....................................................................................74

2
Lời nói đầu

Trong thời đại ngày nay, cùng với sự phát triển mạnh mẽ của khoa học kỹ thuật thì
vấn đề trao đổi thông tin đa phương tiện ngày càng trở nên cần thiết, từ lúc đầu chỉ
giao tiếp, tương tác thông qua các văn bản giấy tờ, ngày nay nhu cầu sử dụng tiếng
nói trong truyền thông, tương tác người máy càng trở nên cấp thiết hơn. Vì vậy mà
một lĩnh vực kỹ thuật mới đã ra đời, đó là xử lý tiếng nói.
Mặc dù mới nhưng xử lý tiếng nói đã đạt được những thành tựu đáng kể. Các ứng
dụng của xử lý tiếng nói đã và đang được áp dụng trong rất nhiều lĩnh vực khác nhau
trong xã hội như nhận dạng, tổng hợp tiếng nói, tương tác người máy, truyền thông,
dạy học, ….Nhờ có xử lý tiếng nói mà con người có thể tạo ra những máy móc thông
minh hơn, có khả năng hiểu được tiếng nói con người và có thể giao tiếp với con
người thông qua lời nói.
Một trong những phương pháp được ứng dụng rất nhiều trong lĩnh vực xử lý tiếng nói
đó là phương pháp mã hóa dự đoán tính (LPC). Phương pháp LPC được sử dụng
trong các phân tích tiếng nói, mã hóa tiếng nói, tổng hợp tiếng nói… Do vậy tôi đã
chọn đề tài là “Tìm hiểu về phương pháp LPC trong xử lý tiếng nói”.

Nội dung của đồ án này gồm có ba chương


Chương 1: Tổng quan về tiếng nói và xử lý tiếng nói
Chương này sẽ nêu một cách tổng quan về những vấn đề liên quan đến
tiếng nói và xử lý tiếng nói:
 Giới thiệu về tiếng nói, các đặc trưng và cơ chế tạo tiếng nói của con
người.
 Giới thiệu tổng quan về đặc điểm, hoạt động và một số phép biến đổi
của một hệ xử lý tín hiệu chung.
 Các phương pháp trong xử lý tiếng nói như: tổng hợp tiếng nói, mã
hóa tiếng nói, phân tích tiếng nói.

3
Chương 2: Ứng dụng của LPC trong xử lý tiếng nói
Chương này sẽ đề cập tới phương pháp LPC trong xử lý tiếng nói.
 Trình bày cơ sở của phương pháp LPC
 Ứng dụng của LPC trong phân tích tiếng nói
 Mô hình tổng hợp tiếng nói LPC

Chương 3: Xây dựng chương trình


Chương này giới thiệu về chương trình đã được xây dựng, các kết quả đạt
được và nêu ra nhận xét.

Kết luận: Khái quát những kết quả đạt được. Định hướng phát triển tiếp.

4
Chương 1 Tổng quan về tiếng nói và xử lý tiếng nói

1. Tiếng nói và đặc điểm của tiếng nói

Tiếng nói là một trong những phương tiện trao đổi thông tin của con người. Tiếng nói
được tạo ra từ tư duy của con người dưới sự chỉ đạo của trung khu thần kinh, mệnh lệnh
phát sinh tiếng nói được phát ra và hệ thống phát âm thực hiện nhiệm vụ tạo âm thanh.
Tiếng nói mà con người vẫn giao tiếp hàng ngày có bản chất là sóng âm thanh lan truyền
trong không khí. Sóng âm thanh trong không khí là sóng dọc sinh ra do sự dãn nở của
không khí. Tín hiệu âm thanh là tín hiệu biến thiên liên tục về thời gian và biên độ, có dải
tần số rất rộng. Tuy nhiên tai người chỉ có thể nhận biết được các sóng âm có tần số trong
khoảng 20 - 20000 (Hz). Những sóng âm có tần số lớn hơn 20000 Hz gọi là sóng siêu
âm. Những sóng có tần số nhỏ hơn 20 Hz gọi là sóng hạ âm. Thực tế người ta có thể hạn
chế dải tần số của tín hiệu tiếng nói trong khoảng từ 300 đến 3500 Hz. Do đó, quá trình
phân tích cũng như tổng hợp tiếng nói chỉ cần dùng một số nhất định các tham số cũng đủ
để biểu diễn tín hiệu tiếng nói mà não người xử lý.

Hình 1.1 Mô phỏng quá trình truyền tiếng nói trong không khí

Về bản chất vật lí, sóng âm, sóng siêu âm, sóng hạ âm không khác gì nhau và cũng như
các sóng cơ học khác. Sự phân biệt như trên là dựa vào khả năng cảm thụ các sóng cơ
học của tai con người, do các đặc tính sinh lí của tai người quyết định. Vì vậy sóng âm
thanh được phân biệt hai loại đặc tính là đặc tính vật lý và đặc tính âm học.

5
1.1 Đặc tính vật lý của âm thanh
Bản chất âm thanh tiếng nói là sóng cơ học nên có các tính chất cơ bản của sóng cơ học.
Các tính chất của sóng cơ học mang một ý nghĩa khác khi xét trên góc độ là âm thanh
tiếng nói.
Tín hiệu âm thanh tiếng nói là một tín hiệu ngẫu nhiên không dừng, tuy nhiên những đặc
tính của nó tương đối ổn định trong những khoảng thời gian ngắn (vài chục mili giây).
Trong khoảng thời gian nhỏ đó tín hiệu gần tuần hoàn, có thể coi như tuần hoàn.

a, Độ cao (Pitch)
Độ cao hay còn gọi là độ trầm bổng của âm thanh chính là tần số của sóng cơ học. Âm
thanh nào phát ra cũng ở một độ cao nhất định. Độ trầm bổng của âm thanh phụ thuộc
vào sự chấn động nhanh hay chậm của các phần tử trong không khí trong một đơn vị thời
gian nhất định. Nói cách khác, độ cao của âm phụ thuộc vào tần số dao động. Đối với
tiếng nói, tần số dao động của dây thanh quy định độ cao giọng nói của con người và mỗi
người có một độ cao giọng nói khác nhau.
Độ cao của nữ giới thường cao hơn so với nam giới và độ cao tiếng nói của trẻ em cao
hơn so với nữ giới, điều này cũng tương tự đối với tần số của dây thanh.

b, Cường độ
Cường độ chính là độ to nhỏ của âm thanh, cường độ càng lớn thì âm thanh có thể truyền
đi càng xa trong môi trường có nhiễu. Nếu xét trên góc độ sóng cơ học thì cường độ
chính là biên độ của dao động sóng âm, nó quyết định cho năng lượng của sóng âm.
Trong tiếng nói, cường độ của nguyên âm phát ra thường lớn hơn phụ âm. Do vậy chúng
ta thường dễ phát hiện ra nguyên âm hơn so với phụ âm. Tuy nhiên đối với tai người giá
trị tuyệt đối của cường độ âm I không quan trọng bằng giá trị tỉ đối của I so với một giá
trị I0 nào đó chọn làm chuẩn. Người ta định nghĩa mức cường độ âm L là logarit thập
phân của tỉ số I/I0: (đơn vị mức cường độ là Ben - kí hiệu B)

6
I
L ( B )  lg
I0

c, Trường độ
Trường độ hay độ dài của âm phụ thuộc vào sự chấn động lâu hay nhanh của các phần tử
không khí. Cùng một âm nhưng trong các từ khác nhau thì độ dài khác nhau.

d, Âm sắc
Âm sắc là bản sắc, sắc thái riêng của một âm, cùng một nội dung, cùng một độ cao nhưng
khi nói mỗi người đều có âm sắc khác nhau.

1.2 Đặc tính âm học của âm thanh


Tín hiệu tiếng nói là tín hiệu tương tự biểu diễn cho thông tin về mặt ngôn ngữ và được
mô tả bởi các âm vị khác nhau. Tuỳ theo từng ngôn ngữ cụ thể mà số lượng các âm vị
nhiều hay ít. Thông thường số lượng các âm vị vào khoảng 20 – 30 và nhỏ hơn 50 đối với
mọi ngôn ngữ. Đối với từng loại âm vị mà có các đặc tính âm thanh khác nhau. Các âm vị
được chia thành hai loại nguyên âm và phụ âm. Tổ hợp các âm vị tạo nên âm tiết. Âm tiết
đóng vai trò một từ trọn vẹn mang ngữ nghĩa.

a, Nguyên âm
Nguyên âm được tạo ra bằng sự cộng hưởng của dây thanh khi dòng khí được thanh môn
đẩy lên. Khoang miệng được tạo lập thành nhiều hình dạng nhất định tạo thành các
nguyên âm khác nhau. Số lượng các nguyên âm phụ thuộc vào từng ngôn ngữ nhất định.
Mỗt nguyên âm được đặc trưng bởi 3 formant đầu tiên, các formant tiếp theo thường thì ít
mang thông tin hơn.

b, Phụ âm
Phụ âm được tạo ra bởi các dòng khí hỗn loạn được phát ra gần những điểm co thắt của
đường dẫn âm thanh do cách phát âm tạo thành. Dòng không khí tại chỗ đóng của vòm

7
miệng tạo ra phụ âm tắc. Những phụ âm xát được phát ra từ chỗ co thắt lớn nhất và các
âm tắc xát tạo ra từ khoảng giữa. Phụ âm có đặc tính hữu thanh và vô thanh tuỳ thuộc
việc dây thanh có dao động để tạo thành cộng hưởng không. Đặc tính của phụ âm tuỳ
thuộc vào tính chu kỳ của dạng sóng, phổ tần số, thời gian tồn tại và sự truyền dẫn âm.

c, Tỷ suất thời gian


Trong khi nói chuyện, khoảng nói chuyện và khoảng nghỉ xen kẽ nhau. Phần trăm thời
gian nói trên tổng số thời gian nói và nghỉ được gọi là tỷ xuất thời gian. Giá trị này biến
đổi tuỳ thuộc vào tốc độ nói và từ đó ta có thể phân loại thành nói nhanh, nói chậm hay
nói bình thường.

d, Hàm năng lượng thời gian ngắn


Hàm năng lượng thời gian ngắn của tiếng nói được tính bằng cách chia tín hiệu tiếng nói
thành nhiều khung chứa N mẫu và tính diện tích trung bình tổng các mẫu tín hiệu trong
mỗi khung. Các khung này được đưa qua một cửa sổ có dạng hàm như sau:

W  n Với 0  n  N
W n    Với n  N

0
Thông thường có ba dạng cửa sổ được sử dụng đó là cửa sổ chữ nhật, cửa sổ Hamming
và cửa sổ Hanning.
Cửa sổ chữ nhật:
1 Với 0  n  N
W(n)  
0 Với n  N

Cửa sổ Hamming :
0.54  0.46 cos( n) Với1  n  N
W ( n)  
0 Với n  N

Cửa sổ Hanning:

8
0.5  0.5 cos( n) Với 1 n  N
W ( n)  
0 Với n  N

Hàm năng lượng ngắn tại mẫu thứ m được tính theo công thức sau :
N 1
E m    x  n  m   W  n 
2

n0

Hàm năng lượng thời gian ngắn của âm hữu thanh thường lớn hơn so với âm vô thanh.

e, Tần số vượt qua điểm không.


Tần suất vượt qua điểm không là số lần biên độ tín hiệu tiếng nói vượt qua giá trị không
trong một khoảng thời gian cho trước. Thông thường giá trị này đối với âm vô thanh lớn
hơn âm hữu thanh do đặc tính ngẫu nhiên của âm vô thanh. Do đo tần suất vượt qua điểm
không là tham số quan trọng để phân loại âm hữu thanh và âm vô thanh.

f, Phát hiện điểm cuối.


Trong xử lý tiếng nói việc xác định khi nào bắt đầu xuất hiện tín hiệu tiếng nói và khi nào
kết thúc quá trình nói rất cần thiết và quan trọng. Trong một môi trường nhiều tiếng ồn
(nhiễu ) hoặc môi trường nhiều người nói thì việc phát hiện điểm kết thúc rất khó khăn.
Có rất nhiều phương pháp để phát hiện điểm cuối của tiếng nói. Ví dụ như một phương
pháp đơn giản sau :
Lấy một mẫu nhỏ của nền nhiễu trong khoảng thời gian yên lặng trước khi bắt đầu nói.
Sử dụng hàm năng lượng thời gian ngắn để tính năng lượng cho mẫu. Ngưỡng của tiếng
nói được chọn là giá trị giữa năng lượng yên tĩnh và năng lượng đỉnh. Ban đầu giả thiết
điểm cuối xuất hiện tại điểm năng lượng tín hiệu vượt quá mức ngưỡng. Để tính đúng
ước lượng này, người ta giả thiết và so sánh chúng với giá trị đó trong vùng yên tĩnh. Khi
những thay đổi phát hiện được trong khi tính toán tần suất trên suất hiện ở ngoài ngưỡng
giả thiết thì điểm cuối được giả thiết lại tại điểm mà sự thay đổi xảy ra.

9
g, Tần số cơ bản
Dạng sóng của tiếng nói gồm hai phần: Phần gần giống nhiễu trong đó biên độ biến đổi
ngẫu nhiên và phần tuần hoàn. Phần tín hiệu có tính chu kỳ chứa các thành phần tần số có
dạng điều hòa. Tần số thấp nhất chính là tần số cơ bản và cũng chính là tần số dao động
của dây dây thanh.
Đối với những người nói khác nhau, tần số cơ bản cũng khác nhau. Tần số cơ bản của trẻ
em thường cao hơn so với người lớn và của nữ giới cao hơn so với nam giới, Sau đây là
một số giá trị tần số cơ bản tương ứng với giới tính và tuổi:

Người nói Giá trị tần số cơ bản

Nam giới 80 – 200 Hz


Nữ giới 150 – 450 Hz
Trẻ em 200 – 600 Hz

Đối với hai âm có cùng cường độ, cùng độ cao sẽ được phân biệt bởi tính tuần hoàn. Một
âm hữu thanh có tín hiệu gần như tuần hoàn khi được phân tích phổ sẽ xuất hiện một
vạch tại vùng tần số rất thấp. Vạch này đặc trưng cho tính tuần hoàn cơ bản của âm hay
đó chính là tần số cơ bản của âm. Trong giao tiếp bình thường tần số cơ bản thay đổi liên
tục tạo nên ngữ điệu cho tiếng nói.
Hình dưới mô tả tín hiệu trên miền thời gian và phổ của chúng (trên miền tần số) của các
nguyên âm a, i, u. đỉnh đầu tiên của các phổ tương ứng với tần số cơ bản F0.

10
Hình 1.2 Tín hiệu và phổ của tín hiệu

h, Formant
Trong phổ tần số của tín hiệu tiếng nói, mỗi đỉnh có biên độ cao nhất xét trong một
khoảng nào đó (còn gọi là cực trị địa phương) xác định một formant. Ngoài tần số,
formant còn được xác định bởi biên độ và dải thông của chúng. Về mặt vật lý các tần số
formant tương ứng với các tần số cộng hưởng của tuyến âm. Trong xử lý tiếng nói và
nhất là trong tổng hợp tiếng nói để mô phỏng lại tuyến âm người ta phải xác định được
các tham số formant đối với từng loại âm vị, do đó việc đánh giá, ước lượng các formant
có ý nghĩa rất quan trọng.
Tần số formant biến đổi trong một khoảng rộng phụ thuộc vào giới tính của người nói và
phụ thuộc vào các dạng âm vị tương ứng với formant đó. Đồng thời, formant còn phụ
thuộc các âm vị trước và sau đó. Về cấu trúc tự nhiên, tần số formant có liên hệ chặt chẽ
với hình dạnh và kích thước tuyến âm. Thông thường trong phổ tần số của tín hiệu có
khoảng 6 formant nhưng chỉ có 3 formant đầu tiên ảnh hưởng quan trọng đến các đặc tính
của các âm vị, còn các formant còn lại cũng có ảnh hưởng song rất ít. Các formant có giá
trị tần số xê dịch từ vài trăm đến vài nghìn Hz.
Tần số formant đặc trưng cho các nguyên âm biến đổi tuỳ thuộc vào người nói trong điều
kiện phát âm nhất định. Mặc dù phạm vi của các tần số formant tương ứng với mỗi
nguyên âm có thể trùng lên nhau nhưng vị trí giữa các formant đó không đổi vì sự xê dịch
của các formant là song song.
Ngoài formant, các âm mũi còn có các tần số bị suy giảm gọi là phản formant (anti-
formant). Phản formant được tạo nên khi luồng khí đi qua khoang mũi. Các formant

11
tương ứng nói các điểm cực của hàm truyền đạt vì tại lân cận điểm cực giá trị hàm truyền
đạt là rất lớn, tương tự vậy các anti-formant tương ứng với các điểm không của hàm
truyền đạt.

1.3 Phân loại đơn giản dạng sóng tiếng nói:


Tiếng nói của con người tạo ra bao gồm có hai thành phần đó là:
 Phần gần tuần hoàn mà hầu như lặp lại cùng chu kỳ được gọi là tiếng
nói hữu thanh (voiced speech). Chu kỳ lặp lại đó gọi là chu kì cơ bản T 0 nghịch đảo của
T0 là tần số cơ bản F0. Âm hữu thanh được phát ra bởi một luồng khí cực mạnh từ thanh
môn thổi qua dây thanh làm dung dây thanh, sự dao động của dây thanh tạo nên nguồn
tuần hoàn. Nguồn tuần hoàn kích thích tuyến âm tạo nên âm hữu thanh. Vùng âm hữu
thanh chiếm thành phần chủ yếu của sóng tiếng nói, chứa đựng lượng tin nhiều nhất và
thời gian lớn nhất trong quá trình nói.
 Phần tín hiệu có dạng giống như tập âm nhiễu có biên độ ngẫu nhiên
còn được gọi là tiếng nói vô thanh (unvoiced speech). Tiếng nói vô thanh được tạo ra do
sự co thắt theo một dạng nào đó của tuyến âm và luồng khí chạy qua chỗ thắt với tộc độ
lớn tạo nên nhiễu loạn, ví dụ như lúc ta nói thì thào (cần phân biệt thì thầm với thì thào,
theo từ điển tiếng Việt thì thào là nói chuyện với nhau rất nhỏ tựa như gió thoảng qua tai
còn thì thầm là nói chuyện với nhau không để người ngoài nghe thấy). Năng lượng do
nguồn nhiễu loạn tạo ra sẽ kích thích tuyến âm tạo nên tiếng nói vô thanh, năng lượng
của tiếng nói vô thanh nhỏ hơn so với tiếng nói hữu thanh.
Ta có thể phát hiện ra tiếng nói hữu thanh là khi nói dây thanh rung. Còn âm vô thanh khi
nói dây thanh không rung. Nói thì thào thì ở xa không nghe được do năng lượng của âm
vô thanh rất nhỏ và tiếng thì thào là do âm vô thanh tạo nên.

12
1.4 Bộ máy phát âm và cơ chế phát âm
a, Bộ máy phát âm
1. Hốc mũi
2. Vòm miệng trên
3. Ổ răng
4. Vòm miệng mềm
5. Đầu lưỡi
6. Thân lưỡi
7. Lưỡi gà
8. Cơ miệng
9. Yết hầu
10. Nắp đóng của thanh quản
11. Dây thanh giả
12. Dây thanh
13. Thanh quản
14. Thực quản
15. Khí quản

Hình 1.3 Bộ máy phát âm của con người

b, Cơ chế phát âm
Hình 1.3 mô tả bộ máy phát âm của con người. Nguồn năng lượng chính nằm ở thanh
môn, Tuyến âm sẽ được kích thích bởi nguồn năng lượng chính tại thanh môn. Tiếng nói
được tạo ra sóng âm học do kích thích từ thanh môn phát ra đẩy không khí có trong phổi
lên tạo thành dòng khí va chạm vào hai dây thanh trong tuyến âm. Hai dây thanh dao
động sẽ tạo ra cộng hưởng, dao động âm sẽ được lan truyền theo tuyến âm (tính từ tuyến
âm đến khoang miệng) và sau khi đi qua khoang mũi, môi sẽ tạo ra tiếng nói.
- Thanh quản chứa hai dây thanh có thể dao động tạo ra sự cộng hưởng đầu tiên
của quá trình tạo thành âm thanh.
- Ống dẫn âm là một ống không đồng dạng bắt đầu từ môi, kết thúc bởi dây
thanh hoặc thanh quản. Ống có độ dài khoảng 17cm đối với người bình thường.

13
- Khoang mũi cũng là ống không đồng dạng thuộc vùng cố định bắt đầu từ mũi,
kết thục tại vòm miệng, đối với người bình thường khoang mũi có độ dài 12 cm.
- Khoang miệng là các nếp da chuyển động có thể điều khiển sự ghép âm thanh
giữa khoang miệng và khoang mũi.

Hình 1.4 Mô tả dây thanh âm

Trong quá trình phát âm, nếu là âm mũi thì vòm miệng hạ thấp và dòng khí chỉ đi qua
đường mũi, nếu là âm thường thì vòm miệng mở, đường mũi khép lại và dòng khí đi theo
khoang miệng ra môi.

2. Một số kiến thức chung về xử lý tín hiệu rời rạc


2.1 Mô hình hệ xử lý tín hiệu rời rạc
Một hệ xử lý tín hiệu sẽ xác lập mối quan hệ nhân quả giữa tín hiệu vào và tín hiệu ra. Ta
có thể biểu diễn hệ xử lý bằng mô hình toán học thông qua một phép biến đổi hay một
toán tử T nào đó. Tín hiệu vào x(n) được gọi là tác động, còn tín hiệu ra y(n) được gọi là
đáp ứng của hệ xử lý. Mối quan hệ giữa tín hiệu vào và tín hiệu ra của hệ có thể được
biểu diễn như sau:

14
y(n) = T[x(n)]
x(n) y(n)
T[]
Tác động Đáp ứng

Hình 1.5 Mô hình hệ xử lý biến đổi tín hiệu vào x(n) thành tín hiệu ra y(n)

Các hệ xử lý phân thành 2 loại là hệ tuyến tính và hệ phi tuyến. Một hệ thống được gọi là
tuyến tính nếu nó thoả mãn nguyên lý xếp chồng, tức là thoả mãn 2 tính chất sau:

Tính tỷ lệ:
T[a.x(n)] = a.T[x(n)] = a.y(n)
Tính tổ hợp:
T[x1(n)+x2(n)] = T[x1(n)] + T[x2(n)] = y1(n) + y2(n)
Các hệ tuyến tính có một ý nghĩa đặc biệt trong phân tích và xử lý, vì nó giúp ta đưa việc
xử lý một hệ phức tạp về việc xử lý các hệ đơn giản, sau đó ta chỉ việc tổng hợp lại kết
quả. Vì thế ngay cả các hệ phi tuyến nhiều khi cũng được xấp xỉ thành các hệ tuyến tính
để tiện cho việc xử lý.
Các hệ tuyến tính cũng được phân thành 2 loại là tuyến tính bất biến và tuyến tính thay
đổi theo thời gian. Trong xử lý tín hiệu thường chúng ta chỉ quan tâm đến các hệ tuyến
tính bất biến. Một hệ tuyến tính được gọi là bất biến theo thời gian nếu đáp ứng của hệ
đối với tác động x(n) thì đáp ứng của hệ đối với tác động x(n-k) sẽ là y(n-k).
Các hệ tuyến tính bất biến được đặc trưng hoàn toàn bằng đáp ứng xung h(n) (là đáp ứng
ra ứng với tác động vào là xung Dirac  (n) ). Nếu biết h(n) ta hoàn toàn có thể tính được
đáp ứng y(n) của tín hiệu vào x(n):

y ( n )  h( n ) * x ( n)   x ( k ) . h( n  k )
k  

15
Trong xử lý tín hiệu tiếng nói, các hệ thống mà chúng ta quan tâm đều là hệ tuyến tính
bất biến, do đó chúng ta có thể áp dụng các tính chất, kết quả của hệ tuyến tính bất biến
để áp dụng vào việc khảo sát phân tích tín hiệu tiếng nói.

2.2 Phép biến đổi Z


Đối với tín hiệu rời rạc, phép biến đổi Z là một công cụ mạnh phục vụ cho việc phân tích
và xử lý tín hiệu. Phép biến đổi Z của tín hiệu rời rạc x(n) được định nghĩa như sau:

X ( z)   x(n).z
n  
n

Trong đó hàm X(z) là hàm biến phức của biến phức z.

a. Điều kiện hội tụ:


lim | x( n).z  n |1 / n 1 hay
n 

1
0  R x   lim | x(n) |1 / n  | z |   Rx   
n  lim | x( m) |1 / m
m 

b. Một số tính chất của biến đổi Z:


 Tính chất tuyến tính:
Z[a.x(n) + b.y(n)] = Z[a.x(n)] + Z[b.y(n)]
= a.Z[x(n)] + b.Z[y(n)]
= a.X(z) + b.Y(z)
 Tính dịch chuyển theo thời gian:
Giả sử y(n) = x(n – n0) ( dịch chuyển 1 đoạn n0 mẫu)
Khi đó: Y(z) = Z[x(n-n0)] = z -n0 . X(z)
 Đảo trục thời gian:
giả sử Z[x(n)] = X(z) , Rx- < |z| < Rx+
khi đó: Z[x(-n)] = X(1/z) ( với 1/Rx- > |z| > 1/Rx+ )
 Thay đổi thang tỷ lệ:

16
giả sử Z[x(n)] = X(z) , Rx- < |z| < Rx+
Z[an . x(n)] = X(z/a) ( với |a|.Rx- < |z| < |a|.Rx+ )
 Tổng chập của hai dãy:
Giả sử y(n) là tổng chập của hai dãy h(n) và x(n) tức là:
y(n) = h(n) * x(n)
Vậy thì: Y(z) = H(z) . X(z)

c. Hàm truyền đạt:


Tín hiệu ra y(n) của một hệ tuyến tính bất biến là tổng chập của đáp ứng xung h(n) và tác
động vào là dãy x(n) : y(n) = h(n) * x(n).
Qua phép biến đổi Z ta có: Y(z) = H(z) . X(z)
Y ( z)
hay: H ( z )  X ( z )

và H(z) được gọi là hàm truyền đạt của hệ thống, nó có một ý nghĩa đặc biệt bởi vì đó là
hàm đặc trưng cho sự biến đổi của hệ thống.
Như vậy biến đổi Z của đáp ứng xung h(n) là hàm truyền đạt H(z) của hệ thống.

3. Mô hình tạo tiếng nói


Tiếng nói là một loại âm thanh, nhưng ngược lại, không phải bất kỳ âm thanh nào cũng là
tiếng nói. Tiếng nói được phân biệt với các âm thanh khác bởi các đặc tính âm học có
nguồn gốc từ cơ chế tạo tiếng nói.
Trong quá trình tạo tiếng nói có 2 loại nguồn âm:
- Nguồn tuần hoàn: là nguồn tương ứng với các âm mà khi phát ra làm
cho dây thanh rung. Trong tiếng Việt nguồn tuần hoàn tương ứng với các nguyên âm và
các phụ âm hữu thanh
- Nguồn không tuần hoàn (nguồn tạp âm): là nguồn tương ứng với các âm
mà khi phát ra không làm cho dây thanh rung. Trong tiếng Việt các nguồn không tuần
hoàn tương ứng với các phụ âm vô thanh.

17
Với nguồn tuần hoàn thì vị trí nguồn tại chính thanh môn, còn nguồn không tuần hoàn thì
có vị trí trong tuyến âm tức là từ thanh môn trở lên cho đến dưới môi.
Quá trình tạo tiếng nói từ thanh môn đến tuyến âm đã được Fant (1960) mô hình hoá qua
mô hình sau:

T0
Lọc thông T0 Tuyến âm Tải bức xạ
thấp G(z) V(z) R(z) x(n)
u(n)

Hình 1.6 Mô hình tạo tiếng nói (Fant – 1960)

Trong mô hình trên, tín hiệu vào của hệ thống là một chuỗi xung đơn vị có chu kỳ T 0. Tín
hiệu này được cho qua một bộ lọc thông thấp có hàm truyền đạt:
A
G( z) 
(1  z 1 )(1  z 1 )

Đầu ra của bộ lọc ta được tín hiệu nguồn của hệ thống (cũng là tín hiệu tuần hoàn với chu
kỳ T0). Tín hiệu nguồn sau đó được đưa qua tuyến âm thực chất là một hốc cộng hưởng
được mô hình hoá bằng K mạch cộng hưởng mắc nối tiếp nhau với hàm truyền đạt:
B
V ( z)  K

 (1  b
k 1
1k z 1  b2 k z  2 )

Cuối cùng âm thanh được phát ra ở môi, nơi được coi như một tải âm học. Sự tán xạ ở
môi được thể hiện qua hàm truyền đạt:
R ( z )  C (1  z 1 )

Như vậy theo mô hình Fant, hàm truyền đạt của hệ thống có dạng:

18
T(z) = G(z).V(z).R(z)

Tín hiệu nguồn


T0
Tín hiệu tiếng
nói tại môi
T(z)

Hình 1.7 Mô hình tạo tiếng nói

Nếu giả thiết là một trong hai điểm cực tại thanh môn bằng -1 (  = -1 ). Khi đó hàm
truyền đạt của hệ thống sẽ có dạng:

A.B.C A.B.C
T ( z)  K
 2 K 1
(1  z 1 ) (1   1k .z 1   2 k .z  2 )
k 1
1   .z
i 1
i
i

Đặt   A.B.C
2 K 1 p
A( z ) 1    i z  i    i z i
i 1 i 0
với  0  1, p  2.K  1


Khi đó ta có T ( z )  A( z ) và A(z) được gọi là hàm truyền đạt của bộ lọc đảo. Mô hình

của bộ lọc đảo có thể minh họa như sau:

Tín hiệu tiếng T0


nói tại môi A(z)
x(n) u(n)

Hình 1.8 Mô hình bộ lọc đảo

19
Do  là hằng số nên dễ thấy T(z) chỉ gồm toàn điểm cực, do đó mô hình trên gọi là mô
hình toàn điểm cực.Việc xác định các hệ số  i của bộ lọc đảo sẽ rất quan trọng trong
việc xác định các đặc tính của tuyến âm, phương pháp thường dùng để tính toán các hệ số
của bộ lọc đảo là phương pháp tiên đoán tuyến tính, phương pháp này sẽ được trình bày
chi tiết ở phần sau.

Hạn chế của mô hình trên là mô hình chỉ tính đối với khoang miệng, không có khoang
mũi, do đó các âm mũi không thể được tạo ra từ mô hình này. Để giải quyết hạn chế này,
người ta thêm vào thành phần đặc trưng cho khoang mũi. Khi đó hàm truyền đạt của hệ
thống sẽ là:
1 2 C ( z)
T ( z)    .
A1 ( z ) A2 ( z ) A( z )

1 2
Trong đó thành phần đặc trưng cho khoang miệng còn thành phần
A1 ( z ) A2 ( z )

thì đặc trưng cho khoang mũi. Với việc thêm vào thành phần đặc trưng cho khoang mũi,
hệ thống không còn là toàn điểm cực (do xuất hiện các điểm không) vì vậy gây khó khăn
cho việc dùng phương pháp tiên đoán tuyến tính (vì phương pháp này chỉ dùng cho mô
hình toàn điểm cực) vì vậy thực tế người ta đã thay 1 điểm không thành hai điểm cực
theo phương pháp giảm bậc gần đúng
1
1  z 1 
1  z 1
  2 z  2  ...

4. Biểu diễn số tiếng nói


Tín hiệu tiếng nói là tín hiệu tương tự, do đó khi biểu diễn tín hiệu tiếng nói trong môi
trường tính toán tín hiệu số, việc biểu diễn và lưu trữ sao cho không bị mất mát thông tin
là vấn đề rất quan trọng trong các hệ thống thông tin sử dụng tiếng nói. Việc xem xét các
vấn đề xử lý tín hiệu tiếng nói trong các hệ thống này được dựa trên ba vấn đề chính:
- Biểu diễn tín hiệu tiếng nói dạng số.
- Cài đặt các kỹ thuật xử lý tinh vi.

20
- Các lớp ứng dụng dựa trên kỹ thuật xử lý số tín hiệu.
Biểu diễn tín hiệu tiếng nói theo dạng số chịu ảnh hưởng quan trọng của lý thuyết lấy
mẫu, theo đó các trạng thái của tín hiệu có dải tần số giới hạn có thể được biểu diễn dưới
dạng các mẫu lấy tuần hoàn theo một chu kì cố định được gọi là chu kì lấy mẫu. Việc lấy
mẫu này sẽ cung cấp cho hệ thống những mẫu tín hiệu với tỉ lệ đủ lớn để xử lý. Tất cả các
quá trình xử lý lấy mẫu được chỉ rõ trong các tài liệu về xử lý tín hiệu số.

Biểu diễn tín hiệu

tiếng nói

Biểu diễn dạng Biểu diễn dạng

sóng tham số

Các tham số kích Các tham số của

thích bộ máy phát âm

Hình 1.9 Biểu diễn tín hiệu tiếng nói.

Phương pháp biểu diễn tín hiệu theo dạng sóng, được xem xét đến với việc bảo quản
thông tin theo cách thông thường là giữ nguyên hình dạng sóng của tín hiệu tương ứng
khi đã qua các bước lấy mẫu và lượng tử hoá tín hiệu. Còn phương pháp biểu diễn theo
tham số được xem xét đến trên khía cạnh biểu diễn tín hiệu tiếng nói như là đầu ra của
hệ thống tạo tiếng nói. Để thu được các tham số biểu diễn, bước đầu tiên của phương
pháp này lại thường là biểu diễn tín hiệu tiếng nói theo dạng sóng. Điều này có nghĩa là
tín hiệu tiếng nói được lấy mẫu và lượng tử giống như phương pháp biểu diễn tín hiệu
tiếng nói dạng sóng, sau đó sẽ tiến hành xử lý để thu được các tham số của tín hiệu tiếng

21
nói của mô hình tạo tiếng nói nêu trên. Các tham số của mô hình tạo tiếng nói này thường
được phân loại thành các tham số kích thích và các tham số của bộ máy phát âm tương
ứng.

Để áp dụng các phương pháp xử lý tín hiệu số cho tín hiệu tiếng nói chúng ta phải biểu
diễn tín hiệu tiếng nói dưới dạng rời rạc. Quá trình rời rạc hoá tín hiệu tiếng nói bao gồm
các bước sau:
- Lấy mẫu tín hiệu tiếng nói với tần số lấy mẫu f0.
- Lượng tử hoá các mẫu với bước lượng tử q.
- Mã hoá và nén tín hiệu.

4.1 Xác định tần số lấy mẫu tín hiệu tiếng nói.
Khi lấy mẫu một tín hiệu tương tự với tần số lấy mẫu f0, cần đảm bảo rằng việc khôi
phục lại tín hiệu đó từ tín hiệu rời rạc tương ứng phải được thực hiện được. Shanon đã
đưa ra một định lý mà theo đó người ta có thể xác định tần số lấy mẫu đảm bảo yêu cầu
trên. Theo Shanon, điều kiện cần và đủ để khôi phục lại tín hiệu tương tự từ tín hiệu đã
được rời rạc với tần số lấy mẫu f0 là : f0  Fmax với Fmax là tần số lớn nhất của tín hiệu
tương tự.
Người ta biết rằng phổ của tín hiệu tiếng nói trải rộng trong khoảng 12kHz, do đó theo
định lý Shanon thì tần số lấy mẫu tối thiểu là 24kHz. Với tần số lấy mẫu lớn như thế thì
khối lượng bộ nhớ dành cho việc ghi âm sẽ rất lớn và làm tăng sụ phức tạp trong tính
toán. Nhưng chi phí cho việc xử lý tín hiệu số, bộ lọc, sự truyền và ghi âm có thể giảm đi
nếu chúng ta chấp nhận giới hạn phổ bằng cách cho tín hiệu qua một bộ lọc tần số thích
hợp. Đối với tín hiệu tiếng nói cho điện thoại, người ta thấy rằng tín hiệu tiếng nói vẫn
đạt được chất lượng cần thiết khi để mức độ ngữ nghĩa của thông tin vẫn đảm bảo khi
phổ được giới hạn ở 3400Hz. Khi đó tần số lấy mẫu sẽ là 8000Hz. Trong kỹ thuật phân
tích, tổng hợp hay nhận dạng tiếng nói, tần số lấy mẫu có thể giao động trong khoảng
6000-16000Hz. Đối với tín hiệu âm thanh(bao gồm cả âm nhạc và tiếng nói) tần số lấy
mẫu cần thiết là 48kHz.

22
4.2 Lượng tử hoá.
Việc biểu diễn số tín hiệu đòi hỏi lượng tử hoá mỗi mẫu tín hiệu với một giá trị rời rạc
hữu hạn. Mục tiêu của công việc này là hoặc là để truyền tải hoặc là xử lý có hiệu quả.
Trong trường hợp thứ nhất, mỗi mẫu tín hiệu được lượng tử hóa, mã hoá rồi truyền đi.
Bên thu nhận tín hiệu giải mã và thu được tín hiệu tương tự. Tính thống kê của tín hiệu
được bảo toàn sẽ ảnh hưởng quan trọng đến thuật toán lượng tử hoá. Trong trường hợp
xử lý tín hiệu, luật lượng tử được quy định bởi hệ thống xử lý, nó có thể được biểu diễn
bằng dấu phẩy tĩnh hay dấu phẩy động. Việc xử lý bằng dấu phẩy động cho phép có
một sự mềm dẻo cần thiết đối với tín hiệu mặc dù nó đòi hỏi chi phí cao với các tính
toán. việc xử lý bằng dấu phẩy tĩnh đơn giản hơn nhiều nhưng đòi hỏi các điều kiện chặt
chẽ đối với các thuật toán xử lý.

4.3 Nén tín hiệu tiếng nói.


Lượng tử hoá tín hiệu gây ra các lỗi thành phần giống nhiễu trắng, như vậy số bước
lượng tử là cố định thì tỷ số này là hàm của biên độ tín hiệu, người ta sử dụng luật
lượng tử logarithm và mỗi mẫu tín hiệu được biểu diễn bằng 8 bit. Đối với tín hiệu âm
thanh kích thước mẫu thường dùng là 16 bit.
Một đặc trưng cần thiết của phép biểu diễn tín hiệu số là tốc độ nhị phân tính bằng bit/s.
Đó là giá trị quan trọng trong khi thực hiện truyền dữ liệu cũng như lưu trữ dữ liệu.
Đường truyền điện thoại có tốc độ 8(kHz)*8(bit)= 64Kb/s. Khi thực hiện truyền và ghi lại
tín hiệu âm thanh, tốc độ cần thiết là 768kb/s.
Ta biết rằng tín hiệu tiếng nói có độ dư thừa rất lớn, do đó có thể giảm tốc độ tín hiệu
tuỳ thuộc vào mục đích xử lý khi xem xét đến mức độ phức tạp của thuật toán cũng như
xem xét đến chất lượng của việc biểu diễn tín hiệu tiếng nói. Có nhiều kỹ thuật đưa ra để
đạt được mục đích trên. Sự lựa chọn một phương pháp biểu diễn số tín hiệu phải thoả
mãn giữa các tiêu chuẩn về chất lượng của phép biểu diễn, tốc độ truyền hay lưu trữ và
cuối cùng là các điều kiện môi trường.
Thông thường số bit có nghĩa dùng để biểu diễn chuỗi lượng tử cần phải làm giảm bớt
vì lý do kỹ thuật. Việc này có thể thực hiệu được bằng cách bỏ đi các bít ít có nghĩa
nhất, nếu lượng tử là tuyến tính, lỗi lượng tử tăng cùng với khoảng cách giá trị của

23
chuỗi. Nhưng đối với một vài ứng dụng, mức lượng tử ở vùng tần số cao có yêu cầu thấp
hơn so với ở vùng tần số thấp hay ngược lại, trong trường hợp đó cần sử dụng toán tử
tuyến tính để biến đổi tín hiệu.

5. Tổng quan về mã hoá tiếng nói


Trong một vài thập kỷ vừa qua, đã có rất nhiều kỹ thuật mã hoá nén tiếng nói được đưa
ra, phân tích và phát triển. Trong phần này tôi sẽ giới thiệu một số kỹ thuật đang được sử
dụng hiện nay, và một số kỹ thuật sẽ được dùng trong tương lai. Thông thường thì mã hoá
tiếng nói được chia làm hai lớp đó là: mã hoá dạng sóng (waveform coder) và mã hoá
nguồn (source coder) (hay còn được gọi là mã hoá thông số). Mã hoá dạng sóng được
thực hiện ở tốc độ bít cao và cho chất lượng mã hoá tiếng nói tốt. Mã hoá nguồn thực
hiện ở tốc độ bít thấp, nhưng nó có xu hướng tạo ra tiếng nói có chất lượng nhân tạo.
Hiện nay, một lớp mới của mã hoá tiếng nói được gọi là mã hoá lai (hybrid coder), đây là
kỹ thuật mã hoá tổng hợp của phương pháp mã hoá dạng sóng và mã hoá nguồn, nó cho
chất lượng tiếng nói khá tốt và thực hiện ở tốc độ bít trung bình. Hình 1.10 sẽ đưa ra đồ
thị biểu diễn sự phụ thuộc của chất lượng tiếng nói đối với tốc độ bít của hai lớp chính là
mã hoá dạng sóng và mã hoá nguồn.

24
Hình 1.10 Chất lượng tiếng nói theo tốc độ bít

5.1 Mã hóa dạng sóng


Mã hoá dạng sóng nhằm tái tạo lại tín hiệu đầu vào của tiếng nói. Nó thường được chia
thành các tín hiệu độc lập do vậy nó có thể được dùng để mã hoá rất nhiều loại tín hiệu.
Thông thường, đây là phương pháp mã hoá có độ phức tạp thấp tuy nhiên lại cho chất
lượng cao với tốc độ bít cao (lớn hơn khoảng 16kbps). Mã hoá dạng sóng có thể được
thực hiện trên cả miền tần số cũng như trên miền thời gian.

a, Mã hoá trên miền thời gian


Mã hoá trên miền thời gian thực hiện việc mã hóa trên khoảng thời gian lấy mẫu của tín
hiệu. Các phương pháp mã hoá trong miền thời gian thường được dùng gồm có: Điều chế
mã xung (PCM), điều chế mã xung thích ứng (APCM), điều chế mã xung vi phân
(DPCM), điều chế mã xung vi phân thích ứng (ADPCM), điều chế Delta (DM), điều chế
Delta thích ứng, và mã hoá dự đoán thích ứng (APC). Tiếp theo ta sẽ xem xét một vài
phương pháp mã hoá quan trọng trong miền thời gian.

Mã hoá PCM

Điều chế mã xung là phương pháp đơn giản nhất trong mã hoá dạng sóng. Điểm cốt yếu
của phương pháp này chính là quá trình lượng tử hóa. Bất cứ dạng lượng tử hoá vô hướng

25
nào cũng có thể được sử dụng trong phương pháp này, nhưng dạng hay được dùng nhất là
lượng tử hoá logarit. Uỷ ban tư vấn điện thoại và điện báo quốc tế đã giới thiệu G.711
như là phương pháp chuẩn cho việc mã hoá tiếng nói thoại. Chuẩn G.711 xác định 8 bit
theo luật μ và luật A của PCM. Mã hoá dùng luật μ có ít lợi thế hơn trong việc thực hiện
vì nó cho tỉ số tín hiệu trên nhiễu bé hơn.

Mã hoá DPCM và ADPCM

PCM không giả định về tính tự nhiên của dạng sóng được mã hóa, do đó nó làm việc tốt
với các tín hiệu mà không phải là tiếng nói. Tuy nhiên, khi mã hoá tiếng nói thì sẽ có sự
tương quan rất lớn giữa các mẫu cạnh nhau. Sự tương quan này có thể được sử dụng để
khôi phục được tốc độ bít của kết quả. Một phương pháp đơn giản để thực hiện việc này
đó là chỉ truyền sự sai khác giữa các mẫu. Tín hiệu khác biệt này sẽ có phạm vi dao động
nhỏ hơn so với tín hiệu tiếng nói ban đầu, do vậy nó có thể lượng tử hoá một cách hiệu
quả bằng việc sử dụng các bộ vector lượng tử hoá với mức xây dựng lại thấp hơn. Trong
phương pháp trên, mẫu trước được sử dụng để dự đoán giá trị của mẫu hiện tại. Sự dự
đoán này có thể được cải thiện nếu như ta sử dụng một khối lớn hơn của tín hiệu tiếng nói
cho việc dự đoán. Phương pháp này được gọi là điều chế mã hoá xung vi phân (DPCM).
Kiến trúc của nó được đưa ra trong hình vẽ 1.11.

Một phiên bản phát triển của DPCM là điều chế mã xung thích ứng ADPCM. Trong
ADPCM, bộ dự đoán và lượng tử hoá được thích ứng với các đặc tính của tín hiệu đầu
vào. Có một số chuẩn được ITU giới thiệu cho việc mã hoá tín hiệu âm thanh dựa vào
giải thuật ADPCM (với dải thông hẹp khoảng 8kHz) ví dụ như G.726 thực hiện ở các tốc
độ bít 40, 32, 24 và 16 kbps. Độ phức tạp của ADPCM là thực sự thấp. Mã hoá ADPCM
sẽ cho tín hiệu tín hiệu trên nhiễu cao (vào khoảng 30 đến 35 dB).

26
Hình 1.11: Hệ thống DPCM, khối mã hoá ở bên trái còn khối giải mã bên phải. Bộ
lượng tử hoá đảo (inverse quantizer) có nhiệm vụ chuyển các mã đã được truyền thành
tín hiệu u(n).

b, Mã hoá trong miền tần số


Mã hoá dạng sóng trong miền tần số chia tín hiệu thành các thành phần tần số khác nhau
và tiến hành mã hoá từng thành thành phần này. Số bít sử dụng để mã hoá từng thành
phần tần số có thể thay đổi. Mã hoá trong miền tần số được chia ra làm hai nhóm là: mã
hoá băng con (subband) và mã hoá biến đổi (transform).

Mã hoá băng con (subband)

Mã hoá băng con sử dụng một số bộ lọc dải thông để chia tín hiệu đầu vào thành các tín
hiệu con (subband signal) mà đã được mã hoá. Tại bộ thu các tín hiệu con được giải mã
và cộng lại nhằm khôi phục lại tín hiệu ban đầu. Ưu điểm chính của phương pháp mã hoá
băng con đó là nhiễu lượng tử hoá sinh ra trong một dải tần sẽ bị hạn chế trong chính dải
tần đấy. Hiệp hội viễn thông quốc tế ITU đã đưa ra chuẩn G.722 trong mã hoá băng con
(subband) để truyền thông với các tốc độ 48, 56 hay là 64 kbps.

Mã hoá biến đổi (transform)

Kỹ thuật này cần có một khối chuyển đổi của cửa sổ tín hiệu đầu vào thành các thành
phần tần số, hoặc một vài miền tương tự. Mã hoá thích ứng sau đó sẽ hoàn thành bằng
cách phân bổ thêm bít vào các thành phần hệ số quan trọng hơn. Tại bộ thu thì bộ giải mã

27
sẽ thực hiện việc chuyển đổi ngược để thu lại tín hiệu cần khôi phục. Ta có thể sử dụng
một số phép biến đổi như: phép biến đổi Fourier rời rạc (DFT) hay là phép biến đổi
cosine rời rạc (DCT).

5.2 Mã hoá nguồn


Mã hoá nguồn sử dụng một mô hình trong đó chỉ ra quá trình làm thế nào để phát sinh ra
nguồn, và quá trình phân tích từ tín hiệu được mã hoá các thông số của mô hình. Các
thông số này sẽ được truyền tới bộ giải mã. Mã hoá nguồn sử dụng cho tiếng nói được
gọi là vocoder (viết tắt của mã hoá tiếng nói - vocal coder), và nó sử dụng một mô hình
lọc nguồn như trong hình vẽ 1.12. Mô hình này thừa nhận là tiếng nói được tạo ra bằng
cách kích thích bộ lọc tuyến tính bằng một tín hiệu nhiễu trắng đối với các tín hiệu vô
thanh, hoặc là một chuỗi các xung tín hiệu giọng nói. Bộ mã hoá nguồn hoạt động với tốc
độ bít ở khoảng 2kbps hoặc bé hơn.

Dựa vào các phương thức phân tích thông số mô hình, một vài kiểu mã hoá nguồn đã
được phát triển ví dụ như viz, mã hoá kênh, mã hoá đồng hình, mã hoá formant và mã
hoá dự đoán tuyến tính. Việc sử dụng bộ lọc này tương tự với nguyên lý của mã hoá dự
đoán tuyến tính (LPC).

Hình 1.12 Mô hình tạo tiếng nói được sử dụng bởi mã hoá nguồn

28
5.3 Mã hoá lai
Mã hoá lai (hybrid coder) là phương pháp tổng hợp giữa phương pháp mã hóa dạng sóng
và mã hoá nguồn, nhằm khắc phục các nhược điểm của hai phương pháp trên. Như ta đã
nói thì mã hóa dạng sóng sẽ cho chất lượng tốt với tốc độ bít vào khoảng 16kbps, trong
khi đó mã hoá nguồn được thực hiện ở một tốc độ bít rất thấp (vào khoảng 2.4 kbps)
nhưng không thể đưa ra chất lượng tự nhiên. Mặc dù còn có một số dạng mã hóa lai khác
còn tồn tại, tuy nhiên phương pháp thành công nhất và được sử dụng rộng rãi đó là
phương pháp mã hoá trong miền tần số Analysys - by – Synthesis (AbS). Phương pháp
này cũng sử dụng mô hình lọc dự đoán tuyến tính. Tuy nhiên, thay vì áp dụng mô hình
đơn giản gồm có hai trạng thái là hữu thanh/vô thanh (voiced / unvoiced) để tìm đầu vào
cần thiết cho bộ lọc, thì tín hiệu kích thích được chọn sao cho tín hiệu được khôi phục
gần với tín hiệu ban đầu. Một mô hình chung của mã hóa AbS được đưa ra trong hình vẽ
1.13. AbS được giới thiệu lần đầu tiên vào năm 1982 bởi Atal và Remde, và ban đầu nó
được gọi là mã hóa kích thích đa xung (MPE), và sau đó thì RPE và CELP lần lượt được
đưa ra. Nhiều bản CELP khác nhau đã được chuẩn hoá, gồm có G.723.1 hoạt động ở tốc
độ bít là 6.3/5.3 kbps, G.729 ở 8 kbps, G.728 ở 16 kbps và tất cả các chuẩn mã hoá mạng
thoại di động như GSM, IS – 54, IS – 95, IS – 136.

29
Hình 1.13 Kiến trúc của mã hoá AbS. (a): Mã hoá. (b): Giải mã.

6. Tổng quan về tổng hợp tiếng nói

6.1 Giới thiệu chung


Tổng hợp tiếng nói là quá trình tạo tiếng nói xuất phát từ biểu diễn ngữ âm của lời nói và
cơ chế sản sinh ra tiếng nói.Trong đó các kỹ thuật tổng hợp tiếng nói được chia thành 2
loại chính :
 Tổng hợp tiếng nói trực tiếp: là phương pháp tổng hợp dựa trên sự ghép
nối các âm đã được ghi từ trước.
Đặc điểm của phương pháp này là có sự tham gia của con người. Đây là cách dễ nhất để
tạo tiếng nói tuy nhiên nó yêu cầu số lượng lời nói ghi âm phải lớn do đó phải cần nhiều
bộ nhớ để lưu trữ các lời nói này.
Đơn vị ghi âm tối thiểu là các âm vị (hệ thống các nguyên âm và phụ âm), từ các âm vị
có thể tổng hợp thành các âm tiết ( tổ hợp các âm vị) và cao hơn là có thể tổng hợp thành

30
các từ, câu. Để giảm khối lượng từ cần lưu trữ, người ta thường dùng các âm vị kép
(diphone : gồm hai âm vị đi với nhau) để tổng hợp tiếng nói
 Tổng hợp dựa trên mô hình: là các phương pháp tổng hợp dưạ trên các mô
hình toán học và không có sự tham gia của con người. Các phương pháp hay dùng bao
gồm:
- Tổng hợp formant: phương pháp này dựa trên các luật xác định tần
số cơ bản để tính ra 3 formant đầu tiên f1, f2, f3 để tổng hợp tiếng nói.
- Tổng hợp LPC: đây là phương pháp dựa trên mô hình tiên đoán
tuyến tính, tức là tín hiệu tiếng nói tại thời điểm n có thể xác định dựa trên tổ hợp tuyến
tính của p tín hiệu trước đó.
- Tổng hợp dùng mô phỏng bộ máy phát âm: phương pháp này thực
hiện bằng cách mô phỏng bộ máy phát âm của con người, do đó nó có thể có chất lượng
tốt nhất nhưng nhược điểm là độ phức tạp rất cao và khó thực hiện.

6.2 Các mô hình tổng hợp tiếng nói


a, Tổng hợp formant

Hình 1.14 Mô hình tổng hợp tiếng nói bằng phương pháp formant

Chức năng của từng khối:

31
 Khối tạo xung: khối này dùng để tạo tín hiệu tuần hoàn
 Khối tạo tạp âm: khối này dùng để tạo tín hiệu không tuần hoàn (các nhiễu
ngẫu nhiên)
 Các khối A1, A2, A3, A4: là các khối thay đổi biên độ dùng để tăng giảm
biên độ tới âm lượng mong muốn.
 Khoang miệng đặc trưng bởi các mạch cộng hưởng có tần số F1, F2, F3
 Kênh mũi: tương ứng với các phản formant
 B1, B2, B3: là các dải tần khác nhau
Chất lượng của phương pháp này phụ thuộc vào sự điều chỉnh các tham số điều khiển và
nghe tín hiệu tạo ra do đó không được tự động hoá 100%

b, Tổng hợp LPC

Hình 1.15 Mô hình tổng hợp tiếng nói bằng phương pháp LPC

Chức năng từng khối:


 Khối tạo xung: khối này dùng để tạo các tín hiệu tuần hoàn
 Khối tạo tạp âm: khối này dùng để tạo các tín hiệu không tuần hoàn
 Khối A: là khối thay đổi biên độ
 Bộ lọc bậc p xác định các tham số a 1  ap theo tiêu chí tối thiểu hoá bình
phương toàn phần của lỗi tiên đoán tuyến tính.
Phương pháp này được thực hiện tự động 100% do có tiêu chí xác định các hệ số a i. Tuy
nhiên nhược điểm của phương pháp này là chất lượng tổng hợp âm mũi kém do LPC chỉ

32
dựa trên mô hình toàn điểm cực, không có điểm không (tức là chỉ có khoang miệng mà
không có khoang mũi), do đó chỉ áp dụng với khoang miệng.
c, Tổng hợp dùng mô phỏng bộ máy phát âm

Hình 1.16 Mô hình tổng hợp tiếng nói bằng phương pháp mô
phỏng nguồn âm.

Phương pháp này thực chất là mô phỏng nguồn âm, tuyến âm và nguồn tạp âm đơn giản.

Mô phỏng nguồn âm (nguồn tuần hoàn): là quá trình mô phỏng hoạt động của dây thanh.
Các phương pháp mô phỏng dây thanh thường dùng là mô hình một khối, mô hình hai
khối, mô hình nhiều khối, mô hình dầm,…

Mô phỏng tuyến âm: thực chất là mô phỏng bộ máy phát âm từ thanh môn trở lên. Tuyến
âm được mô phỏng bằng cách rời rạc hoá, thay thế từng đoạn tuyến âm bởi các ống cơ
bản có chiều dài ngắn (các ống hình trụ) và sau đó thực hiện tính toán trên các ống này.

33
Chương 2 Ứng dụng của LPC trong xử lý
tiếng nói
7. Phương pháp dự đoán tuyến tính trong xử lý tiếng nói

Một trong những công cụ mạnh được sử dụng trong việc phân tích tiếng nói là phương
pháp phân tích dự đoán tuyến tính. Phương pháp này vẫn là kỹ thuật chiếm ưu thế trong
việc dò tìm các tham số cơ bản của tiếng nói như: tần số cơ bản, các formant, phổ tín
hiệu, các hàm truyền đạt của bộ máy phát âm cũng như trong việc biểu diễn tín hiệu tiếng
nói, truyền và lưu trữ ở tốc độ dữ liệu thấp. Phương pháp này rất quan trọng bởi lẽ nó
cung cấp công cụ dò tìm một cách hoàn toàn đúng đắn và tốc độ tính toán nhanh.
Nguồn gốc cơ bản của phương pháp này là các mẫu tín hiệu tiếng nói có thể được xấp xỉ
hoá như là tổ hợp tuyến tính của một số mẫu quá khứ. Bằng cách tối thiểu hoá tổng của
các bình phương phương sai (trong một khoảng thời gian xác định) giữa các mẫu hiện tại
của tín hiệu tiếng nói và mẫu tiên đoán tuyến tính ta có để thu được một tập hợp các
tham số dự đoán.
Nguyên lý cơ bản của phương pháp dự đoán tuyến tính liên hệ mật thiết với mô hình tổng
hợp tiếng nói, trong đó chỉ ra rằng tín hiệu tiếng nói có thể được coi như là kết quả đầu
ra của hệ tuyến tính biến đổi theo thời gian và được kích thích bởi các xung tuần hoàn
(các âm hữu thanh) hay là các nhiễu ngẫu nhiên (các âm vô thanh).
Dựa vào phương pháp tiên đoán tuyến tính người ta đã áp dụng nó cho nhiều cách thức
khác nhau tuỳ vào mô hình sóng tín hiệu tiếng nói. Sự khác biệt của các cách thức này là
cách nhìn vấn đề theo hướng khác nhau. Sau đây là một số cách thức:
 Phương pháp hiệp phương sai
 Phương pháp tự tương quan
 Phương pháp rào
 Phương pháp bộ lọc đảo

34
 Phương pháp dò phổ
 Phương pháp khả năng cực đại
 Phương pháp dẫn xuất nội bộ

Như trong mô hình trên của mô hình tạo tiếng nói cùng với những tham số cần phải xác
định của nó, trong đó tín hiệu dự đoán được biểu diễn bằng:
^ M

s (n)    a s (n  i )
i 1
i
(2.1)

Hình 2.1 Sơ đồ khối của mô hình đơn giản của việc phát âm

Và sai số dự đoán là :
^ M
e( n )  s ( n )  s ( n )  s ( n )   a i s ( n  i ) (2.2)
i 1
Từ công thức (2.2) ta có thể thấy rằng chuỗi sai số dự đoán là đầu ra của hệ thống có
hàm truyền đạt như sau :
p
A( z )  1   a k z  k (2.3)
k 1

35
Bằng cách so sánh (2.1) và (2.3) ta thấy, nếu tín hiệu tiếng nói tuân theo mô hình của
công thức (2.2) và nếu ki = ai thì e(n) = Gu(n). Hơn nữa bộ lọc sai số dự đoán A(z) sẽ là
một bộ lọc đảo cho hệ thống H(z). Như vậy ta có :

G
H ( z)  (2.4)
A( z )

Bài toán cơ bản của phân tích tiên đoán tuyến tính là để xác định tập hợp các hệ số tiên
đoán {ai} trực tiếp từ tín hiệu tiếng nói. Bởi vì bản chất thay đổi theo thời gian của tín
hiệu tiếng nói nên các hệ số tiên đoán phải được tính trong các đoạn ngắn tín hiệu. Cách
tiếp cận cơ bản là tìm một tập các hệ số tiên đoán mà sai số tiên đoán là nhỏ nhất đối với
một đoạn ngắn tín hiệu.
Với cách tiếp cận trên sẽ hướng đến một vài kết quả hữu ích mà có thể không được quan
sát thấy ngay lập tức, nhưng có thể điều chỉnh bằng nhiều cách. Đầu tiên, nhớ lại rằng
nếu ak = k thì e(n) = Gu(n). Đối với âm hữu thanh, nó có nghĩa rằng e(n) sẽ bao gồm một
chuỗi các xung ; ví dụ, e(n) sẽ trở nên nhỏ trong phần lớn thời gian. Do đó, việc tìm các
k mà tối thiểu hoá sai số tiên đoán phù hợp với nhận xét này. Thứ hai, dựa vào thực tế là
nếu tín hiệu được sinh ra bởi công thức (2.1) với không có sự biến đổi về thời gian của
các hệ số và được kích thích bằng cách một xung đơn lẻ hay một chuỗi nhiễu trắng không
thay đổi, thì nó có thể thấy rằng các hệ số dự đoán có kết quả từ việc tối thiểu hoá bình
phương sai số tiên đoán giống với hệ số của công thức (2.1). Cuối cùng, sự điều chỉnh rất
hợp lý cho việc tối thiểu hoá sai số bình phương trung bình, sai số tiên đoán như là cơ sở
cho việc xác định các tham số của mô hình là cách tiếp cận hướng đến tập của các công
thức tuyến tính có thể được tìm thấy hiệu quả để nhận được các tham số tiên đoán. Quan
trọng hơn, các tham số thu được rất hữu ích và biểu diễn chính xác tín hiệu tiếng nói.
Sai số tiên đoán trung bình thời gian ngắn được định nghĩa như sau :

E   e n2 (m) (2.5)
m

36
  ( s n ( m)  s '
n (m)
2
) (2.6)
m

p
  [ s n ( m)    k s n ( m  k )] 2 (2.7)
m k 1

trong đó sn(m) là một đoạn tiếng nói đã được chọn trong vùng lân cận của mẫu n, nghĩa
là sn(m) = s(n+m).
Chúng ta có thể tìm được các giá trị của k mà tối thiểu hoá En trong biểu thức (2.7) bằng
cách thiết lập: En/i = 0, i = 1,2,…p. Theo cách đó nhận được công thức như sau:

 s n ( m  i ) s n ( m)    k '  s n ( m  i ) s n ( m  k )
m k 1 m
1 i  p (2.8)

trong đó ’k là giá trị của k mà En tối thiểu. Vì ’k là duy nhất nên chúng ta sẽ coi đó là
k .
Nếu chúng ta định nghĩa :

Rn (i, k )   s n (m  i ) s n (m  k ) (2.9)
m

Thì biểu thức (2.8) được viết ngắn gọn hơn :


k 1
k Rn (i, k )  Rn (i,0) i  1,2,... p (2.10)

Tập k biểu thức trong p không biết được tìm thấy trong một cách hiệu quả đối với hệ số
tiên đoán không biết { k } mà tối thiểu hoá sai số tiên đoán trong đoạn sn(m). Sử dụng
công thức (2.7) và công thức (2.8), ta có :

p
E n   s n2 (m)    k  s n (m) s n (m  k ) (2.11)
m k 1 m

Sử dụng công thức (2.10) ta có thể viết nhanh En như sau :

37
p
E n  Rn (0,0)    k Rn (0, k ) (2.12)
k 1

Hơn nữa, tổng sai số nhỏ nhất bao gồm các thành phần cố định, và một thành phần phụ
thuộc vào hệ số tiên đoán. Để tìm được hệ số tiên đoán tối ưu, đầu tiên phải tính số
lượng Rn(i,k) với 1 i  p và 0  k  p. Một khi tìm được rồi, chúng ta chỉ cần dùng
công thức (2.10) để nhận được k.

a, Phương pháp tự tương quan


Một cách tiếp cận để xác định hạn chế của tổng trong công thức (2.5) –(2.7) và công
thức (2.8) là giá sử đoạn tín hiệu s n(m) có giá trị bằng 0 ngoài khoảng (0,N-1). Như thế
có thể viết :

Sn(m) = s(m+n)w(m) (2.13)

Trong đó w(m) cửa số có chiều dài hữu hạn(ví dụ cửa số Hamming).


Rõ rằng rằng, nếu sn(m) không bằng 0 không chỉ với m trong (0, N-1), thì sai số tiên đoán
tương ứng en(m) cho bậc dự đoán thứ p sẽ khác không ngoài đoạn (0,N-1+p). Hơn nữa,
trong trường hợp này En có thể được viết nhanh như sau:

N  p 1
En  e
m0
2
n ( m) (2.14)

Chúng ta có thể đơn giản chỉ ra rằng tổng sẽ có giá trị khác không bằng cách lấy tổng từ
- đến +.
Trở lại với công thức (2.7), có thể thấy rằng sai số tiên đoán có vẻ như lớn tại đoạn đầu
của đoạn tín hiệu (0  m  p-1) bởi vì chúng ta thử dự đoán tín hiệu từ mẫu tuỳ tiện đã
được đặt bằng không. Cũng như thế, sai số có thể lớn tại đầu cuối của đoạn tín hiệu ( N 
m  N+p-1) bởi vì chúng ta thử dự đoán không từ các mẫu mà không bằng không. Vì lý
do này, một cửa sổ có hình búp được áp dụng.

38
Bởi vì sn(m) có giá trị không ngoài đoạn (0, N-1) nên từ (2.9) dễ dàng thấy :
N  p 1
1 i  p
Rn (i, k )  s
m 0
n (m  i ) s n (m  k )
0k  p
(2.15a)

hay là :
N 1 ( i  k )
1 i  p
Rn (i, k )  s
m 0
n (m  i) s n (m  i  k )
0k  p
(2.15b)

Ta viết lại biểu thức như sau :


N 1 k
R (k )  s
m 0
n ( m) s n ( m  k ) (2.16)

Vì thế công thức (2.10) được viết như sau :


p

k 1
k Rn (| i  k |)  Rn (i ) 1 i  p (2.17)

p
E n  Rn (0)    k Rn (k ) (2.18)
k 2

Như vậy tập các công thức trong (2.17) được biểu diễn dưới dạng ma trận :

 R0 R1 R2  R p 1   a1    R1 
 R R0 R1  R p  2   a 2    R2 
 1
 R2 R1 R0  R p 3   a3     R3  (2.19)
    
          
 R p 1 R p 2 R p 3  R0  a p   R p 

b, Phương pháp covariance


Cách tiếp cận thứ hai để định nghĩa đoạn tiếng nói s n(m) và giới hạn các tổng đấy là cố
định đoạn và sai số bình phương trung bình được tính và sau đó xem xét hiệu quả trên
việc tính toán của n(i,k), Có nghĩa là nếu chúng ta định nghĩa :

N 1
En  e
m0
2
n ( m) (2.20)

Như vậy thì n(i,k) trở thành:

39
N 1 1 i  p
 n (i , k )   s n ( m  i ) s n ( m  k ) (2.21)
m 0 0k  p

Trong trường hợp này, nếu chúng ta thay đổi chỉ số của tổng chúng ta có thể biểu diễn
biểu thức của n(i,k) như sau:

N i 1 1 i  p
 n (i, k )  s
mi
n ( m) s n ( m  i  k )
0k  p
(2.22)

hay
N  k 1 1 i  p
 n (i, k )  s
m k
n ( m) s n ( m  k  i )
0k  p
(2.23)

Mặc dù các công thức nhìn có vẻ tương tự như trong công thức (2.15b), chúng ta thấy
rằng giới hạn của các tổng là không giống nhau. Để tính n(i,k) cho tất cả các giá trị yêu
cầu của i và k mà chúng ta sử dụng các giá trị của s n(m) trong đoạn –p  m  N-1. Nếu
chúng ta nhất quán với giới hạn của E n thì chúng ta không có sự lựa chọn cung cấp các
giá trị yêu cầu. Trong trường hợp này, không có cảm giác làm hẹp đoạn tiếng nói tới giá
trị không tại điểm cuối như trong phương pháp tự tương quan vì các giá trị cần thiết có
được từ bên ngoài của đoạn 0  m  N-1. Rõ ràng, cách tiếp cận này tương tự với cách
mà chúng ta gọi là thay đổi hàm tự tương quan trong phần trước. Mặc dù, sự khác nhau
giữa công thức (2.23) và công thức (2.15b) có vẻ như không quan trọng trong tính toán
chi tiết, tập các biểu thức có các tính chất khác biệt đáng kể:
p


k 1
k  n (i, k )   n (i,0) i  1,2,3......, p (2.24)

Hệ phương trình trên được biểu diễn ở dạng ma trận như sau:

  n (1,1)  n (1,2) .... ...  n (1, p )    1    n (1,0) 


 ( 2,1)  (2,2)  
 n n ... ...  n (2, p )   2   n (2,0) 
 ... ... ... ... ...   ...    ...  (2.25)
    
 .... ... ... ... ...   ....   .... 
 n ( p,1)  n ( p,2) .... ...  n ( p, p )  p   n (3,0) 

40
Trong trường hợp này vì n(i,k) = n(k,i), ma trận p p của là đối xứng nhưng không
phải là Toeplitz. Thực vậy, các thành phần của đường chéo liên quan với nhau bởi công
thức :

n(i+1,k+1) = n(i,k) + sn( -i - 1)sn(-k - 1)


- sn(N – 1 - i) sn(N – 1 – k) (2.26)
Phương pháp phân tích dựa trên cơ sở tính toán của n(i,k) được gọi là phương pháp
hiệp biến (covariance) bởi vì ma trận của các giá trị {n(i,k)} có các tính chất của một ma
trận hiệp biến.

7.2 Xác định hệ số khuyếch đại


Khi so sánh mô hình tạo tiếng nói rời rạc với mô hình dự đoán tuyến tính chúng ta rút ra
được đẳng thức :

e(n) = Gu(n) (2.27)

Có nghĩa là tín hiệu vào tỷ lệ với tín hiệu sai số với một hệ số tỉ lệ bằng hệ số khuếch đại
G. Với mọi tác động u(n), tín hiệu ra của bộ dự đoán H(z) sẽ là s(n) tương ứng và xác
định. Tuy nhiên do (2.24) chỉ tồn tại khi các hệ số dự đoán bằng các hệ số của mô hình
tạo tín hiệu tiếng nói, nên G không thể xác định trực tiếp từ (2.24) được. Tuy nhiên, có
thể giả thiết rằng năng lượng tín hiệu ra của bộ lọc với u(n) bất kì bằng năng lượng của
tín hiệu tiếng nói. Điều đó có nghĩa là năng lượng của tín hiệu sai số bằng năng lượng
của tín hiệu kích, như vậy:

n1 n1 2

e
nn0
2
( n)  G 2
 [u (n)]
nn0
M (2.28)

41
Phụ thuộc vào phương pháp tính toán mà ta tính được G. Đến đây, chúng ta xem xét cho
hai loại tín hiệu kích riêng biệt: chuỗi xung tất đinh(tạo âm hữu thanh) và tín hiệu ngẫu
nhiên là nhiễu trắng.
Trong trường hợp tạo âm hữu thanh, giả thiết rằng u(n) = (n) có nghĩa là xung đơn vị
tại n = 0:

u(n) = (n) = 1 khi n = 0


0 khi n  0 (2.29)

Do đó, độ dài tín hiệu phân tích có thể được chọn bằng chu kỳ Pitch. Để cho giả thiết
này không làm sai lệch kết quả khi tính toán, hiệu ứng của dạng xung thanh môn trong
nguồn kích thực tế đã được tính vào hàm truyền đạt của tuyến âm. cả hai hiệu ứng này sẽ
được mô hình bằng bộ lọc dự đoán thay đổi theo thời gian với bậc bộ lọc đủ lớn.

Trong trường hợp tạo âm vô thanh, nguồn kích là một nhiễu trắng dừng có trung bình
bằng 0 và phương sai bằng 1, hay :

mu ( n )   [u (n)]  0

2
 2 u (n)   [u (n)] 2  mu ( n )  1 (2.30)

Trong đó :
mu(n) Là giá trị trung bình của quá trình u(n)
 Là kỳ vọng toán học
2u(n) Là phương sai của quá trình u(n)

Hệ số khuếch đại G được tính dựa trên việc tính hàm tự tương quan của đáp ứng xung
của mô hình. Tuy nhiên với điều kiện phân tích đồng bộ và tín hiệu vào là xung đơn vị
thì :

42
n1 n1

u
nn0
2
( n)   [ (n)]
nn0
2
1 (2.31)

Và như thế hệ số khuếch đại được biểu diễn như sau :

G 2 = M (2.32)

Trong trường hợp u(n) là tín hiệu ngẫu nhiên thoả mãn điều kiện (2.30) và đảm bảo điều
kiện năng lượng tín hiệu vào và tín hiệu sai số bằng tham số:

[e(n)]2 = G2 [u(n)]2 = M (2.33)


và G2 = M (2.34)

Như vậy hệ số khuếch đại bình phương của mô hình dự đoán tuyến tính tạo tiếng nói
bằng sai số dự đoán tuyến tính bình phương cực tiểu của mô hình không phụ thuộc vào
dạng tính hiệu kích là xung đơn vị hay là nhiễu trắng.

7.3 Xác định hệ số tiên đoán tuyến tính


Để xác định hệ số tiên đoán tuyến tính, chúng ta có nhiều phương pháp. Tuy nhiên dựa
vào các tính chất của ma trận trong phương pháp tự tương quan và phương pháp
covariance mà chúng ta đưa ra hai phương pháp tính toán đơn giản và số lượng tính toán
ít hơn. Sau đây chúng ta sẽ xem xét các phương pháp này.

a, Phương pháp covariance


Trong phương pháp covar ta có hệ phương trình tuyến tính hoặc dưới dạng ma trận như
đã trình bày, ta có thể viết ngắn ngọn như sau :
 = AC (2.35)
Trong đó :
C : ma trận hiệp biến với các phần tử là cik

43
A : véctor cột với các phần tử là ak
 : Vector cột với các phần tử là c0k

Vì ma trận này là ma trận đối xứng, xác định dương nên có thể sử dụng phép phân tích
Cholesky để giải. Đối với phương pháp phân tích Cholesky ma trận C được biểu diễn
dưới dạng :

C = VDV’ (2.36)
Trong đó:
V : ma trận tam giác có các phần tử thuộc đường chéo bằng 1. các phần tử
nằm bên đường chéo bằng 0.
D : ma trận đường chéo
V’ : ma trận chuyển vị của V.
Các phần tử của ma trận V và D được xác định từ (2.35) bằng cách tìm phần tử thứ (i,j)
như sau :
j
c ij  Vik d k V jk với 1  j  i-1 (2.37)
k 1

Hay là:
j 1
Vij d j  c ij   Vik d k V jk với 1  j  i-1 (2.38)
k 1

và các phần tử thuộc đường chéo là:


j
cii  c ij  Vik d k Vik với 1  j  i-1 (2.39)
k 1

hay:
j 1
d i  c ii   Vik2 d k với i >=2 (2.40)
k 1

và d1 = c11 (2.41)
Sau khi xác định được c ma trận V và D, vector cột A sẽ được tính theo hai bước. Từ
(2.35) và (2.36) ta có :

44
VDV’A = - (2.42)
đặt DV’A = Y ta thu được :
VY = - (2.43)
Vì ma trận V đã biết, từ (2.43) có thể tìm vector cột Y bằng cách sử dụng phép đệ quy
đơn giản :
i 1
Y     Vij Y j với 2  i  M (2.44)
j 1

với điều kiện đầu:


Y1 = -1
Bằng cách giải tương tự như đối với Y, ta có thể tìm ra A bằng phép đệ quy
Yi M
ai 
di
 V
j  i 1
ij aj với 1  i  M-1 (2.45)

với điều kiện đầu:


YM
aM 
dM

Trong quá trình tính đệ quy chỉ số i giảm từ M-1 xuống 1,sai số dự đoán được viết dưới
dạng ma trận như sau:
M = c00 + A’ (2.46)
Ở đây, A’ là ma trận chuyển vị của A, ta có A’ = Y’D’V-1
Do đó :
M = c00 + YtD-1V-1 (2.47)
Từ đó ta có :
M
 M  c 00   Yk2 / d k (2.48)
k 1

Như vậy sai số dự đoán bình phương M có thể tính trực tiếp từ vector cột Y và ma trận
D. Từ đó băng cách cho giá trị M với bậc M bất kì có thể giải được để tìm hệ số dự
đoán hoặc chúng ta có thể khảo sát sự thay đổi của M phụ thuộc vào hệ số dự đoán.

45
b, Phương pháp tự tương quan
Sau khi đã có các giá trị của hàm tự tương quan, để tìm hệ số chúng ta phải giải hệ M
phương trình tuyến tính. Tính chất Toeplitz của ma trận các hệ số (2.14) được nhiều nhà
toán học khai thác và đưa ra những giải thuật quy nạp rất hiệu quả để giải hệ phương
trình này. Mặc dù một trong các thuật giải này được biết đến rộng rãi dưới cái tên là thuật
giải Levinson – Robinson, nhưng phương pháp hiệu quả để giải hệ phương trình thực tế
là thuật giải Durbin. Thuật giải được mô tả như sau:

0 = R(0) (2.49)

i 1
[ R (i )   a i 1, j R(i  j )]
j 1 với 1  i  p (2.50)
ki  
 i 1

ai,j = ki

ai,j = ai-1,j – kiai-1,i-j với 1  j  i-1 (2.51)

i = (1 - ki2) i-1 (2.52)

cuối cùng ta thu được kết quả:

j = Mj với 1  j  M

Trong quá trình giả hệ phương trình tuyến tính để tìm các hệ số dự đoán tuyến tính của bộ
lọc dự đoán bậc M, chúng ta sẽ thấy rằng tất cả các hệ số dự đoán tuyến tính có bậc nhỏ
hơn M đều được tính toán – có nghĩa là i,j là hệ số dự đoán thứ j của bộ dự đoán bậc thứ
i. Đồng thời giá trị của i là sai số dự đoán cho bộ dự đoán bậc i. Điều này cho phép
kiểm tra sai số dự đoán tại mọi bậc tính toán. Lúc này chúng ta thấy rằng nếu bậc bộ lọc

46
tăng, i sẽ giảm hoặc không thay đổi, i không thể mang giá trị âm vì nó là tổng bình
phương của sai số tại mỗi bậc riêng biệt. Do đó:

0  i  i-1 (2.53)
-1  ki  1 (2.54)

Các giá trị {ki} ở đây là được gọi là hệ số PARCOR(partition correlation) tương đương
với hệ số phản xạ ri trong mô hình ống âm học lý tưởng của tuyến âm và cũng là hệ số
tương quan riêng phần. Như vậy, (2.4.55) chính là điều kiện cần và đủ để tất cả các
nghiệm của A(z) nằm trong vòng tròn đơn vị, hay hệ thống H(z) được đảm bảo ổn định.

8. Ứng dụng LPC trong phân tích tiếng nói


9. Dò tìm formant
Thủ tục tổng quát của quá trình dò tìm formant sử dụng phương phương tiên đoán tuyến
tính được đưa ra ở sơ đồ sau

s(n) Lọc hiệu Lấy cửa sổ Xác định


chỉnh các hệ số ai

Tính 1/| Tìm cực


A(eiw)| đại
Quyết định Fk
Bk

Tính A(z)

Hình 2.2 Sơ đồ dò tìm formant dựa trên bộ lọc đảo

47
Theo cách đó, mỗi một khung tiếng nói đem phân tích trước tiên sẽ được qua bộ lọc
hiệu chỉnh và nhân với một hàm cửa sổ. Tiếp đến, xác định các hệ số a k của bộ lọc đảo

A(z), A( z )  1   a k z  k , theo lý thuyết về nguồn lọc (source-filter) của phát âm, đáp
k 1

ứng tần số của bộ lọc tiên đoán tuyến tính đưa ra gần đúng với đường bao phổ của tiếng
nói: | H(f) | = | 1/ A(f)|. Các đỉnh của | H(f)| chỉ rõ các tần số công hưởng của tuyến âm
hay đấy chính là các formant. Từ bộ lọc đảo, các đỉnh và độ dài dải thông sẽ được xác
định theo các cách sau:
 Ước lượng các tần số formant trực tiếp từ các đỉnh của | H(f) |.
 Tìm các nghiệm của đa thức tiên đoán.

Hình 2.3 Ảnh hưởng của số điểm tính FFT đối với dạng của đường bao phổ.

 Dò tìm đỉnh
Đỉnh trong | H(f) | được tìm rất đơn giản, sau khi đã xác định được các hệ số của bộ lọc
đảo chọn chiều dài của FFT để thu được độ phân giải của tần số mong muốn, tính FFT
của chuỗi {1,a1,a2,a3, …..ap, 0,0, …..0} thu được |A(f)|. Như vậy |H(f)| = G/|A(f)|. Từ đó
ta xác định được các đỉnh của |H(f)|, tuy nhiên để thu được chính xác hơn tần số formant
người ta có thể sử dụng một biện pháp đơn giản đó là nội suy parabol 3 điểm

48
Hình 2.4 Nội suy parabol 3 điểm.

 Tìm nghiệm của đa thức tiên đoán: Các nghiệm của đa thức tiên đoán được gọi là
các điểm cực, thường chúng thành từng cặp là các cặp nghiệm phức liên hợp. Đa thức
tiên đoán bậc p có p nghiệm phức có dạng : z k = rk EXP(j2  fk/Fs). Gọi k = Re(k)
+jIm(k). thì:
fk = (Fs/2 )tan-1(Im(k)/Re(k))
k = (Fs/2 )ln(1/rk)

Tất cả các nghiệm của đa thức tiên đoán không phải đều tương ứng với các formant. Nếu
bậc của bộ lọc quá lớn, thì các nghiệm của đa thức sẽ nhiều hơn số formant, ngược lại
nếu bậc bộ lọc thấp sẽ thiếu các formant.

Việc tìm formant theo phương pháp tuyến tính đưa ra nhiều ưu điểm hơn so với việc tìm
formant theo phương pháp phân tích phổ đó là độ phức tạp, thời gian tính và tính chính
xác của đỉnh.

10. Dùng bộ lọc đảo để tìm F0


Như đã trình bày trong phân tiên đoán tuyến tính, tín hiệu sai số e(n) trong phân tích LPC
có thể được dùng để đánh giá trực tiếp chu kì Pitch và phương pháp phân tích tự tương

49
quan đối với tín hiệu sai số nói chung có nhiều khả năng cho kết quả đúng. Tuy nhiên,
các thuật toán tự tương quan đã nói ở trên phải trả giá cao cho khối lượng tính toán hàm
tự tương quan. Thuật toán SIFT là phương pháp dựa trên nguyên lý phân tích bằng dự
đoán tuyến tính rất hiệu quả và chính xác để phân tách Pitch trong vùng 50-250Hz. Muốn
vậy ta cho tín hiệu đi qua bộ lọc thông thấp có tần số cắt khoảng 1kHz để giới hạn vùng
tần số có nhiều khả năng chứa Pitch, do đó tần số lấy mẫu cho phân tích F0 chỉ cần vào
khoảng 2KHz, điều đó làm cho số phép tính cần thiết giảm đi rất nhiều.
Sơ đồ khối của thuật toán SIFT như sau :
Lọc lấy Phân tích
hiệu cửa LPC bậc
chỉnh sổ 4

Lọc thông Giảm 5:1


thấp
s(n) f =800Hz
c

Bộ lọc đảo A(z)

Tính tự tương
quan

Đánh giá pitch

F0 Hiệu chỉnh lỗi


V/UV

Hình 2.5 Sơ đồ dò tìm chu kì cơ bản sử dụng thuật toán SIFT

50
11. Tổng hợp tiếng nói
3.1 Giới thiệu
Tiếng nói là một tín hiệu biến đổi theo thời gian, nhưng xét trong một khoảng thời gian
ngắn (khoảng 20ms đến 50ms) thì tín hiệu tiếng nói hầu như không thay đổi. Thực tế cho
thấy rằng có một sự tương quan cao giữa các mẫu tín hiệu tiếng nói gần kề nhau. Mô hình
phân tích và tổng hợp LPC được xây dựng dựa trên ý tưởng này. Nó xuất phát từ sự dự
đoán tuyến tính, tức là mẫu tín hiệu tiếng nói tại thời điểm n ký hiệu là s(n) sẽ được coi là
tổ hợp tuyến tính của p mẫu tín hiệu trong quá khứ:
s(n)  a1s(n-1) + a2s(n-2) + … + aps(n-p).
Từ đó, mô hình phân tích và tổng hợp LPC sẽ bao gồm hai phần cơ bản:
 Phần phân tích: từ tín hiệu tiếng nói ban đầu, phân tích để tìm ra các
tham số liên quan, các tham số này sẽ được xác định theo mô hình LPC. Sau đó các tham
số này sẽ được truyền đi đến phần tổng hợp.
 Phần tổng hợp: nhận các tham số từ phần phân tích và tổng hợp lại tín
hiệu tiếng nói ban đầu từ các tham số này.

12. Cơ sở lý thuyết

12.1 Mô hình vật lý


Khi bạn nói:
 Không khí được đẩy từ phổi xuyên qua tuyến âm và ra khỏi miệng từ đó hình
thành nên tiếng nói.
 Với những âm hữu thanh, các dây thanh dao động (đóng và mở). Tốc độ dao
động của dây thanh xác định pitch của giọng nói. Phụ nữ và trẻ em thường có pitch cao
(dao động dây thanh nhanh), trong khi đó đàn ông trưởng thành thường có pitch thấp (dao
động dây thanh chậm).
 Với những phụ âm xát và âm bật (âm vô thanh) thì dây thanh không dao động
nhưng những phần còn lại thì luôn luôn mở.

51
 Hình dạng của tuyến âm sẽ xác định âm thanh được tạo ra. Khi phát âm, tuyến
âm sẽ thay đổi hình dạng của nó để tạo ra các âm thanh khác nhau.
 Hình dạng của tuyến âm thay đổi tương đối chậm (thay đổi từ 10 ms đến 100
ms).
 Thông lượng không khí đến từ phổi sẽ xác định độ to nhỏ của âm thanh.

Hình 2.6 Mô hình vật lý của quá trình tạo tiếng nói

12.2 Mô hình toán học


 Theo mô hình, tín hiệu số tiếng nói sẽ là đầu ra của bộ lọc số (bộ lọc LPC) mà
có đầu vào là một chuỗi các xung hoặc một dãy nhiễu trắng.
 Mối quan hệ giữa mô hình vật lý và mô hình toán học:

Ống âm thanh  H(z) ( bộ lọc LPC)


Không khí  U(n) (nguồn âm)
Sự dao động của dây thanh  V (voiced – hữu thanh )
Chu kỳ dao động của dây thanh  T ( chu kỳ pitch)
Các phụ âm xát và âm bật  UV (unvoiced – vô thanh)
Thông lượng không khí  G (gain – trọng số kích thích)

52
 Bộ lọc LPC được xác định bởi hàm truyền đạt:
1
H ( z)  1
1  a1 z  a 2 z  2  ...  a10 z  p

Khi đó mối quan hệ giữa đầu vào và đầu ra của bộ lọc được xác định bởi phương trình sai
phân tuyến tính:
10
s ( n)   a i s ( n  i )  u ( n)
i 1

Như vậy các tham số cần thiết cho một bộ tổng hợp LPC là các hệ số LPC (đặc trưng cho
bộ lọc LPC) và tín hiệu nguồn kích thích.

Hình 2.7 Mô hình tạo tiếng nói LPC

Mô hình LPC có thể được cài đặt theo bộ lọc sau (Hình 2.8)
Trong đó các hệ số ai của bộ lọc chính là các hệ số dự đoán.

53
Hình 2.8 Mô hình bộ lọc
Ta cũng có thể sử dụng mô hình bộ lọc lưới (lattice filter) (Hình 2.9)

f0(n) f1(n) f2(n)


K1
K2
s(n)
K1 K2

z-1 z-1
g0(n) g1(n) g2(n)

e(n) s(n)

-KN -K1

-KN -K1
z-1 z-1

Hình 2.9 Mô hình bộ lọc lưới

Mô hình này tương tự với mô hình tổn hao đường ống. Trong đó:
 Mỗi phần của bộ lọc tương ứng với một phần trong đường ống.

54
 Sóng truyền đi có một phần phản xạ lại về sau.
 Sóng truyền về có một phần phản xạ về phía trước.
Các hệ số của bộ lọc này chính là hệ số phản xạ ki.
Hệ số phản xạ được tính theo công thức
N 1

f i 1 (m) g i 1 (m  1)
Ki  m0
2

 N 1
2
  N 1  
2

  f i 1 (m)    f i 1 (m  1)  

 m 0   m0  
Từ hệ số phản xạ ta có thể tính trực tiếp ra hệ số dự đoán và ngược lại.
Từ hệ số dự đoán tính ra hệ số phản xạ

Từ hệ số phản xạ tính ra hệ số dự đoán

12.3 Mô hình phân tích và tổng hợp LPC


Mô hình phân tích và tổng hợp LPC sẽ bao gồm 2 phần được mô tả như sau:

u(n), ai (i= 0,1,..,p)


s(n) Phân tích Tổng hợp S’(n)

Hình 2.8 Mô hình phân tích và tổng hợp LPC

a, Phân tích

55
Quá trình phân tích sẽ sử dụng bộ lọc đảo LPC để tìm lại tín hiệu nguồn từ tín hiệu tiếng
nói nhận được:

X(Z) Lọc đảo LPC Y(Z)


A(z)
Tín hiệu tiếng nói Tín hiệu nguồn

Hình 2.9 Sơ đồ phân tích LPC

Sau đó tín hiệu nguồn và các hệ số LPC sẽ được truyền đi đến phần tổng hợp để tổng hợp
lại tín hiệu ban đầu.
Mối quan hệ giữa đầu vào và đầu ra của bộ lọc được thể hiện qua phương trình sau:
Y(z) = A(z).X(z)
Trong đó A(z) là hàm truyền đạt của bộ lọc đảo được tính theo công thức:
p
A( z )  1   a i z i trong đó p là bậc của bộ lọc
i 1

như vậy ta có:


Y(z) = (1 - a1z -1 - a2z -2 - … - apz –p)X(z)
Hay: y(n) = x(n) - a1x(n-1) - a2x(n-2) - … - apx(n-p)
Đây là một hệ không truy hồi bậc p, dựa trên mô hình toàn điểm không, hình sau minh
hoạ cách thực hiện của hệ :

56
Hình 2.10 Sơ đồ thực hiện phân tích LPC

b, Tổng hợp LPC


Tổng hợp là quá trình ngược lại của phân tích, tức là từ tín hiệu nguồn nhận được sau quá
trình phân tích, tín hiệu tiếng nói ban đầu sẽ được tổng hợp lại. Mô hình tổng quát của
quá trình tổng hợp được mô tả như sau:

X(Z) Bộ lọc LPC Y(Z)


H(z)
Tín hiệu nguồn Tín hiệu tiếng nói

Hình 2.11 Sơ đồ tổng hợp LPC


Thực chất đây chính là một hệ đảo của hệ thống phân tích, do đó hàm truyền đạt của hệ
thống có dạng:
1 1
H ( z)  
A( z ) 1  a1 z  a 2 z  2  ....  a p z  p
1

Trong đó các hệ số ai và p có giá trị giống như các hệ số a i và p trong quá trình phân tích..
Do đó tín hiệu đầu ra của hệ tổng hợp được xác định như sau:
1
Y(z) = H(z).X(z) = 1  a z 1  a z 2  ....  a z  p X(z)
1 2 p

1
Hay Y(z).( 1  a1 z  a 2 z 2  ....  a p z  p ) = X(z)
 y(n) – a1y(n-1) – a2y(n-2) – …. – apy(n-p) = x(n)

57
 y(n) = x(n) + a1y(n-1) + a2y(n-2) + …. + apy(n-p)
Như vậy hệ tổng hợp LPC là một hệ truy hồi bậc p, dựa trên mô hình toàn điểm cực. Sơ
đồ minh hoạ cách thực hiện hệ trên:

Hình 2.12 Sơ đồ thực hiện tổng hợp LPC

Như vậy trong mô hình tổng hợp LPC thì các tham số cần thiết sẽ là nguồn âm (tín hiệu
kích thích) và các hệ số LPC. Các tham số này sẽ được xác định trong pha phân tích.

c, Xác định các hệ số LPC


Mô hình LPC bắt đầu với việc coi như một mẫu tín hiệu tiếng nói tại thời điểm n sẽ là
xấp xỉ tổ hợp tuyến tính của p mẫu tín hiệu trong quá khứ, tức là mẫu tín mẫu tín hiệu tại
thời điểm n sẽ là tổng có trọng lượng của p mẫu trong quá khứ, mà mỗi mẫu sẽ được
nhân với 1 hằng số tương ứng, biểu thức toán học của nó có thể mô tả như sau :
x(n)  a1.x(n-1) + a2.x(n-2) + . . . . . + ap.x(n-p) (3.1)
Trong đó các hệ số a1, a2,…, ap gọi là các hệ số tiên đoán tuyến tính, chúng được xác định
theo từng frame và không đổi trong mỗi frame.
Để xẩy ra dấu “=” ta thêm vào thành phần Gu(n), khi đó biểu thức (3.1) trở thành:
x(n) = a1.x(n-1) + a2.x(n-2) + . . . . . + ap.x(n-p) + Gu(n) (3.2)
Thành phần Gu(n) gọi là thành phần kích thích trong đó u(n) là tín hiệu kích thích và G là
trọng số kích thích.
Thực hiện biến đổi z cả hai vế ta có:

58
p
X ( z )   ai z i X ( z )  GU ( z ) (3.3)
i 1

Hàm truyền đạt của hệ thống:


X ( z) 1 1
H ( z)   p

GU ( z ) A( z ) (3.4)
1   a i z i
i 1

Gọi xˆ ( n) là giá trị tiên đoán của x(n) do đó:


xˆ ( n) = a1.x(n-1) + a2.x(n-2) + . . . . . + ap.x(n-p) (3.5)
Như vậy sai số tiên đoán sẽ là:
p
e(n)  x(n)  xˆ (n)  x(n)   a i x(n  i ) (3.6)
i 1

Đặt bi  ai , i  1, p và b0=1 khi đó ta có (3.6) trở thành:


p
e( n)   bi x( n  i ) (3.7)
i 0

Sai số bình phương toàn phần được xác định như sau:
2
n1
 p
n1

E   e (n)    bi x(n  i )
2

n  n0 n  n0  i  0 
n1 p p
  b
n  n0 k  0 l  0
k x( n  k ) x( n  l )bl (3.8)

(n0, n1 là các chỉ số giới hạn được dùng khi tính E)


n1

Kí hiệu hàm hiệp biến:  (k , l )   x(n  k ) x(n  l )


n  n0
(3.9)

Đẳng thức (8) có thể viết dưới dạng đơn giản là:
p p
E   bk  ( k , l )bl (3.10)
k  0 l 0

Các hệ số ai (hay bi) được xác định dựa trên nguyên tắc tối thiểu hoá bình phương toàn
phần (tức là làm cho sai số bình phương toàn phần E đạt giá trị cực tiểu). Điều này có thể
đạt được bằng cách cho bằng 0 các đạo hàm riêng của E theo bi ( i  0, p )
Do đó ta có hệ phương trình rút ra từ đẳng thức (3.10):

59
 p
E  2 bk  (i, k )  0 , i  0, p (3.11)
bi k 0

Do b0 = 1 nên hệ phương trình (3.11) tương đương với:


p
 (i,0)   bk  (i, k )  0 , i  1, p (3.12)
k 1

Thay bk  a k với k  1, p nên (3.12) tương đương với:


p
 (i,0)   a k  (i, k ) , i  1, p (3.13)
k 1

Như vậy các hệ số tiên đoán tuyến tính a k , k  1, p có thể xác định nhờ việc giải hệ p
phương trình tuyến tính (3.13), trong đó  (i, k ) và  (i,0) với i  1, p và k  1, p được
xác định theo biểu thức (3.9).
Để xác định hệ số LPC ta có thể một trong hai phương pháp: Levinson – Durbin (tự
tương quan) và phương pháp xử dụng ma trận hiệp biến.Các phương pháp này phân biệt
nhau qua cách chọn các giá trị n0 và n1.

Phương pháp tự tương quan


Phương pháp tự tương quan cho n 0 = và n1= +và cho x(n) = 0 với mọi n  0 hoặc
n  N (tức là các mẫu không thuộc khung thì giá trị được đặt bằng 0). Điều này tương

đương với việc nhân tín hiệu tiếng nói ban đầu với một cửa sổ có độ dài bằng kích thước
của khung đang xét, có giá trị bằng 0 với các điểm nằm ngoài cửa sổ. Với những điều
kiện này  (i, k ) có thể được đơn giản hoá như sau:

 (i, k )   x(n  i ).x(n  k )
n  


  x ( n) x  n  i  k 
n  

N 1 ( i  k )
  x ( n) x  n  i  k   r  i  k 
n 0

Trong đó r  i  k  là hàm tương quan của  i  k  .


Vì hàm tương quan là hàm chẵn, tức là r ( k )  r (k ) , nên r i  k   r i  k  . Thay
 (i, k ) bởi r  i  k  vào (3.13) ta có:

60
p
r k    ai r  i  k  , k  1, p (3.14)
i 1

Dạng ma trận của (3.14) là: R .a  r (3.15)


Phương trình (3.15) được gọi là phương trình Yule – Walker.
Trong đó:
 r ( 0) r (1)  r ( p  1)   a1   r (1) 
 r (1) a 
r (0)  r ( p  2)  r ( 2) 
a  , r  
2
R  , 
      .   . 
     
r ( p  1) r ( p  2)  r (0)  a p  r ( p ) 

R là ma trận Toeplitz (ma trận đối xứng với các phần tử thuộc đường chéo chính bằng
nhau) nên có một giải thuật rất hiệu quả để giải (3.15) đó là giải thuật Durbin - Levinson.
Giải thuật Durbin - Levinson là giải thuật sử dụng truy hồi được phát biểu như sau:
E  0   r (0) (3.16)



i 1 

r i  j 
(i 1)
k i  r (i )    j E (i 1) , k  1, p (3.17)

 j 1 

 i(i )  k i (3.18)
 (ji )   (ji 1)  k i i(i j1) , j  1, i  1 (3.19)
E (i )  (1  k i2 ) E (i 1) (3.20)
Trong đó tổng sigma trong (3.17) được bỏ qua khi i=1. Các phương trình (3.16  3.20)
được thực hiện với i lần lượt bằng 1, 2, .., p. Cuối cùng thu được lời giải của (3.15):
a k   kp , k  1, p

Để minh hoạ cho giải thuật Durbin xét ví dụ sau: Tìm các hệ số LPC bậc 2 (p = 2) a 1, a2
từ hệ phương trình (3.21) bằng giải thuật Durbin.

r (0) r (1)   a1   r (1) 


 r (1) r (0) a   r (2)  (3.21)
  2   

Sử dụng các phương trình (3.16  3.20) ta có:

61
E  0   r (0)

i = 1:
k1  r (1) r (0)

1(1)  k1  (1) r (0)

E (1)  (1  k12 ) E (0)  (r 2 (0)  r 2 (1)) r (0)

i = 2:

k 2  r (2)  1(1) r  0  E (0)  (r (2)r (0)  r 2 (1)) (r 2 (0)  r 2 (1))

 2( 2)  k 2  (r ( 2)r (0)  r 2 (1)) (r 2 (0)  r 2 (1))

1( 2)  1(1)  k 21(1)  ( r (1)r (0)  r (1)r (2)) ( r 2 (0)  r 2 (1))

Kết quả: a1  1( 2) và a 2   2( 2)

Ta có thể kiểm tra kết quả bằng cách giải trực tiếp (3.21).

Phương pháp hiệp biến


Phương pháp hiệp biến đặt n0 = 0, n1 = N - 1, như vậy sai số bình phương trung bình được
tối thiểu trong đoạn [0, N - 1]. Ta có:
N 1
 (i, k )   x(n  i ) x(n  k ) 1 i  p và 0k  p
n 0

Bằng cách đổi biến biểu thức trên tương đương với:
N 1 i
 (i, k )   x ( n) x ( n  i  k )
ni
(3.22)

Khi i=p dễ thấy (3.22) liên quan đến các mẫu từ x(-p) đến x(N - 1 - p) và khi k=0 (3.22)
liên quan đến các mẫu từ x(0) đến x(N - 1). Do đó để tính theo phương pháp này cần các
mẫu từ x(-p) đến x(N-1), Ngoài các mẫu trong khoảng đang xét cần thêm p mẫu trước
khoảng đang xét.
Dạng ma trận của (3.13) là: R .a  r (3.23)
Trong đó:

62
  (1,1)  (1,2) ...  (1, p )   a1    (1,0) 
  (2,1)  a   
 ( 2,2) ...  (2, p )   2  r   (2,0) 
R  , a 
 . . .   . ,  . 
     
 ( p,1)  ( p,2) ...  ( p, p ) a p   ( p,0) 

R là ma trận đối xứng nhưng không phải là ma trận Toeplitz. (23) cũng được giải hiệu
quả nhờ sử dụng giải thuật Cholesky.

13. Xây dựng mô hình


Sơ đồ chung của mô hình phân tích và tổng hợp LPC được mô tả qua sơ đồ sau:

Hình 2.13 Mô hình phân tích và tổng hợp tiếng nói bằng phương pháp LPC

Mô hình này bao gổm hai phần: phân tích và tổng hợp.
Phần phân tích được tìm thấy ở phần truyền tín hiệu của một hệ thống, nó sử dụng tín
hiệu tiếng nói ban đầu để rút ra các tham số (hệ số LPC) và tín hiệu dư (nguồn âm), sau
đó các tham số và tín hiệu dư được truyền qua một kênh.
Phần tổng hợp, mà được thấy ở phần nhận của một hệ thống, sẽ xây dựng lại tín hiệu
tiếng nói ban đầu từ các tham số và tín hiệu dư nhận được từ phần phân tích.
Sau đây chúng ta sẽ nghiên cứu cụ thể từng khối này

63
13.1 Khối phân tích LPC
Phần phân tích thực hiện chức năng phân tích để tìm ra các tham số (các hệ số LPC) và
tín hiệu dư của tín hiệu ban đầu sau đó truyền kết quả cho phần tổng hợp. Hình sau chỉ rõ
sơ đồ các khối trong phần phân tích.

Hình 2.14 Mô hình phân tích LPC

Khối Pre-Emphasis:
 Đây là một bộ lọc hiệu chỉnh dùng để loại bớt các thành phần 1 chiều và
làm cho hệ thống không phân biệt đối xử với các thành phần tần số khác nhau, và làm
cho phổ được đồng đều hơn.
 Thực chất đây chính là một bộ lọc thông cao với hàm truyền đạt:
H(z) = 1- az -1 (với a = 0.95÷0.98).
Hay s’(n) = s(n) – a.s(n-1)
với s(n), s’(n) tương ứng là tín hiệu vào và ra của bộ lọc

Khối Overlap Analys Window:


Khối này thực hiện chức năng phân khung, tức là chia chuỗi tín hiệu đầu vào thành các
khung (frame) có kích thước cố định N (thường là 160, 180, 256, 512 hoặc 1024 mẫu tín
hiệu).
Để cho tín hiệu được xử lý liên tục không gián đoạn và tín hiệu ra trơn hơn thì các khung
thường gối chồng lên nhau, các khung kề nhau chồng lên nhau M mẫu tín hiệu, tức là 2

64
khung liên tiếp thì trùng nhau M mẫu tín hiệu. Nếu M càng lớn thì tín hiệu đầu ra sẽ càng
trơn, mịn hơn. Thường thì chọn M bằng 1/2, 2/3 hoặc 3/4 chiều dài của khung N.

Cửa sổ Hamming:
Cửa sổ này có chức năng giảm sai số phân tích và giảm tính gián đoạn tại các điểm đầu
và cuối mỗi khung (làm thon tín hiệu tại hai đầu của khung).
Phương trình toán học của cửa sổ như sau:
n
w(n)  0.54  0.46 cos(2 ) 0  n  N 1
N 1

với N là chiều dài cửa sổ.


n
khi đó s ' ( n)  (0.54  0.46 cos(2 ) ).s (n)
N 1

với s(n), s’(n) tương ứng là tín hiệu vào và ra cửa sổ

Khối Autocorrelation:
Khối này được dùng để tính các giá trị tương quan dùng làm đầu vào cho khối tính các hệ
số LPC.
Công thức tính các giá trị tương quan như sau:
N 1 i
r (i )   x ( n) x ( n  i )
n 0

Trong đó: x(n) là tín hiệu tiếng nói trong 1 khung có độ dài N
i = 0,1,…,p (p là bậc của bộ lọc LPC)

Khối Levinson-Durbin:
Khối này dùng để tính các hệ số LPC theo giải thuật Levinson-Durbin. Khối này nhận
đầu vào là các hệ số tương quan tính bởi khối Autocorrelation và đầu ra của nó sẽ là các
hệ số LPC

Khối Time-varying Analysis Filter:


Đây là bộ lọc đảo không truy hồi LPC, bộ lọc này được xây dựng dựa trên mô hình toàn
điểm không. Đây cũng là khối cuối cùng trong mô hình phân tích LPC, khối này nhận

65
đầu vào là tín hiệu sau khi hiệu chỉnh và các hệ số LPC sau đó tính ra tín hiệu nguồn
(chính là tín hiệu dư) theo mô hình tiên đoán tuyến tính:
x(n) = a1x(n-1) + a2x(n-2) + … + apx(n-p)

13.2 Khối tổng hợp LPC


Khối tổng hợp thực hiện quá trình ngược lại với khối phân tích, tức là tổng hợp lại tiếng
nói ban đầu từ các hệ số LPC và tín hiệu dư (nguồn âm) nhận được từ phía phân tích.
Hình sau mô tả sơ đồ các khối tổng hợp LPC

Hình 2.15 Mô hình tổng hợp tiếng nói LPC

Khối Time-Varying Synthesis Filter:


Đây là bộ lọc truy hồi LPC, được xây dựng dựa trên mô hình toàn điểm cực, dùng để
tổng hợp lại tín hiệu tiếng nói ban đầu từ tín hiệu nhận được từ khối phân tích. Bộ lọc này
là hệ đảo của bộ lọc đảo LPC có hàm truyền đạt
1 1
H ( z)  
A( z ) 1  a1 z  a 2 z  2  ....  a p z  p , trong đó A(z) là hàm truyền đạt của bộ lọc
1

đảo LPC.
Như vậy: y(n) = x(n) + a1y(n-1) + a2y(n-2) + … + apy(n-p)
Trong đó x(n), y(n) tương ứng là tín hiệu vào và ra của bộ lọc

Khối De-Emphasis:
Đây chính là một bộ lọc hiệu chỉnh ngược với khối Pre-Emphasis trong pha phân tích,
chức năng dùng để hiệu chỉnh lại tín hiệu sau khi tổng hợp và đầu ra cho ta tín hiệu tổng

66
1
hợp lại. Bộ lọc này có hàm truyền đạt: H ( z )  ,với hệ số a giống như trong khối
1  az 1
Pre-Emphasis.
Như vậy s’(n) = s(n) + a.s(n-1)
với s(n), s’(n) tương ứng là tín hiệu vào và ra của bộ lọc.

14. Chuẩn LPC 10e


14.1 Giới thiệu
Trong mô hình LPC đã nêu ở phần trên, các tham số truyền đi bao gồm các hệ số LPC và
tín hiệu dư (nguồn âm) của tín hiệu tiếng nói ban đầu, phương pháp này có ưu điểm là
tiếng nói tổng hợp rất chính xác, nhưng nhược điểm lớn nhất là tỷ lệ nén không cao.
Một yêu cầu trong thực tế là cần một hệ thống tổng hợp tiếng nói có chất lượng tiếng nói
tổng hợp chấp nhận được nhưng yêu cầu cơ bản là tỷ lệ nén phải cao. Vì vậy phương
pháp LPC đã có một cải tiến và LPC - 10e là một cải tiến áp dụng cho mô hình tổng hợp
LPC. LPC - 10e đã đạt được một tỷ lệ nén cao nhờ phát triển các mô hình ngắn hạn, trạng
thái ổn định của ống âm và chỉ truyền đi những tham số đã được mã hoá và lượng tử của
những mô hình này. Tức là thay vì phải truyền đi tín hiệu nguồn âm, LPC - 10e chỉ truyền
đi các tham số liên quan đến tín hiệu nguồn đã được mã hoá và lượng tử. Ở phần tổng
hợp, bộ tổng hợp sẽ tổng hợp lại tín hiệu nguồn và sau đó mới tổng hợp tín hiệu tiếng nói
ban đầu.

Đặc điểm của LPC - 10e


 Mô hình LPC được áp dụng với bộ lọc LPC bậc 10.
 Mô hình LPC được đại diện bằng một vector tham số có dạng:
A = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, G, V/UV, T)
Trong đó: ai (i=1,2,…,10) là các hệ số bộ lọc LPC
G - là trọng số kích thích
V/UV - là các quyết định âm hữu thanh hay vô thanh.

67
T - là chu kỳ pitch (chỉ áp dụng với âm hữu thanh)
 Tín hiệu tiếng nói 16 bit được lấy mẫu ở tần số 8kHz và được chia thành các frame
có kích thước 22.5 ms (hay 180 mẫu), do đó tốc độ frame sẽ là 44.44 frame/sec.
Mỗi frame sẽ được đặc trưng bằng một vector A và các vector A sẽ thay đổi theo
từng frame.
Như vậy 180 mẫu tiếng nói:
S = (s(0), s(1), s(2), … , s(179))
sẽ được đặc trưng bằng 13 giá trị của vector A.
 Mỗi frame sẽ được mã hoá thành 54 bit và truyền đi, do đó tốc độ bit sẽ là
2,4kbps.
Như vậy quá trình phân tích và tổng hợp theo LPC 10e được chia làm 2 quá trình như
sau:
 Phân tích LPC: Từ tín hiệu tiếng nói ban đầu S, tìm ra vector tham số A tốt nhất
mà đặc trưng cho tín hiệu S.
 Tổng hợp LPC: Từ vector tham số A, tổng hợp thành tín hiệu tiếng nói S.

14.2 Xây dựng mô hình


Mô hình phân tích và tổng hợp LPC có thể được mô tả qua sơ đồ sau:

s(n) Ak Dòng bit


Phân tích Mã hoá
LPC

s’(n) A’k
Tổng hợp Giải mã
LPC 2.4 kbps
Hình 2.16 Sơ đồ phân tích và tổng hợp LPC
 Sơ đồ cho thấy, mô hình phân tích và tổng hợp LPC được chia thành 4 khối
chính:
 Phân tích: khối này nhận đầu vào là các frame tín hiệu tiếng nói s(n) và phân
tích tìm ra vector tham số A đặc trưng cho frame đó.

68
 Mã hoá: khối này sẽ lượng tử và mã hoá vector tham số A thành một chuỗi các
bit để truyền qua một kênh với giải thông 2.4 kbps.
 Giải mã: khối này sẽ giải mã dòng bit nhận được từ kênh truyền để nhận được
vector tham số A’ (vector này là một xấp xỉ của vector A)
 Tổng hợp LPC: khối này nhận đầu vào là vector tham số A’ và tạo ra tín hiệu
tiếng nói s’(n) ( tín hiệu này là một xấp xỉ của tín hiệu tiếng nói ban đầu s(n)).

a, Phân tích
Khối phân tích nhận đầu vào là 180 mẫu tín hiệu tiếng nói:
S = (s(0), s(1), s(2), … , s(179))
Và tìm ra vector tham số thích hợp nhất đặc trưng cho 180 mẫu tín hiệu này:
A = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, G, V/UV, T)
Như vậy vấn đề cơ bản nhất của khối phân tích là:
 Xác định các hệ số LPC: ai (i=1,…,10)
 Xác định gain: G
 Xác định tiếng nói V/UV
 Chu kỳ pitch: T

Xác định các hệ số LPC


Các hệ số LPC có thể được xác định bằng phương pháp tự tương quan (điển hình là thuật
toán Levinson – Durbin) hoặc phương pháp tuyến tính, hai phương pháp này đã được mô
tả ở phẩn trên. Ở đây chúng ta dùng giải thuật Levinson – Durbin:
for i=1,2,…,10
E  0   r (0)


 i 1 

r i  j 
(i 1)
k i  r (i )    j E (i 1) , k  1, p

 j 1 

for j=1,2,...,i-1
 i(i )  k i

69
 (ji )   (ji 1)  k i i(i j1) , j  1, i  1

E (i )  (1  k i2 ) E (i 1)

Xác định Gain

Theo chuẩn LPC 10e, thì G (gain) được xác định bởi năng lượng RMSE (Root Mean
Square Energy) của từng khung tín hiệu nguồn. Ở đây năng lượng RMSE được tính theo
công thức:
1/ 2
 1 179 2 
En    u n (i)
180 i 0
Với: En là năng lượng RMSE của frame thứ n
un(i) là mẫu tín hiệu nguồn thứ i trong frame thứ n.

Xác định pitch và voicing

Chuẩn LPC 10e đã cải tiến bằng cách thay vì phải truyền tín hiệu nguồn, chúng ta chỉ cần
truyền đi các tham số của tín hiệu nguồn. Các tham số ở đây bao gồm: Voicing
(voiced/unvoiced) và pitch (chu kỳ) .
Voing và pitch được xác định dựa trên dạng sóng của tín hiệu nguồn.
Pitch sẽ được xác định cho từng frame bằng cách tối thiểu hoá hàm vi sai biên độ trung
bình AMDF (Average Magnitude Difference Function). Ở đây hàm vi sai biên độ trung
bình sẽ được tính theo tín hiệu nguồn trong một frame dữ liệu và chu kỳ  nằm trong
khoảng xác định của pitch:
T
1
T 0
AMDF ( )  | u (t )  u (t   ) | dt

với u(t) là tín hiệu nguồn của tín hiệu tiếng nói ban đầu.
   20 ; 156 là khoảng xác định của pitch.

Hay có thể tính theo:


AMDF ( )   2  R(0)  R( ) ,  < 1.
1/ 2

70
Trong đó:
R(  ) là tự tương quan của tín hiệu nguồn, được tính theo công thức:
179 
R ( )   u (n).u (n   )
n 0
, u(n) là tín hiệu nguồn

Sau khi có tập giá trị hàm AMDF, pitch và voicing sẽ được xác định dựa trên các
giá trị AMDF nhỏ nhất, khoảng cách giữa 2 giá trị AMDF nhỏ nhất sẽ cho ta chu kỳ pitch
và khi đó voicing là 1 (voiced - hữu thanh). Ngược lại nếu pitch không tồn tại thì voicing
là 0 (unvoiced - vô thanh).

b, Mã hoá
Khối mã hoá sẽ thực hiện mã hoá vector tham số A thành một gói dữ liệu 54 bit để truyền
đi:

Thành phần Số bit mã hoá


Đồng bộ frame 1 bit
Pitch và voicing 7 bit
Cường độ (Gain) 5 bit
A1 5 bit
A2 5 bit
A3 5 bit
A4 5 bit
A5 4 bit
A6 4 bit
A7 4 bit
A8 4 bit
A9 3 bit
A10 2 bit
Tổng cộng 54 bit

71
Bảng 2.17 Sự phân bố các bít mã hoá
Trong đó:
 A1 và A2 : được mã hoá theo LARs (Log Area Ratio)
 A3 – A10 : được mã hoá tuyến tính
 G (gain): mã hoá bằng phương pháp tìm kiếm bảng nhị phân
 Pitch và voicing: mã hoá bằng bảng tìm kiếm
Như vậy trong dòng bít truyền đi, có 41 bit được sử dụng cho các hệ số phản xạ, 7bit cho
điểm pitch và voiced/unvoiced, 5 bit cho Gain, và 1 bit thêm được sử dụng cho việc đồng
bộ. Tức là tổng số 54 bit được sử dụng cho mỗi frame được gửi đi, và do đó đã tạo ra một
dòng dữ liệu nén với tốc độ bit là:
54 bit/frame * 44.44 frame/sec = 2400 bit/sec
Đối với các frame vô thanh thì pitch không tồn tại, do đó các bit pitch và voicing được
kết hợp thành một ký tự đơn. Đối với các frame này thì chỉ 4 hệ số LPC đầu tiên (A 1 –
A4) được mã hoá, vì vậy các frame vô thanh sẽ có đặc điểm là có ít điểm cực hơn. Và khi
đó 21 bit còn lại sẽ được sử dụng để mã hóa cho các tham số quan trọng nhất của frame
vô thanh: gain và các hệ số LPC A1 – A4.

Gói dữ liệu tiếng nói (1- 54 bit)


silience

1 32 21
Pitch, voicing, Gain Các hệ số phản xạ từ
Các hệ số phản xạ từ a1 – a4 a5 – a10

Slient frame
Unvoiced frame

Voiced frame
Hình 2.18 Cấu trúc gói dữ liệu theo chuẩn LPC 10e
Giải thuật mã hoá các tham số tiếng nói được mô tả như sau:

72
 Trước hết chuyển đổi các tham số gain và các hệ số phản xạ thành các số nguyên.
 Thứ hai, mã hoá pitch và voicing theo luật sau:
 Nếu frame là tiếng nói (v =1, với v là quyết định voicing) thì mã hoá ipitch
= entau[pitch -1], trong đó ipitch là giá trị mã hoá của pitch và entau là
bảng dò tìm pitch.
 Nếu frame không phải tiếng nói (v=0) thì ipitch = 0
 Thứ ba, mã hoá gain bằng phương pháp tìm kiếm nhị phân của một bảng các giá
trị năng lượng RMS
 Thứ tư, mã hoá A1 và A2 theo LARs bởi một bảng tra cứu LAR.
 Thứ năm, mã hoá tuyến tính A3 – A10.
 Cuối cùng áp dụng các cơ chế bảo vệ lỗi đối với các tham số quan trọng nhất trong
các frame hữu thanh.

c, Giải mã
Khối giải mã sẽ giải mã các gói dữ liệu 54 bit nhận được thành vector tham số đặc trưng
cho tín hiệu tiếng nói ban đầu:
A’ = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, G, V/UV, T)

Thuật toán mã hoá các tham số tiếng nói được mô tả như sau:
 Đầu tiên các tham số pitch và voicing sẽ được giải mã. Nếu không có lỗi thì các
tham số sẽ được giải mã ngay mà không cần phải hoãn lại. Khi đó voicing của
frame sẽ được đặt là 1. Việc giải mã pitch sẽ được thực hiện nhờ phép nội suy
tuyến tính, và sau đó pitch sẽ được làm trơn.
 Sau đó các hệ số LPC sẽ được làm trơn và giải mã. Trong đó việc giải mã A 1 và A2
được thực hiện bằng cách nội suy LARs (Log Area Ratio). Còn A 3 – A10 được giải
mã nhờ thực hiện nội suy tuyến tính.
 Tiếp theo Gain sẽ được giải mã nhờ thực hiện nội suy Logarit.
 Cuối cùng Gain và các hệ số LPC sẽ được chuyển đổi từ các số nguyên thành các
số thực.

73
 Trong trường hợp có lỗi thì tất cả các bit của các tham số quan trọng nhất sẽ được
bảo vệ bằng mã Hamming và làm trơn trung vị.

d, Tổng hợp
Khối tổng hợp nhận vào một vector tham số đặc trưng cho frame tín hiệu tiếng nói ban
đầu và tổng hợp lại thành frame tín hiệu đó.
Việc tổng hợp này được diễn ra như sau:
 Tạo tín hiệu nguồn kích thích: việc tạo tín hiệu nguồn này được thực hiện dựa vào
voicing và chu kỳ pitch:
 Nếu là frame tiếng nói (voiced): thì nguồn âm sẽ được tạo từ một chuỗi
xung đơn vị tuần hoàn với chu kỳ pitch khi cho nó qua một bộ lọc thông
thấp tần số cắt khoảng 100 Hz.
 Nếu không phải frame tiếng nói (unvoiced): thì nguồn âm sẽ được tạo bởi
một nhiễu ngẫu nhiên (ở đây dùng hàm Gausse ngẫu nhiên).
 Dựa vào hệ số Gain để xác định biên độ của tín hiệu nguồn
 Tổng hợp tín hiệu ban đầu bằng cách cho tín hiệu nguồn kích thích qua bộ lọc tổng
hợp LPC mà đã được xác định bởi các hệ số tiên đoán tuyến tính và sau đó hiệu
chỉnh để làm trơn tín hiệu tổng hợp.

74
Chương 3 Xây dựng chương trình
Sau khi tìm hiểu về ứng dụng của phương pháp dự đoán tuyến tính trong xử lý tiếng nói.
Trong chương này tôi sẽ trình bày việc xây dựng chương trình mô phỏng mô hình tạo
tiếng nói LPC cũng như ứng dụng của phương pháp dự đoán tuyến tính trong phân tích
tiếng nói như: Dò tìm Formant, tìm F0.

3.1 Mục đích


Mục tiêu của của chương trình đề ra là xây dựng một phần mềm có chức năng tổng hợp
tiếng nói theo phương pháp LPC, và ứng dụng của phương pháp LPC trong dò tìm
Formant, tìm F0 góp phần tìm hiểu về phương pháp LPC trong xử lý tiếng nói. Mục đích
của phần mềm bao gồm:
- Ghi tín hiệu tiếng nói thành tệp dạng *.wav với tần số lấy mẫu, số bít mã hoá là
tuỳ chọn.
- Thao tác được tất cả file *.wav, cho phép cắt dán, thay đổi nội dung của file tín
hiệu.
- Cung cấp công cụ cho phép nghe file wav.
- Xác định được Formant và tấn số cơ bản của tín hiệu tiếng nói.
- Xác định các thông số LPC như: hệ số dự đoán, sai số LPC.
- Xây dựng mô hình tạo tiếng nói LPC.
- Giao diện thân thiện, dễ sử dụng.

15.Phân tích & lựa chọn giải pháp


Để có được một kết quả chính xác thì cần phải lưu ý đến các điều kiện phân tích như:
phương pháp phân tích, tần số rời rạc, số bít mã hoá, bậc của bộ lọc dự đoán, dạng cửa
sổ, tham số bộ lọc hiệu chỉnh,…
15.1 Lựa chọn tần số lấy mẫu
Để xử lý tín hiệu số nói chung và xử lý tín hiệu tiếng nói thì tín hiệu liên tục cần phải
được rời rạc. Tần số rời rạc càng lớn thì tín hiệu được biểu diễn càng chính xác, phép xử

75
lý cho kết quả chính xác hơn. Tuy nhiên, khi tần số lấy mẫu lớn thì số mẫu cần thiết để
biểu diễn cho cùng một đoạn tín hiệu tương tự càng nhiều, do đó yêu cầu về bộ nhớ lưu
trữ số liệu và khối lượng tính toán tăng lên. Vì thế, phải chọn lựa tần số lấy mẫu sao cho
việc biểu diễn tín hiệu tương tự được rời rạc với tần số tối thiểu nhưng không bị mất
thông tin, không gây hiện tượng chồng phổ. Theo định lý lấy mẫu Shannon thì tần số lấy
mẫu phải lớn hơn hoặc bằng hai lần tần số cao nhất của tín hiệu. Chúng ta đã biết rằng
trong cơ chế tạo tín hiệu tiếng nói, với độ dài trung bình của tuyến âm khoảng 17cm,
năm formant đầu tiên nằm trong khoảng 2503800Hz. Đối với những tuyến âm ngắn
hơn(đối với nữ giới và trẻ em), vùng chứa formant cao hơn một chút nhưng không vượt
quá 5000Hz. Do đó, chúng ta chọn tần số rời rạc trong khoảng 10000Hz. Mối quan hệ
giữa tần số lấy mẫu và độ dài tuyến âm được biểu diễn theo công thức:
M .c
Fs  ( kHz ) (4.1.1)
2L

trong đó:
M: Bậc của bộ lọc
C=34cm/s: Tốc độ truyền sóng tuyến âm
L: Độ dài tuyến âm.

15.2 Bộ lọc hiệu chỉnh


Như đã trình bày trong phần bộ lọc hiệu chỉnh, tốc độ âm lượng tại thanh môn và sự tán
xạ tại môi thì đặc tính của phổ bị suy giảm tương ứng khoảng 12dB/oct và 6dB/oct. Để
loại bỏ ảnh hưởng này ta dùng bộ lọc có dạng (1-az -1), thường chọn bậc của bộ lọc a nằm
trong khoảng 0.96  a  1.

15.3 Hàm cửa sổ và độ dài đoạn tín hiệu


Sử dụng cửa sổ thời gian rất cần thiết trong phân tích tín hiệu và việc lựa chọn hàm cửa
sổ khác nhau thì sẽ cho những kết quả khác nhau. Tuy nhiên nếu áp dụng phương pháp
tiên đoán tuyến tính theo phương pháp covariance thì việc sử dụng cửa sổ gây nên những
ảnh hưởng không tốt. Cửa sổ thời gian cần đảm bảo độ phân giải cao trong vùng tần số để

76
tách các thành phần phổ nằm cách nhau một khoảng tần số tối thiểu. Ngoài ra đặc tính
tách biên độ của nó cần phải đảm bảo sự phân biệt rõ ràng các thành phần phổ nằm trong
và ngoài dải của nó. Dạng cửa sổ và độ dài của nó ảnh hưởng rất lớn đến độ phân giải
trong vùng tần số. Trên thực tế có nhiểu kiểu cửa sổ được đưa ra, tuy nhiên chúng ta chỉ
quan tâm đến hai loại cửa sổ chính đấy là Hamming và Hanning vì chúng cho các kết quả
tốt nhất.

Hình 3.1 Phân đoạn tín hiệu tiếng nói

Trên thực tế, thường sử dụng hàm cửa sổ Hamming với chiều dài đoạn tín hiệu được lấy
cửa sổ là 30ms, nếu tần số lấy mẫu là 10Khz thì có 300 mẫu. Và các đoạn tín hiệu tiếng
nói được lấy cửa sổ cách nhau một đoạn 10ms.

15.4 Bậc của bộ lọc đảo


Ta thấy rằng bậc của bộ lọc đảo liên quan đến hệ số sự đoán tuyến tính và bậc của bộ lọc
đảo được chọn từ quan điểm thực tế yêu cầu của hệ số tối thiểu nhưng vẫn đảm bảo được
mô hình hoá những đặc trưng cơ bản của tín hiệu tiếng nói được chính xác. Từ công
thức(4.1.1) ta thấy rằng:

2L
M  Fs (4.1.2)
c

Như vậy bậc của bộ lọc đảo tỉ lệ với tần số lấy mẫu. Dùng bộ lọc đảo có bậc càng cao thì
kết quả phân tích càng chính xác. Tuy nhiên, nếu chúng ta lấy bậc của bộ lọc đảo cao quá
thì sảy ra hiện tượng trong việc xác định formant đấy là có nhiều formant giả, còn nếu
bậc nhỏ quá thì lại gây hiện tượng mất một số formant.

77
Nếu tần số lấy mẫu là 10Khz thì trong đoạn [0 .. F s] có khoảng 5 formant, vì thế chúng ta
có thể lựa chọn bậc của bộ lọc đảo là 12. Tuy nhiên đối với phụ nữ có tần số formant lớn
hơn khoảng 12-15%, chọn bậc của bộ lọc đảo 10.

3.2 Chức năng của chương trình


Chương trình được viết bằng ngôn ngữ Visual C++ với các chức năng được minh họa
theo hình 3.2

Hệ thống

Đọc Ghi dữ Phân Mô Hiển Phát


dữ liệu liệu tích hình thị dữ dữ liệu
file file LPC tổng liệu tín file
wav wav hợp hiệu wav

Hình 3.2 Sơ đồ chức năng của chương trình

Đọc fileWav
Do dữ liệu tiếng nói được lưu trữ chủ yếu dưới dạng file wav, và chương trình cũng chỉ
làm việc với các file dữ liệu là file wav, nên chương trình phải có chức năng đọc được dữ
liệu từ file wav.

Ghi fileWav
Đối với bất kỳ một hệ thống, ngoài việc xử lý với các dữ liệu có sẵn, thì hệ thống còn
phải có chức năng tạo ra các dữ liệu mới. Mặt khác vì hệ thống chỉ làm việc với các dữ
liệu được ghi dưới dạng file wav, nên chương trình phải có chức năng cho phép ghi mới
dữ liệu dưới dạng file wav. Chương trình còn cho phép người sử dụng lựa chọn các định
dạng dữ liệu tuỳ thích như tần số lấy mẫu, số kênh, số bit mã hoá một mẫu,…

78
Phân tích LPC
Chức năng phân tích sẽ tiến hành phân tích dữ liệu tiếng nói và tìm ra các tham số đặc
trưng cho tín hiệu tiếng nói ban đầu, ở đây quá trình phân tích và tổng hợp được thực
hiện theo mô hình tiên đoán tuyến tính (LPC), nên các tham số sẽ là voicing, pitch, gain
và các hệ số LPC. Ngoài ra, chương trình còn cho phép dùng phương pháp LPC phân tích
tín hiệu tiếng nói như: tìm Formant, F0, xác định đường bao phổ.

Mô hình tổng hợp LPC


Mô hình tổng hợp cho phép tạo tín hiệu tổng hợp từ các nguồn kích thích (hữu thanh và
vô thanh). Đồng thời phân tích phổ của tín hiệu đã được tổng hợp và hiển thị các điểm
cực của hàm truyền. Ngoài ra, trong phần này còn minh họa mô hình đường ống tổn hao.

Hiển thị dữ liệu tín hiệu


Chức năng này sẽ hiển thị dữ liệu tới người sử dụng, qua đó chúng ta có thể thấy được
một cách trực quan về các dạng tín hiệu, và phổ của chúng từ đó có thể so sánh độ chính
xác của hệ thống.

Phát dữ liệu file wav


Tiếng nói là một công cụ phục vụ cho quá trình giao tiếp của con người, con người có thể
thu nhận và hiểu được thông tin cần thiết qua lời nói. Vì vậy nếu chỉ hiển thị tín hiệu
tiếng nói thì chúng ta chỉ có thể nhận biết được dạng của tín hiệu và một phần rất ít thông
tin của lời nói mà không thể hiểu chính xác nội dung thực sự của lời nói. Vì vậy chương
trình cần phải có chức năng phát âm dữ liệu âm thanh, qua đó chúng ta có thể hiểu được
chính xác nội dung thực sự của tín hiệu đồng thời có thể so sánh một cách trực quan độ
chính xác của quá trình phân tích và tổng hợp tín hiệu.

3.3 Giao diện của chương trình


Giao diện chính của chương trình như sau

79
Hình 3.3 Giao diện chính của chương trình
Trong chương trình phần mô phỏng mô hình tạo tiếng nói LPC có giao diện như sau

Hình 3.4 Giao diện của mô đun Synthesis

80
3.4 Một số nhận xét và đánh giá kết quả
Phần này tôi sẽ trình bày các kết quả mà chương trình đạt được và từ đó đánh giá được
tính chính xác của chương trình.
Với thuật giải dựa trên phương pháp LPC để tìm Formant và tần số cơ bản F0 chương
trình đã cho kết quả khá chính xác.

Hình 3.5 Hiển thị Formant và F0 của nguyên âm i với chương trình
Với chương trình wave buffer

Hình 3.6 Hiển thị Formant và F0 của nguyên âm i với Wave buffer

81
Và ta tính được phổ và đường bao phổ của đoạn tín hiệu cần phân tích

Hình 3.7 Phổ và đường bao phổ của đoạn tín hiệu nguyên âm i
Các hệ số LPC và các thông số khác của tín hiệu tiếng nói được đưa ra trong form sau

Hình 3.8 Các tham số của đoạn tín hiệu


Dạng tín hiệu sau khi qua cửa sổ, sai số LPC và hàm tự tương quan

82
Hình 3.9 Dạng đoạn tín hiệu sau khi qua cửa sổ Hamming, sai số LPC và hàm tự tương
quan của tín hiệu
Với chương trình mô phỏng mô hình tạo tiếng nói LPC ta cũng đạt được những kết quả
sau

Hình 3.10 Dạng tín hiệu tổng hợp và phổ với nguồn kích thích là tuần hoàn

83
Hình 3.11 Tín hiệu tổng hợp và phổ với nguồn kích thích không tuần hoàn
Từ kết quả trên ta thấy với nguồn kích thích tuần hoàn thì phổ của tín hiệu tổng hợp có
dạng phổ vạch, còn với nguồn kích thích không tuần hoàn thì phổ tín hiệu tổng hợp là
phổ trắng.
Chương trình còn thể hiện các điểm cực của hàm truyền H(z)

Hình 3.12 Điểm cực của hàm truyền H(z)


Với |ki|<1 và |ai|<1 các điểm cực nằm trong vòng tròn đơn vị, hệ đạt được ổn định.
Nếu các điểm cực nằm trên và ngoài vòng tròn đơn vị hệ không ổn định.

84
Hiển thị
3.5 Hướng dẫn sử dụng chương trình Hiển thị
cửa sổ tín
hiệu, sai số
phổ đoạn
Phóng to và thu Thông số LPC
Mở file Dừng phát
Tạm tín hiệu
nhỏ đoạn tín hiệu tín hiệu
dừng

Chương trình
Phát Tạo Dịch Hiển thị cửa tổng hợp Trợ giúp
đoạn tín file wave chuyển sổ cepstrum LPC
hiệu khung của tín hiệu
nhìn

Hình 3.13 Hướng dẫn sử dụng thanh công cụ của chương trình
Ngoài ra chương trình còn cung cấp cho người dùng các tùy chọn ghi âm tiếng nói, tùy
chọn mầu sắc hiển thị và tùy chọn tham số tính toán.

Hình 3.14 Tùy chọn ghi âm


Trong form tổng hợp LPC người dùng có thể thay đổi giá trị của các hệ số ai, ki, hệ số
tăng ích G và chu kỳ của nguồn tuần hoàn thông qua các thanh cuộn (Scroll bar).

85
Kết luận
Như vậy, qua việc tìm hiểu về phương pháp LPC

86
Tài liệu tham khảo

87

You might also like