Oralion

Vì sao khử nhiễu đôi khi lại làm giảm độ chính xác nhận dạng giọng nói? Nhìn Speech Enhancement từ phía ASR

Trong lĩnh vực nhận dạng giọng nói, "khử nhiễu trước rồi mới đưa vào ASR" gần như được coi là một quy trình hiển nhiên. Lý do nghe cũng rất thuận tai: nhiễu nền càng ít thì tai người càng dễ nghe rõ, nên mô hình nhận dạng lẽ ra cũng dễ hiểu nội dung hơn.

Thế nhưng thực tế không phải lúc nào cũng vậy.

Những năm gần đây, ngày càng nhiều nghiên cứu cùng vô số thử nghiệm thực tế cho thấy: với các mô hình nhận dạng giọng nói lớn hiện nay, một số mô hình khử nhiễu không những không làm giảm tỉ lệ lỗi mà còn có thể khiến Word Error Rate (WER) hoặc Character Error Rate (CER) tăng lên. Nghĩa là âm thanh nghe sạch hơn, nhưng kết quả nhận dạng lại tệ đi.

Nguyên nhân không phải vì kỹ thuật khử nhiễu chưa đủ chín, mà vì Speech Enhancement (SE) và Automatic Speech Recognition (ASR) ngay từ đầu đã giải hai bài toán khác nhau.


1. Speech Enhancement và ASR theo đuổi những mục tiêu khác nhau

Phần lớn mô hình khử nhiễu được thiết kế để cải thiện trải nghiệm nghe của con người, nên khi huấn luyện thường lấy các chỉ số chất lượng âm thanh như PESQ, STOI, DNSMOS làm hướng tối ưu. ASR thì hoàn toàn khác: điều nó thực sự quan tâm là có khôi phục đúng nội dung lời nói hay không, nên cái quan trọng là WER, CER, và liệu các đặc trưng âm học có còn nhận ra được hay không.

Hai bên chú ý đến những thứ khác nhau:

Speech Enhancement quan tâm:

  • Nghe có tự nhiên, dễ chịu với tai người không.
  • Nhiễu nền đã đủ yên tĩnh chưa.
  • Điểm PESQ, STOI, DNSMOS có tăng không.
  • Dù có hy sinh một phần chi tiết giọng nói, chỉ cần cảm giác nghe tổng thể tốt hơn thì thường vẫn được đánh giá cao.

Automatic Speech Recognition quan tâm:

  • Có nhận ra đúng nội dung chữ hay không.
  • Phổ âm thanh có còn giữ đủ thông tin âm vị hay không.
  • WER, CER có giảm hay không.
  • Thường khá chịu được nhiễu nền, nhưng rất nhạy với méo tiếng nhân tạo (artifact).

Đây chính là điểm nhiều người dễ bỏ qua: ASR không tìm âm thanh nghe hay nhất, mà tìm âm thanh dễ nhận dạng nhất.

Nhiễu nền đúng là có thể ảnh hưởng tới nhận dạng, nhưng chỉ cần những đặc trưng then chốt của giọng nói còn nguyên, ASR hiện đại thường chịu được khá tốt. Ngược lại, nếu quá trình khử nhiễu làm thay đổi chính đặc trưng của giọng nói thì dù nền có yên tĩnh hơn, độ chính xác vẫn có thể giảm.


2. Vấn đề thật sự không phải nhiễu, mà là Distribution Shift

Các ASR lớn hiện nay phần lớn không phân tích trực tiếp dạng sóng gốc, mà chuyển âm thanh thành đặc trưng phổ như Log-Mel Spectrogram trước, rồi mới giao cho mạng nơ-ron.

Những mô hình này được huấn luyện trên lượng lớn bản ghi thực tế, nên cái chúng học được là phân bố dữ liệu hình thành từ đủ loại môi trường thu âm có thật — chứ không phải bản thu lý tưởng hoàn toàn không nhiễu.

Nếu mô hình khử nhiễu ở đầu vào làm thay đổi phổ giọng nói thì dù tai người gần như không nhận ra, với ASR dữ liệu đầu vào có thể đã lệch khỏi phân bố mà nó quen thuộc (out-of-distribution).

Hiện tượng này gọi là Distribution Shift.

Nhiều mô hình khử nhiễu bằng mạng nơ-ron, trong lúc loại bỏ nhiễu nền, cũng nhào nặn lại phổ giọng nói, chẳng hạn:

  • điều chỉnh năng lượng tần số cao
  • làm mượt các chi tiết trong phổ
  • làm dịch chuyển một số formant
  • dùng phương pháp sinh (generative) để bù vào tín hiệu vốn không hề tồn tại

Với tai người, những thay đổi này thường nghe rất tự nhiên; nhưng với ASR, chúng lại có thể phá hỏng đúng những đặc trưng mà nó dựa vào để phân biệt các âm vị.

Vì vậy, thứ thực sự ảnh hưởng tới độ chính xác thường không phải còn sót lại bao nhiêu nhiễu nền, mà là quá trình khử nhiễu có làm thay đổi những đặc trưng giọng nói mà mô hình vốn đã quen hay không.


3. Khử nhiễu quá tay dễ làm mất luôn thông tin giọng nói quan trọng

Trong ứng dụng thực tế, vấn đề hay gặp nhất là thông tin tần số cao bị suy giảm theo.

