Nén lời nói - Trong LPC, bộ lọc dự báo tuyến tính hoạt động ở mức độ chung như thế nào?


7

Xin chào, tôi đang tham gia một khóa học về hệ thống đa phương tiện và tôi đang chuẩn bị cho kỳ thi vào thứ ba. Tôi đang cố gắng tập trung vào việc nén LPC ở mức độ chung, nhưng tôi gặp rắc rối với những gì đang diễn ra với phần bộ lọc dự báo tuyến tính. Đây là sự hiểu biết của tôi cho đến nay:

LPC hoạt động bằng cách số hóa tín hiệu tương tự và chia nó thành các phân đoạn. Đối với mỗi phân đoạn, chúng tôi xác định các tính năng chính của tín hiệu và cố gắng mã hóa chúng chính xác nhất có thể. Các tính năng chính là cao độ của tín hiệu (tức là tần số định dạng cơ bản), độ to của tín hiệu và liệu âm thanh có được phát ra hay không được truyền âm. Các thông số được gọi là thông số kích thích đường hô hấp cũng được xác định được sử dụng trong mô hình đường hô hấp để mô hình hóa tốt hơn trạng thái của đường hô hấp tạo ra âm thanh. Dữ liệu này được truyền qua mạng và được giải mã tại máy thu. Cao độ của tín hiệu được sử dụng làm đầu vào cho bộ tổng hợp có tiếng hoặc không có sóng và dữ liệu âm lượng được sử dụng để tăng biên độ của tín hiệu kết quả này.

Trong ghi chú của tôi, nó nói rằng mô hình đường dẫn sử dụng bộ lọc dự báo tuyến tính và mẫu thứ n là sự kết hợp tuyến tính của các mẫu p trước đó cộng với một thuật ngữ lỗi, xuất phát từ bộ tổng hợp.

  • điều này có nghĩa là chúng ta giữ trung bình hoạt động của các mẫu p cuối cùng ở cả bộ mã hóa và bộ giải mã? Vì vậy, tại bộ mã hóa chúng ta chỉ truyền dữ liệu tương ứng với sự khác biệt giữa tín hiệu trung bình và thực tế này?

  • Tại sao nó là sự kết hợp tuyến tính của các mẫu trước đó? Sự hiểu biết của tôi là chúng tôi trích xuất âm lượng, tần số và bản chất giọng nói / không được phát ra của âm thanh và sau đó tạo ra các tham số kích thích đường hô hấp này bằng cách chọn chúng sao cho sự khác biệt giữa tín hiệu thực tế và tín hiệu dự đoán càng nhỏ càng tốt. Chắc chắn một AVERAGE của các mẫu trước đó sẽ là một dấu hiệu tốt hơn cho mẫu tiếp theo?

Nếu có bất kỳ lỗ hổng nào trong sự hiểu biết của tôi nếu bạn có thể chỉ ra chúng sẽ rất tuyệt! Cảm ơn trước!

Câu trả lời:


13

Bộ mã hóa giọng nói LPC (bắt đầu với tiêu chuẩn LPC10 cũ, dường như là bộ mã mà bạn đề cập ở đây) dựa trên mô hình bộ lọc nguồn của sản xuất giọng nói. Lời nói có thể được đặc trưng bởi các tính chất sau:

  • Âm thanh thô phát ra từ thanh quản (thông qua sự rung động của các nếp gấp thanh âm, hoặc chỉ là không khí chảy qua nó, các nếp gấp thanh âm được mở ra).
  • Chức năng chuyển của bộ lọc đạt được bởi hệ thống khớp nối, tiếp tục lọc âm thanh thô này.

Các lập trình viên LPC sớm (LPC10) áp dụng mô hình sau của hai bước sau:

  • Thanh quản phát ra tiếng ồn trắng, đặc trưng bởi biên độ σ; hoặc một tàu xung định kỳ, đặc trưng bởi một biên độσ và một tần số f0
  • Chức năng chuyển giao của hệ thống khớp nối có dạng 11kakzkvà do đó được đặc trưng hoàn toàn bởi các hệ số ak

Do đó, nguyên tắc của các bộ mã hóa LPC sớm (như LPC10) là để ước tính các tham số này từ các khối tín hiệu âm thanh đến; truyền chúng qua mạng; và có một bộ tạo âm thanh tái tạo âm thanh từ các tham số này trên máy thu. Quan sát rằng trong quá trình này, không có mẫu âm thanh gốc nào thực sự được truyền đi. Để tạo ra sự tương đồng về âm nhạc, nó giống như nghe một màn trình diễn piano, phiên âm nó, gửi qua bản nhạc và để ai đó chơi nó ở đầu bên kia ... Kết quả ở đầu bên kia sẽ gần với màn trình diễn ban đầu, nhưng chỉ có một đại diện đã được gửi qua.

