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.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
88 trang |
Chia sẻ: maiphuongdc | Lượt xem: 7819 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Tìm hiểu về phương pháp LPC trong xử lý tiếng nói, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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ã 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).
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
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.
Hình 1.13 Kiến trúc của mã hoá AbS. (a): Mã hoá. (b): Giải mã.
Tổng quan về tổng hợp tiếng nói
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 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.
Các mô hình tổng hợp tiếng nói
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:
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%
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ố a1 è 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ố ai. 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ỉ 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.
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.
Chương 2 Ứng dụng của LPC trong xử lý tiếng nói
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
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:
(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à :
(2.2)
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 :
(2.3)
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ó :
(2.4)
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 = ak 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 ak 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 :
(2.5)
(2.6)
(2.7)
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 ak mà tối thiểu hoá En trong biểu thức (2.7) bằng cách thiết lập: ¶En/¶ai = 0, i = 1,2,…p. Theo cách đó nhận được công thức như sau:
(2.8)
trong đó a’k là giá trị của ak mà En tối thiểu. Vì a’k là duy nhất nên chúng ta sẽ coi đó là ak.
Nếu chúng ta định nghĩa :
(2.9)
Thì biểu thức (2.8) được viết ngắn gọn hơn :
(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 {a 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ó :
(2.11)
Sử dụng công thức (2.10) ta có thể viết nhanh En như sau :
(2.12)
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 ak.
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 sn(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:
(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.
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 :
(2.15a)
hay là :
(2.15b)
Ta viết lại biểu thức như sau :
(2.16)
Vì thế công thức (2.10) được viết như sau :
(2.17)
(2.18)
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 :
(2.19)
Phương pháp covariance
Cách tiếp cận thứ hai để định nghĩa đoạn tiếng nói sn(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 fn(i,k), Có nghĩa là nếu chúng ta định nghĩa :
(2.20)
Như vậy thì fn(i,k) trở thành:
(2.21)
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 fn(i,k) như sau:
(2.22)
hay
(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 fn(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 sn(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 En 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ể:
(2.24)
Hệ phương trình trên được biểu diễn ở dạng ma trận như sau:
(2.25)
Trong trường hợp này vì fn(i,k) = fn(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 :
fn(i+1,k+1) = fn(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 fn(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ị {fn(i,k)} có các tính chất của một ma trận hiệp biến.
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:
(2.28)
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) = d(n) có nghĩa là xung đơn vị tại n = 0:
u(n) = d(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 :
(2.30)
Trong đó :
mu(n) Là giá trị trung bình của quá trình u(n)
x Là kỳ vọng toán học
s2u(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ì :
(2.31)
Và như thế hệ số khuếch đại được biểu diễn như sau :
G2 = aM (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ố:
x[e(n)]2 = G2 x[u(n)]2 = aM (2.33)
và G2 = aM (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.
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.
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 :
Y = AC (2.35)
Trong đó :
C : ma trận hiệp biến với các phần tử là cik
A : véctor cột với các phần tử là ak
Y : 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 :
với 1 £ j £ i-1 (2.37)
Hay là:
với 1 £ j £ i-1 (2.38)
và các phần tử thuộc đường chéo là:
với 1 £ j £ i-1 (2.39)
hay:
với i >=2 (2.40)
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ó :
VDV’A = -Y (2.42)
đặt DV’A = Y ta thu được :
VY = -Y (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 :
với 2 £ i £ M (2.44)
với điều kiện đầu:
Y1 = -Y1
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
với 1 £ i £ M-1 (2.45)
với điều kiện đầu:
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:
aM = c00 + A’Y (2.46)
Ở đây, A’ là ma trận chuyển vị của A, ta có A’ = Y’D’V-1
Do đó :
aM = c00 + YtD-1V-1Y (2.47)
Từ đó ta có :
(2.48)
Như vậy sai số dự đoán bình phương aM 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ị aM 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 aM phụ thuộc vào hệ số dự đoán.
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:
a0 = R(0) (2.49)
với 1 £ i £ p (2.50)
ai,j = ki
ai,j = ai-1,j – kiai-1,i-j với 1 £ j £ i-1 (2.51)
ai = (1 - ki2) ai-1 (2.52)
cuối cùng ta thu được kết quả:
aj = aMj 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à ai,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 ai 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 tăng, ai sẽ giảm hoặc không thay đổi, ai 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 £ ai £ ai-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.
Ứng dụng LPC trong phân tích tiếng nói
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
Lọc hiệu chỉnh
Lấy cửa sổ
Xác định các hệ số ai
Tính 1/|A(eiw)|
Tính A(z)
Tìm cực đại
Quyết định
s(n)
Fk
Bk
Hình 2.2 Sơ đồ dò tìm formant dựa trên bộ lọc đảo
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ố ak của bộ lọc đảo A(z), , theo lý thuyết về nguồn lọc (source-filter) của phát âm, đáp ứ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
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 : zk = rk EXP(j2 p fk/Fs). Gọi ak = Re(ak) +jIm(ak). thì:
fk = (Fs/2 p)tan-1(Im(ak)/Re(ak))
k = (Fs/2 p)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.
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 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 thông thấp fc=800Hz
Giảm 5:1
lấy cửa sổ
Lọc hiệu chỉnh
Phân tích LPC bậc 4
Bộ lọc đảo A(z)
Tính tự tương quan
Đánh giá pitch
Hiệu chỉnh lỗi
F0
V/UV
s(n)
Hình 2.5 Sơ đồ dò tìm chu kì cơ bản sử dụng thuật toán SIFT
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 g
Các file đính kèm theo tài liệu này:
- xuli tiengnoi-88.doc