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 11−∑kakz−kvà 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(n−k)
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(n−1)−y(n−2) không có lỗi, trong khi y^(n)=y(n−1)+y(n−2)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ố.