Để nền nghe sạch hơn, nhiều mô hình khử nhiễu nén khá mạnh năng lượng ở tần số cao. Thế nhưng tần số cao lại chính là nguồn thông tin quan trọng nhất của nhiều âm xát và âm tắc xát, ví dụ:

  • các âm "s", "sh", "ch", "zh" trong tiếng Trung
  • các âm vị /s/, /f/, /θ/ trong tiếng Anh

Trên phổ, những âm này vốn đã khá giống tiếng gió và tiếng luồng khí. Nếu mô hình khử nhiễu không phân biệt được, nó sẽ xóa luôn cả thông tin giọng nói thật.

Tai người vẫn có thể đoán nội dung nhờ ngữ cảnh nên thường không thấy khác biệt là bao; còn ASR, sau khi mất những đường biên tần số cao đó, càng dễ lẫn lộn các âm vị gần nhau — và điều này hiện ra ở CER hoặc WER tăng lên.

Vì vậy nhiều thử nghiệm cho ra một hiện tượng thú vị:

Chất lượng âm thanh vẫn tiếp tục tăng, nhưng đến một mức nào đó độ chính xác lại bắt đầu giảm.


4. ASR lớn hiện nay đã coi nhiễu là một phần của dữ liệu huấn luyện

Các mô hình nhận dạng giọng nói lớn những năm gần đây phần lớn được huấn luyện trên khối lượng khổng lồ bản ghi ngoài đời thật: đủ loại thiết bị thu, nhiễu môi trường, tiếng vọng, nhiều người cùng nói, và micro với chất lượng rất khác nhau. Trong quá trình đó, mô hình đã học được cách trích ra đặc trưng giọng nói ổn định ngay khi có nhiễu nền.

Nói cách khác, bản thân nhiễu nền thường là một phần của dữ liệu huấn luyện, chứ không phải tình huống bất thường buộc phải loại bỏ hoàn toàn.

Do đó, khử nhiễu ở đầu vào chưa chắc mang lại lợi ích thêm. Nếu mô hình khử nhiễu làm thay đổi phổ giọng nói, chẳng hạn:

  • phân bố lại năng lượng giữa các tần số
  • làm yếu thông tin tần số cao
  • đưa vào méo tiếng nhân tạo (artifact) mới
  • thay đổi cấu trúc phổ vốn có của giọng nói

thì đặc trưng đầu vào có thể lệch khỏi phân bố dữ liệu mà mô hình đã quen khi huấn luyện. Nền sạch hơn không bảo đảm độ chính xác tăng, thậm chí có thể giảm.

Vì thế, khi đánh giá hiệu quả khử nhiễu, không nên chỉ nhìn xem âm thanh có sạch hơn không, mà phải đo trực tiếp kết quả nhận dạng thực tế của ASR.


5. Chọn mô hình khử nhiễu nên căn cứ vào hiệu năng của ASR

Trong một hệ thống nhận dạng giọng nói, không có mô hình khử nhiễu nào hợp với mọi tình huống.

Mỗi mô hình có triết lý thiết kế riêng:

  • có loại theo đuổi khả năng nén nhiễu nền tối đa
  • có loại cố ý giữ lại nhiều chi tiết giọng nói gốc hơn
  • có loại hợp với cuộc gọi thoại
  • có loại hợp với phục hồi bản ghi
  • có loại hợp hơn với truyền phát thời gian thực

Vì vậy, để đánh giá một mô hình khử nhiễu có hợp với ASR hay không, không nên chỉ so điểm PESQ hay DNSMOS, mà phải nhìn thẳng vào ảnh hưởng của nó tới độ chính xác, bao gồm:

  • WER
  • CER
  • Latency (độ trễ)
  • mức dùng CPU / GPU
  • độ ổn định khi truyền phát lâu dài

Trên thực tế, các mô hình ASR khác nhau cũng có thể phản ứng khác nhau với cùng một bộ khử nhiễu đầu vào. Một mô hình nhờ nó mà chính xác hơn không có nghĩa là đổi sang ASR khác vẫn còn hiệu quả.

Không hề có cái gọi là "mô hình khử nhiễu tốt nhất", chỉ có "mô hình khử nhiễu hợp nhất với một hệ ASR cụ thể".


Lời kết

Mục đích của Speech Enhancement không nên chỉ là làm âm thanh sạch hơn, mà là làm cho việc nhận dạng phía sau đáng tin cậy hơn.

Với các ASR lớn hiện nay, nhiễu nền chưa chắc đã là kẻ thù thật sự; thứ thực sự cần tránh là những thay đổi mà quá trình khử nhiễu gây ra cho đặc trưng giọng nói. Một khi dữ liệu đầu vào lệch khỏi phân bố quen thuộc của mô hình thì dù tai người nghe dễ chịu hơn, độ chính xác vẫn có thể giảm.

Vì vậy, khi thiết kế hệ thống nhận dạng giọng nói, đừng coi khử nhiễu là một bước tiền xử lý cố định, mà hãy đánh giá nó như một phần của toàn bộ ASR Pipeline. Chỉ khi nó thực sự làm giảm WER hoặc CER trong thử nghiệm thực tế — chứ không phải chỉ cải thiện cảm giác nghe — nó mới thật sự mang lại giá trị cho hệ thống.

Với ASR, điều quan trọng nhất chưa bao giờ là âm thanh yên tĩnh nhất, mà là âm thanh giữ lại được nhiều thông tin giọng nói hữu ích nhất.

51760135-E425-4D98-8DC3-F2949FCCC7AF