CHƯƠNG 2: TỔNG QUAN VỀ TIẾNG NÓI VÀ XỬ LÝ TIẾNG NÓI
5. TỔNG QUAN VỀ MÃ HÓA TIẾNG NÓI
Trong một vài thập kỷ vừa qua, đã có rất nhiều kỹ thuật mã hoá nén tiếng nói được đưa ra, phân tích và phát triển. Trong phần này tôi sẽ giới thiệu một số kỹ thuật đang được sử dụng hiện nay, và một số kỹ thuật sẽ được dùng trong tương lai. Thông thường thì mã hoá tiếng nói được chia làm hai lớp đó là: mã hoá dạng sóng (waveform coder) và mã hoá nguồn (source coder) (hay còn được gọi là mã hoá thông số). Mã hoá dạng sóng được thực hiện ở tốc độ bít cao và cho chất lượng mã hoá tiếng nói tốt. Mã hoá nguồn thực hiện ở tốc độ bít thấp, nhưng nó có xu hướng tạo ra tiếng nói có chất lượng nhân tạo. Hiện nay, một lớp mới của mã hoá tiếng nói được gọi là mã hoá lại (hybrid coder), đây là kỹ thuật mã hoá tổng hợp của phương pháp mã hoá dạng sóng và mã hoá nguồn, nó cho chất lượng tiếng nói khá tốt và thực hiện ở tốc độ bít trung bình. Hình 1.10 sẽ đưa ra đồ thị biểu diễn sự phụ thuộc của chất lượng tiếng nói đối với tốc độ bít của hai lớp chính là mã hoá dạng sóng và mã hoá nguồn.
Hình 1.10 Chất lượng tiếng nói theo tốc độ bít
5.1. Mã hóa dạng sóng
Mã hoá dạng sóng nhằm tái tạo lại tín hiệu đầu vào của tiếng nói. Nó thường được chia thành các tín hiệu độc lập do vậy nó có thể được dùng để mã hoá rất nhiều loại tín hiệu. Thông thường, đây là phương pháp mã hoá có độ phức tạp thấp tuy nhiên lại cho chất lượng cao với tốc độ bít cao (lớn hơn khoảng 16kbps). Mã hoá dạng sóng có thể được thực hiện trên cả miền tần số cũng như trên miền thời gian.
5.1.1. Mã hoá trên miền thời gian
Mã hoá trên miền thời gian thực hiện việc mã hóa trên khoảng thời gian lấy mẫu của tín hiệu. Các phương pháp mã hoá trong miền thời gian thường được dùng gồm có: Điều chế mã xung (PCM), điều chế mã xung thích ứng (APCM), điều chế mã xung vi phân (DPCM), điều chế mã xung vi phân thích ứng (ADPCM), điều chế Delta (DM), điều chế Delta thích ứng, và mã hoá dự đoán thích ứng (APC). Tiếp theo ta sẽ xem xét một vài phương pháp mã hoá quan trọng trong miền thời gian.
Mã hoá PCM
Điều chế mã xung là phương pháp đơn giản nhất trong mã hoá dạng sóng. Điểm cốt yếu của phương pháp này chính là quá trình lượng tử hóa. Bất cứ dạng lượng tử hoá vô hướng nào cũng có thể được sử dụng trong phương pháp này, nhưng dạng hay được dùng nhất là lượng tử hoá logarit.
Uỷ ban tư vấn điện thoại và điện báo quốc tế đã giới thiệu G.711 như là phương pháp chuẩn cho việc mã hoá tiếng nói thoại. Chuẩn G.711 xác định 8 bit theo luật u và luật A của PCM. Mã hoá dùng luật u có ít lợi thế hơn trong việc thực hiện vì nó cho tỉ số tín hiệu trên nhiễu bé hơn.
Mã hoá DPCM và ADPCM
PCM không giả định về tính tự nhiên của dạng sóng được mã hóa, do đó nó làm việc tốt với các tín hiệu mà không phải là tiếng nói. Tuy nhiên, khi mã hoá tiếng nói thì sẽ có sự tương quan rất lớn giữa các mẫu cạnh nhau. Sự tương quan này có thể được sử dụng để khôi phục được tốc độ bít của kết quả. Một phương pháp đơn giản để thực hiện việc này đó là chỉ truyền sự sai khác giữa các mẫu. Tín hiệu khác biệt này sẽ có phạm vi dao động nhỏ hơn so với tín hiệu tiếng nói ban đầu, do vậy nó có thể lượng tử hoá một cách hiệu quả bằng việc sử dụng các bộ vector lượng tử hoá
với mức xây dựng lại thấp hơn. Trong phương pháp trên, mẫu trước được sử dụng để dự đoán giá trị của mẫu hiện tại. Sự dự đoán này có thể được cải thiện nếu như ta sử dụng một khối lớn hơn của tín hiệu tiếng nói cho việc dự đoán. Phương pháp này được gọi là điều chế mã hoá xung vi phân (DPCM). Kiến trúc của nó được đưa ra trong hình vẽ 1.11.
Một phiên bản phát triển của DPCM là điều chế mã xung thích ứng ADPCM. Trong ADPCM, bộ dự đoán và lượng tử hoá được thích ứng với các đặc tính của tín hiệu đầu vào. Có một số chuẩn được ITU giới thiệu cho việc mã hoá tín hiệu âm thanh dựa vào giải thuật ADPCM (với dải thông hẹp khoảng 8kHz) ví dụ như G.726 thực hiện ở các tốc độ bít 40, 32, 24 và 16 kbps. Độ phức tạp của ADPCM là thực sự thấp. Mã hoá ADPCM sẽ cho tín hiệu tín hiệu trên nhiều cao (vào khoảng 30 đến 35 dB).
Hình 1.11: Hệ thống DPCM, khối mã hoá ở bên trái còn khối giải mã bên phải. Bộ lượng tử hoả đảo (inverse quantizer) có nhiệm vụ chuyển các mã đã được truyền thành tín hiệu u(n).
5.1.2. Mã hoá trong miền tần số
Mã hoá dạng sóng trong miền tần số chia tín hiệu thành các thành phần tần số khác nhau và tiến hành mã hoá từng thành thành phần này. Số bít sử dụng để mã hoá từng thành phần tần số có thể thay đổi. Mã hoá trong miền tần số được chia ra làm hai nhóm là: mã hoá bằng con (subband) và mã hoá biến đổi (transform).
Mã hoá băng con (subband)
Mã hoá băng con sử dụng một số bộ 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).
5.2. 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 5.3. 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ã.