Professional Documents
Culture Documents
Tìm Hiểu Về Phương Pháp Lpc Trong Xử Lý Tiếng Nói
Tìm Hiểu Về Phương Pháp Lpc Trong 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”.
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
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
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.
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.
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
n0
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.
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:
Đố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.
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
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.
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.
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.
1
0 R x lim | x(n) |1 / n | z | Rx
n lim | x( m) |1 / m
m
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)
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.
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)
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)
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
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 ...
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ố.
tiếng nói
sóng tham số
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ý.
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.
24
Hình 1.10 Chất lượng tiếng nói theo tốc độ bít
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.
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).
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.
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).
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ã.
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.
Hình 1.14 Mô hình tổng hợp tiếng nói bằng phương pháp formant
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%
Hình 1.15 Mô hình tổng hợp tiếng nói bằng phương pháp LPC
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
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
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.
N p 1
En e
m0
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 )
0k 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 )
0k p
(2.15b)
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
N 1
En e
m0
2
n ( m) (2.20)
39
N 1 1 i p
n (i , k ) s n ( m i ) s n ( m k ) (2.21)
m 0 0k 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
mi
n ( m) s n ( m i k )
0k p
(2.22)
hay
N k 1 1 i p
n (i, k ) s
m k
n ( m) s n ( m k i )
0k 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:
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 :
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
nn0
2
( n) G 2
[u (n)]
nn0
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:
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
nn0
2
( n) [ (n)]
nn0
2
1 (2.31)
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ố:
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.
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
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
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
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.
Tính A(z)
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.
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
Tính tự tương
quan
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
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
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.
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)
z-1 z-1
g0(n) g1(n) g2(n)
e(n) s(n)
-KN -K1
-KN -K1
z-1 z-1
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 m0
2
N 1
2
N 1
2
f i 1 (m) f i 1 (m 1)
m 0 m0
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ạ
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:
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
56
Hình 2.10 Sơ đồ thực hiện phân tích LPC
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:
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.
58
p
X ( z ) ai z i X ( z ) GU ( z ) (3.3)
i 1
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)
Đẳ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
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.
đươ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
60
p
r k ai r i k , k 1, p (3.14)
i 1
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.
61
E 0 r (0)
i = 1:
k1 r (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))
Ta có thể kiểm tra kết quả bằng cách giải trực tiếp (3.21).
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 )
ni
(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.
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.
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
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
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
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)
đả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.
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.
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
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)
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.
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.
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:
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.
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.
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 2503800Hz. Đố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.
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.
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.
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.
Hệ thống
Đọ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ổ.
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
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
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)
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.
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