II định nghĩa lpc II.1 lpc là gì ? LPC là viết viết tắt của Linear Predictive Coding , là mã hóa với dự đoán tuyến tính, nó có ứng dụng trong nhiều chỗ. Để hiểu, trước tiên ta cần nói dự đoán tuyến tính là gì? II.2 định nghĩa dự đoán tuyến tính Dự đoán tuyến tính: tính: Về nguyên tắc, nếu ta đã có thông tin về quá khứ thì ta có thể dự đoán về tương lai ít nhiều tốt hơn (ít nhiều chính xác hơn) là ta cứ dự đoán bừa tương lai mà không có thông tin gì về quá khứ của cái ta định dự đoán. Con người ra sức nghiên cứu lịch sử nhằm rút ra các bài học trong quá khứ để có thể hành xử/dự đoán các sự kiện trong tương lai là vì vậy. Ở đây ta xét việc mã hóa tiếng nói. Giả sử tiếng nói được chia ra theo trục thời gian theo các mẫu hoặc các khung (các đoạn tiếng nói). Biểu diễn một cách toán học, ta gọi các mẫu hay các khung của tiếng nói bằng các ký hiệu S(n), với n là chỉ số về thời gian của mẫu/khung tín hiệu, khi đó nếu ta không mã hóa nguồn (theo cách không dự đoán gì hết chẳng hạn) thì việc mã hóa các giá trị S(n) sẽ đòi một số bít khá lớn do dải động của S(n) lớn và do vậy tốc độ bít sẽ lớn. Tín hiệu tiếng nói biến thì đổi khá chậm vì bộ máy phát thanh của con người gồm toàn cơ với xương nên hoạt động không nhanh được,do vậy từ một số mẫu tín hiệu hay khung tín hiệu trong quá khứ, ta có thể dự đoán tương đối chính xác mẫu hoặc khung tương lai. Tức là, từ L mẫu/khung trước đó: S(0), S(1), ..., S(-L+1) ta có thể dự đoán khá gần đúng mẫu/khung kế tiếp S(1), giá trị mẫu/khung dự đoán được ấy ta gọi là S'(1). Khi đó ta có thể viết: S'(1) = f = f [S(0), [S(0), S(-1), ..., S(-L+1)]. Dự S(-L+1)]. Dự đoán tuyến tính nghĩa là hàm f hàm f là là hàm bậc một với các biến S(0), S(-1), ..., S(-L+1). Hay ta có thể viết: S'(1) = a0.S(0) + a1.S(-1) + ... + a_L-1 a_L-1.S(-L+1) .S(-L+1) ký hiệu a_L-1 là hệ số a với chỉ số là L-1. Các hệ số a_i ở đây được xác định theo cách nào đó, bằng thống kê trung bình trên một tập các giọng nói của một tập người được chọn lựa ngẫu nhiên chẳng hạn. Do dự đoán khá chính xác nên S'(1) sẽ sai khác S(1) khá nhỏ, tức là dải động của sai số delta_1 = S(1) - S'(1) sẽ khá nhỏ, và sẽ chỉ cần ít bít hơn (do vậy tốc độ bít sẽ thấp hơn) để mã delta_1 và gửi đi. Bên thu, giả sử đã thu đúng L mẫu S(i) (i = 0, -1, -2..., -L+1) trước đó, cũng sẽ dự đoán ra được S'(1). Khi nhận được delta_1 delta_1 thì bên thu khôi phục lại mẫu/khung mẫu/khung thứ 1 là S(1) = S'(1) (tự dự đoán lấy được ở đầu thu từ L mẫu trước) + delta_1.
1
III phương pháp phân tích lpc III.1. Phân tích mã hoá dự đoán tuyến tính. III.1.1 phân tích Khi mã hoá dự đoán tuyến tính, các tham số khác nhau của tiếng nói con người được mô hình hoá, nó được truyền thay các xung mẫu hay độ sai lệch của chúng, chúng đòi hỏi dải thông lớn của kênh, cần thấy rằng các bộ đệm cần thiết để lưu giữ luồng số liệu đã làm tăng độ trễ mã hoá. Những thực hiện đầu tiên LPC đã được công nhận để truyền số liệu ở tốc độ thấp 2,4 và 4,8kb/s. ở tốc độ 2,4 kb/s mức độ chấp nhận được độ rõ tiếng nói được đảm bảo, tất nhiên chất lượng, tính tự nhiên, tính nhận biết của tiếng nói là chưa đạt vì phương pháp này phụ thuộc mạnh vào sự tạo lại tiếng nói con người, sự thực hiện của nó. Mã hoá LPC không thích hợp với tín hiệu nguồn gốc không phải tiếng nói. Hiện nay phương pháp mã hoá dự đoán tuyến tính được sử dụng rộng tãi là loại làm việc với tập hợp một số xung mẫu nhất định, đối với mỗi xung mẫu tần số con cơ bản, biên độ của nó và tín tức về loại tác động kênh được tính toán và được truyền. HÖsè LPC
Chu kú Ton M ¸y ph¸t xung
M ¸y ph¸t nhiÔu
Kho¸ Ton/nhiÔu λ (n)
Läc ví i sù thay V(h) ®æi tham sè theo thêi gian G
Hinh1: Cấu trúc bộ tổng hợp tiếng nói sử dụng dự đoán tuyến tính được dưa ra trên hình vẽ Ở đây tín hiệu kích thích được mô hình ở dạng chuỗi xung ở tần số cơ bản tone hay là nhiễu ngẫu nhiên. Sự tạo thành phổ tổng hợp từ phần liên quan đến giọng nói. Bộ phận giọng nói và hình thành âm thanh như là môi có thể được thể hiện bằng bộ lọc số với tham số thay đổi và bằng hàm truyền. 2
G
H( z ) = 1−
=
p
∑a j Z − j
G A( Z)
j=1
(1) A ( Z) =1 −
p
∑a i Z − j j=1
Số nhân tỷ lệ G và hệ số mẫu số là các tham số đặc trưng cho thiết bị giọng nói Biến đổi phương trình (1) theo thời gian có thể nhận được phương trình sai phân đối với đặc tính xung V(h), tương ứng H(z). y
V( h ) = Gλ(1) + ∑a j ν(k − j) j=1
(2) Phương trình (2) gọi là phương trình sai phân LPC, nó xác định rằng giá trị hiện tại hiện ra V(h) có thể xác định bằng tổng giá trị vào hiện tại và tổng các mẫu ở cửa ra trước đó. Vì vậy trong phân tích LPC vấn đề có thể hình thành như sau: Đo những tín hiệu V(h), yêu cầu xác định các tham số hàm truyền đạt hệ thống H(z). Nếu xét các đánh giá a j như
α j
thì lỗi (sai lệch) có thể được xác ở dạng:
Ch = V(h ) = Gλ(1) +
y
∑a j v(k − j) j=1
(3) Chúng ta xác định cơ sở đánh giá bình phương trung bình 2 p E = m{e 2n } = mV( h ) − ∑α j ν( h − j) j=1
(4) Sau khi đã đánh giá lại đạo hàm riêng từ E theo α j cho bằng đối với j = 1,..., p chúng ta nhận được p αi ν( h − j) ν(h − j) = 0 m V(h ) − j=1
∑
i=1,...,
p
(5) Tiếp theo từ tính trực giao e(h) và v(h-i) đối với i=1, . . .,p, phương trình (5) có thể biến đổi vào dạng. 3
p
∑αi R n (i, j) = R n (i,0) j=1
(6) R n (i, j ) = m{v( h − i )v( h − j )}
(7) Ở đây là sự tương quan giữa v(h-j) và v(h-j) và như vậy các hệ số α (i) có thể tìm từ phương trình (5) và (6). Phép vi phân phương trình (6) được áp dụng chỉ trong trường hợp nếu mô hình tiếng nói – là quá trình ngẫu nhiên dừng. Tất nhiên tín hiệu tiếng nói không là như thế trong khoảng dài của thời gian, cho phép tính dừng là xác thực chỉ trong khoảng ngắn tín hiệu tiếng nói. Vì vậy kỳ vọng toán học trong (10) được thay bằng tổng hữu hạn hiện tại của các xung mẫu nhỏ theo độ dài. Sau khi xác định các hệ số α (i) dừng cho hệ số chuẩn đoán trong công thức (2) cần thiết bổ xung hệ số tỉ lệ G. Mọi người đều thừa nhận xác định số nhân để năng lượng toàn bộ tín hiệu đã qua bộ lọc với đặc tính xung v(n) và bộ lọc với đặc tính xung cơ bản là bằng nhau. Trình tự xác định hệ số G như sau: Cho rằng V(h) đặc tính xung của bộ lọc tương ứng với công thức (1) còn R v(h) - Hàm tương quan của nó. Vì các hệ số a j trong công thức (1) được tìm thấy bằng phương pháp đặt ra ở trên, thì đặc tính xung V(n) thoả mãn phương trình sai phân p
V(h )
∑a k v(h − j) +Gδ(n ) j=1
(8) Từ đây sau biến đổi có thể tìm được p
G
2
= R v (0) −
∑a j Rv ( j) j=1
(9) Và như vậy nếu chuẩn đoán hệ số a j tìm được thì hệ số nhân G hoàn toàn xác định bằng phương trình (9) Đối với mô hình hoá tín hiệu tiếng nói được đo theo thời gian bằng phương pháp LPC không quên về điều kiện tính dừng, cần thiết giới hạn phân tích bằng 4
thời gian ngắn. Điều này đạt được khi làm trung bình phương trình (6) bằng tổng hữu hạn có nghĩa Rn (i, j) = m{v( h −i) v( h − j)} =
∑Vn (n − j)Vh (n − j) n
(10) đối với i = 1, . . .,p và j = 0, . . .,p Chúng ta xem xét phương pháp tương quan phân tích các phương trình được trình bày. Khi sử dụng phương pháp tương quan cho phép rằng khoảng tín hiệu Vh(n) bằng không ngoài khoảng 0 ≤ n ≤ N-1 ở đây N - độ dài chuỗi lấy mẫu chúng ta thử dự đoán giá trị không của xung mẫu đối với N ≤ n ≤ N+p. Lỗi dự doán đối với các xung mẫu sẽ khác không. Như vậy độ không chính xác của khung trước ảnh hưởng đến phần đầu của khung hiện tại. Vì đặc tính quan trọng của dự đoán tiếp sau những giới hạn đối với phương trình (10) có thể viết ở dạng N + p −1
v Rn (i, j) =n ∑Vn (n − j)Vh ( n − j) n
(11) 1≤i≤pà1≤i≤p hay là: N −i −( i − j)
Rn (i, j) =
∑Vh (n ) Vh ( n +i − j)
(12)
n
1 ≤ i ≤ p và 1 ≤ i ≤ p Phương trình (12) có thể biến đổi thành dạng hàm tự tương quan thời gian ngắn và viết nó ở dạng sau: R h (i, j) =R h ( i − j )
i=1,...,p;j=0,...,p
(13)
ở đây: N −1−( i − j)
R h ( j) =
∑Vh (n )Vh ( n + j)
(14)
n
Sử dụng phương pháp tương quan phương trình (6) có thể biễu diễn. ∑α jR h ( i − j ) = R h (i) 1 ≤ i ≤ P
(15)
Hoặc là ở dạng ma trận:
5
R h (1) R h ( p −1) α1 R h (1) R h (0) R (1) R h ( p − 2) α 2 R h (2) h = ... ... ... ... ... α − R ( p 1 ) R ( 0 ) R ( p ) p h h h
Đây là ma trận Teplexv nó là đối xứng tất cả các thành phần đường chéo là bằng nhau, phương trình (15) có thể giải quyết bằng nghịch đảo đơn giản của ma trận PxP, tất nhiên phương pháp này thường không được sử dụng vì lỗi được tích luỹ trong khi tính toán. ảnh hưởng đến độ chính xác của kết quả. Ngoài ra các phương pháp đã nêu ra có phương pháp đệ quy hiệu quả hơn. Thuật toán Durbin được sử dụng rộng rãi hơn được mô tả bằng hệ phương trình. (16)
E 0h = R 0h i −1 i −1 R h (1) − a j R h (i − j) j=1 R j = ( i−1)
∑
1≤i≤p
(17)
En
(18)
α ji = k i 1 α ji = α ji−1 − k i α ji − −1
1 ≤ j ≤ i-1
(19)
E ih = (1 − k i2 ) E ih−1
(20)
Sau khi giải phương trình (16)-(20). Tất nhiên đối với mỗi chữ số i = 1, ... , p các hệ số được xác định. α ji = α pi
1≤j≤p
(21)
Vì ở mỗi phép lặp En được tính, có thể sử dụng trạng thái lỗi với sự tăng trình tự của thiết bị dự đoán. Hệ số bổ xung ki được gọi là hệ số phản ánh. Ví dụ cho p = 2 Khi đó R h (0) R h (1) α1 R h (1) R (1) R (0) α = R (2) h h 2 h
đối với i=1 E 0h = R h (0); k =
1 Eh
R h (1) R h (0)
; α11 =
R h (1) R h (0)
2 2 R 2h (1) R h (0) − R h (1) = 1 − 2 R h (0) = R h (0) R h (0)
đối với i = 2 6
k 2 =
R h (2) − α1R h (1) 1
1
Eh
=
R h (2)R h (0) − R h (1) 2
R h (0) − R h (1) 2
2
α 22 = k 2
α12 = α11 − k 2α11 =
Từ đó
α1 = α1( 2 )
và
R h (1)R h (0) − R h (1) R h (2) R 2h (0) − R 2h (1)
α 2 = α (22)
Có nghĩa là hệ phương trình đã được giải Như vậy phương trình đối với phân tích LPC được giải khi sử dụng tiêu chuẩn lỗi bình phương trung bình nhỏ nhất, kết quả này có thể nhận được bằng phương pháp khác, ví dụ sử dụng phương pháp hiệu quả lớn nhất. Dự đoán tuyến tính khi phân tích tín hiệu tiếng nói thường sử dụng theo 2 hướng: - Tiến hành phân tích phổ thời gian ngắn tiếng nói - Xây dựng hệ thống phân tích - tổng hợp Các tham số đưa vào phương trình dự đoán qua công thức (1) được xác định là các tham số hàm truyền đạt thiết bị giọng nói, có thể đề xuất 1 số phương án cấu trúc của các bộ phân tích, tổng hợp để xây dựng bộ tổng hợp và thực hiện hàm truyền thiết bị giọng nói. Có thể nhận được cấu trúc dạng trực tiếp theo hệ số hàm dự đoán. Từ phía khác phân số (1) có thể biến đổi thành tích và nhận được cấu trúc hình dạng tầng. III.1.2. Thực hiện thực tế LPC Theo bản chất tất cả các hệ thống sử dụng phương pháp LPC khác nhau chỉ ở phương pháp phát tác động kích thích và lựa chọn tham số bộ lọc mô phỏng. Khi truyền tiếng nói bộ phân tích tương ứng tạo thành số liệu, chứa tín tức về tác động kích thích (loại tác động, tần số Tone cơ bản, hệ số khuếch đại) và về hệ số trọng lượng. Bộ lọc tạo thành tiếng nói tổng hợp ở chỗ này thường áp dụng phương pháp phân tích tổng hợp. Trên cơ sở các số liệu được tạo thành tổng hợp thông tin tiếng nói sẽ diễn ra, nó được so sánh trong quá trình truyền với thông tin gốc (hình 2). Còn tín hiệu sai lệch ε trong quá trình phân tích làm chính xác số liệu được hình thành. Những số liệu nhận được được biểu diễn bằng thiết bị mã hoá thành từ mã (từ 10 đến 80 bit phụ thuộc vào phương pháp sử dụng). Trong thực hiện các bộ phân tích các thuật toán được sử dụng tương tự như sử dụng trong ADPCM. Làm lại các từ mã nên cần không thấp hơn 1 lần trong 10 h
7
đến 25 MC. Mức chấp nhận được của độ rõ có thể đạt được ở tốc độ 4,8kb/s thậm chí 2,4kb/s Sự cố gắng của các chuyên gia thực hiện cụ thể phương pháp LPC hướng đến giảm thời gian trễ thuật toán ∆ + và giảm tốc độ truyền luồng số liệu ra. τ
λ (h)
Tham sè kÝch thÝch Bé ph©n tÝch ε h
−
+
Tõ m· M · ho¸
HÖsè bé läc Bé ph©n tÝch
+ a
Tõ m·
M · ho¸
Bé tæng hî p
λ (h)
b
Hình 2 III.2. Mô hình tổng quát của mã hoá tiếng nói theo phương pháp phân tích bằng LPC tổng hợp.
8
Hình 6. Mô hình mã hoá tiếng nói LPC phân tích bằng tổng hợp Trong đó u(n) :tín hiệu kích thích
S*(n): :tín hiệu tiếng nói tổng hợp S(n) : Tín hiệu tiếng nói gốc Ew(n ): tín hiệu sai số
Có ba loại thuật toán mã hoá thoại chủ yếu: Các bộ mã hoá dạng sóng, các bộ mã hoá thông số và các bộ mã hoá lai. Đối tượng đằng sau các bộ mã hoá dạng sóng là sinh ra một tín hiệu được tái tạo mà nó gần giống với tín hiệu gốc. Bằng việc tăng tốc độ bit, thoại được tái tạo sẽ hội tụ về tín hiệu gốc. Các bộ mã hoá thông số căn cứ vào việc tổng hợp phân tích đặc trưng thoại và chủ yếu dựa trên cơ sở mô hình hệ thống nguồn.
9