điều này có nghĩa là chúng ta giữ trung bình hoạt động của các mẫu p cuối cùng ở cả bộ mã hóa và bộ giải mã?

Không, đây không phải là cách nó hoạt động. Về phía bộ mã hóa, chúng tôi chạy một quy trình được gọi là ước tính AR (tự phát), để ước tính tập hợp các hệ số của bộ lọc AR phù hợp nhất với đường bao phổ của tín hiệu đầu vào. Đây là một nỗ lực phục hồi các hệ số của bộ lọc đã được thực hiện bởi hệ thống khớp nối.

Các hệ số này được gửi qua mạng (cùng với cao độ, cờ thoại / cờ không có tiếng và độ to). Bộ giải mã sử dụng các hệ số đó để lọc tín hiệu kích thích tổng hợp, có thể là nhiễu trắng (khung không có sóng) hoặc một tổ hợp các xung động định kỳ (khung có tiếng). Các hệ số này được sử dụng theo cách sau trên bộ giải mã để phục hồi tín hiệu đầu ray(n):

y(n)=excitation(n)kaky(nk)

Quan sát rằng vì đây là bộ lọc IIR toàn cực, các mẫu được kết hợp tuyến tính là các mẫu trước đó được tạo bởi bộ lọc.

Vì vậy, tại bộ mã hóa chúng ta chỉ truyền dữ liệu tương ứng với sự khác biệt giữa tín hiệu trung bình và thực tế này?

Không có "trung bình" và không có tín hiệu khác biệt. Bộ giải mã là một bộ tổng hợp âm thanh với một số tham số; và bộ mã hóa tìm kiếm bộ thông số cho bộ tổng hợp này phù hợp nhất với tín hiệu đầu vào.

Tại sao nó là sự kết hợp tuyến tính của các mẫu trước đó?

Các tùy chọn khác có thể thực sự có thể ở đây, nhưng lợi thế của việc sử dụng mô hình hồi quy tự động là như sau:

  • Trong mô hình này, chúng tôi sử dụng bộ lọc IIR toàn cực để mô phỏng hệ thống khớp nối. Đây là một mô hình tốt, vì nó có thể thu được các đỉnh và cực phổ mạnh với một số lượng nhỏ các hệ số; và hệ thống cấu âm là thực sự có khả năng nhấn mạnh / tình tiết giảm nhẹ dải hẹp của tần số (Xem formant ). Nếu chúng ta đã sử dụng bộ lọc FIR toàn bộ, chúng ta sẽ cần nhiều hệ số hơn để nắm bắt chính xác loại phản ứng bộ lọc mà hệ thống khớp nối có thể đạt được.
  • Ở đầu mã hóa, vấn đề ước tính các hệ số bộ lọc là hiệu quả tính toán - có thể được thực hiện bằng cách sử dụng đệ quy Levinson-Durbin trên một vài mẫu đầu tiên của tự động tương quan. Các mô hình tuyến tính phức tạp hơn (ARMA) hoặc các mô hình phi tuyến tính đắt hơn về mặt tính toán hoặc khó tính.
  • Về đầu giải mã, việc tổng hợp thực sự rất đơn giản - chúng ta chỉ cần đủ bộ nhớ để theo dõi n mẫu trước đó được phát ra bởi bộ giải mã.

Chắc chắn một AVERAGE của các mẫu trước đó sẽ là một dấu hiệu tốt hơn cho mẫu tiếp theo?

Đây không phải là sự thật. Ví dụ, giả sử tín hiệu đầu vào là sóng hình sin. Dự đoány^(n)=(2ω2)y(n1)y(n2) không có lỗi, trong khi y^(n)=y(n1)+y(n2)2 hầu hết thời gian là sai (đặc biệt, nó không nắm bắt được thực tế là sóng hình sin đang tăng một nửa thời gian, giảm nghiêm ngặt thời gian còn lại, vì vậy y(n)không nên "giữa" các giá trị trước đó). Tất nhiên, tín hiệu lời nói không phải là hình sin - nhưng bạn có thể tạo ra sức mạnh mô hình nhiều hơn từ một mô hình vớip tham số (thứ tự p AR), ngoài mô hình có số không (tính trung bình).

Ngoài ra, đáng lưu ý rằng có một định nghĩa toán học về "tốt hơn" (giảm thiểu giá trị dự kiến ​​của bình phương của lỗi), điều này mang lại một quy trình tìm giá trị tối ưu của các hệ số.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.