Chỉ cần làm cho mọi thứ rõ ràng - tài sản này không phải là cơ bản nhưng quan trọng . Đó là sự khác biệt cơ bản khi sử dụng DCT thay vì DFT để tính toán phổ.
Tại sao chúng ta thực hiện chuẩn hóa trung bình Cepstral
Trong nhận dạng loa, chúng tôi muốn loại bỏ bất kỳ hiệu ứng kênh nào (đáp ứng xung của đường hô hấp, đường dẫn âm thanh, phòng, v.v.). Cung cấp tín hiệu đầu vào đó là và đáp ứng xung kênh được đưa ra bởi , tín hiệu được ghi là tích chập tuyến tính của cả hai:h [ n ]x[n]h[n]
y[n]=x[n]⋆h[n]
Bằng cách sử dụng Biến đổi Fourier, chúng ta có được:
Y[ f] = X[ f] ⋅ H[ f]
do thuộc tính tương đương tích chập của FT - đó là lý do tại sao nó rất quan trọng đối với FFT ở bước này .
Bước tiếp theo trong tính toán của cepstrum là lấy logarit của phổ:
Y[ q] = nhật kýY[ f] = nhật ký( X[ f] ⋅ H[ f] ) = X[ q] + H[ q]
bởi vì:đăng nhập( a b ) = nhật kýmột bản ghi +b . Rõ ràng, là độ chính xác . Như người ta có thể nhận thấy, bằng cách lấy cepstrum của tích chập trong miền thời gian, chúng tôi kết thúc bằng việc bổ sung trong miền cepstral (quefrency).q
Chuẩn hóa trung bình Cepstral là gì?
Bây giờ chúng ta biết rằng trong miền cepstral, bất kỳ biến dạng chập nào được biểu diễn bằng phép cộng. Chúng ta hãy giả sử rằng tất cả chúng đều đứng yên (đó là một giả định mạnh mẽ vì âm thanh và phản ứng kênh không thay đổi) và phần đứng yên của lời nói là không đáng kể. Chúng ta có thể quan sát rằng với mọi khung hình thứ i đúng là:
YTôi[ q] = H[ q+ ] XTôi[ q]
Bằng cách lấy trung bình trên tất cả các khung hình chúng tôi nhận được
1NΣTôiYTôi[ q] = H[ q] + 1NΣTôiXTôi[ q]
Xác định sự khác biệt:
RTôi[ q]= YTôi[ q] - 1NΣjYj[ q]= H[ q+ ] XTôi[ q] - ( H[ q] + 1NΣjXj[ q] )= XTôi[ q] - 1NΣjXj[ q]
Chúng tôi kết thúc với tín hiệu của chúng tôi với các biến dạng kênh được loại bỏ. Đưa tất cả các phương trình trên vào tiếng Anh đơn giản:
- Tính toán cepstrum
- Trừ trung bình từ mỗi hệ số
- Tùy ý chia theo phương sai để thực hiện Chuẩn hóa trung bình Cepstral trái ngược với phép trừ.
Cepstral có nghĩa là bình thường hóa cần thiết?
Điều này không bắt buộc, đặc biệt là khi bạn đang cố gắng nhận ra một người nói trong một môi trường duy nhất. Trên thực tế, nó thậm chí có thể làm giảm kết quả của bạn, vì nó dễ bị lỗi do nhiễu phụ gia:
y[ n ] = x [ n ] ⋆ h [ n ] + w [ n ]
Y[ f] = X[ f] ⋅ H[ f] + W[ f]
đăng nhậpY[ f] = nhật ký[ X[ f] ( H[ f] + W[ f]X[ f]) ] =nhật kýX[ f] + đăng nhập( H[ f] + W[ f]X[ f])
Trong điều kiện SNR kém, thuật ngữ được đánh dấu có thể vượt qua ước tính.
Mặc dù khi CMS được thực hiện, bạn thường có thể kiếm thêm vài phần trăm. Nếu bạn thêm vào hiệu suất đạt được từ các hệ số dẫn xuất thì bạn sẽ có được sự gia tăng thực sự về tỷ lệ nhận dạng của bạn. Quyết định cuối cùng là tùy thuộc vào bạn, đặc biệt là có rất nhiều phương pháp khác được sử dụng để cải thiện hệ thống nhận dạng giọng nói.