Trong những năm gần đây, khả năng của AI ngày càng được chứng minh là cực kì tốt trong rất nhiều lĩnh vực. Một trong số chúng là việc giao tiếp với con người. Chuỗi bài viết này sẽ tóm tắt một số kiến thức cực kì cơ bản (thường bị bỏ qua) trong việc xử lý tiếng nói. Các kiến thức này sẽ là nền tảng cho các bạn mới tiếp cận với xử lý giọng nói nói riêng và xử lý âm thanh nói chung trong thế giới của Deep Learning. Các kiến thức này được viết và đúc kết từ năm 2022. Song, vì là các kiến thức cơ bản nên hầu như ít phải cập nhật. Tuy vậy, hãy comment hoặc contact với tôi để góp ý và sửa đổi khi bạn thấy bất cứ một lỗi sai nhỏ nào. *Disclaimer: Tôi không thể đảm bảo chỉn chu hết các lỗi dịch, lỗi chính tả. *Disclaimer: Spiderum không hỗ trợ các toán, nên tôi sẽ phải dùng cách khác. *Disclaimer: Trong này không có kiến thức thú vị, chỉ có kiến thức cơ bình thường.
Hình thái đầu tiên của ngôn ngữ là tiếng nói chứ không phải chữ viết
Tôi học xong nói.
Phần này giới thiệu một số khái niệm, phân loại liên quan đến hệ thống tổng hợp giọng nói. Từ đó, thảo luận về các công trình nghiên cứu, phát minh về vấn đề tổng hợp giọng nói, cá nhân hoá giọng nói mà trọng tâm sẽ là ứng dụng của học máy, học sâu vào trong vấn đề này. Quá trình phát triển các hệ thống tổng hợp tiếng nói là sự kết hợp của nhiều ngành với các khái niệm đa dạng khác nhau như ngôn ngữ học, âm học, xử lý tín hiệu số, và học máy.

Xử lý tín hiệu trong bài toán xử lý giọng nói

Âm thanh là một dạng tín hiệu sóng được tạo ra và truyền đi trong không gian nhờ sự rung. Theo [1], tiếng nói được phân loại vào nhóm tín hiệu gần như tuần hoàn quasi-periodic. Quan sát thực tế có thể thấy âm là các mẫu pattern tín hiệu gần giống nhau được lặp lại theo chu kỳ liên tục trong một khoảng thời gian, hay có tính chu kỳ. Song, gần như rất khó tìm thấy tiếng nói người có dạng tuần hoàn nên chúng được xếp vào loại gần tuần hoàn như đã nêu. Nhờ vào điều đó và nhu cầu về việc giải các bài toán liên quan đến tiếng nói, người ta đã tìm cách lưu giữ dữ liệu và biểu diễn dữ liệu hiệu hiệu giúp máy tính có thể hiểu được các thông tin phức tạp chứa trong một câu nói.

Âm thanh là sóng / tín hiệu

Trong hầu hết các khía cạnh của xử lý tín hiệu số, đường sinusoid giữ một vai trò rất quan trọng. Đường này có thể biễu diễu bởi một hàm sin hoặc một hàm cosin:
sinusoid functions
sinusoid functions
Dựa trên các hai phương trình ở trên, ta có thể biểu diễn nhiều dạng tín hiệu tuần hoàn khác nhau dựa trên hàm sinusoid nhờ vào việc thay đổi tần số F (Hertz viết tắt là Hz) điều chỉnh độ dài của một chu kỳ, biên độ A điều chỉnh độ lớn của tín hiệu, và tịnh tiến trên trục thời gian một pha φ . Trong đó, tần số được định nghĩa là số lần lặp lại của tín hiệu trong trong một đơn vị thời gian. Nói cách khác, với tín hiệu x(t) có chu kỳ là T , có nghĩa là x(t) = x(t + n × T ) với n ∈ N, thì sẽ có tần số:
Tần số
Tần số
Như vậy, các đường hình sin có tần số khác nhau có thể sinh dễ dàng nhờ vào việc nhân tần số của hàm sinusoid một giá trị bất kỳ vào t. Mà tần số của hàm sinusoid có giá trị là F = 1 / T = 1 / 2π . Để ngắn gọn, người ta đặt giá trị vận tốc góc ω = 2πF = 2π T (rad/s). Từ đây, ta cóthể biểu diễn dưới dạng tổng quát một tín hiệu tuần hoàn bất kỳ với công thức:
hàm sóng
hàm sóng
Lại nói về sự tuần hoàn của tín hiệu x(t) với chu kỳ T , tức là x(t) = x(t + T ) = x(t + 2 × T ) = x(t + 3 × T ) = . . . = x(t + n × T ) với n ∈ N. Ở đây, giá trị chu kỳ nhỏ nhất khác 0 được gọi là chu kỳ cơ bản T0, và một khái niệm mà sẽ được sử dụng nhiều ở phần sau là tần số cơ bản (fundamental frequency) F0 = 1 / T0 . Ta cũng gọi các bội nguyên của F0 như 2F0, 3F0 là các tần số điều hoà (harmonic frequency). Ngoài ra, có thể thấy tổ hợp của các đường hình sin có tần số là điều hoà của cùng một tần số cơ bản có thể cho ra một đường tuần hoàn khác. Một tín hiệu x(t) là tổ hợp của N tín hiệu thoả điều kiện vừa nêu:
phân tích harmonic
phân tích harmonic
có thể xấp xỉ một tín hiệu tuần hoàn có biên độ ak và pha φk. Đây là một ý tưởng cơ bản cho quá trình tiền xử lý dữ liệu giọng nói. Mặc dù phù hợp với việc biểu diễn tính chất tuần hoà, song công thức trên còn phức tạp để tính toán, do đó, một dạng khác của tín hiệu dưới dạng hàm mũ phức được đề xuất và sử dụng rộng rãi. Biểu diễn này dựa vào dựa vào công thức Euler:
công thức euler về biểu diễn số phức
công thức euler về biểu diễn số phức
với số θ bất kỳ và j = sqrt( − 1). Khi đó, đặt θ = ωt + φ , ta thu được:
Hàm sóng ở một cách viết khác (diễn biến có số phức)
Hàm sóng ở một cách viết khác (diễn biến có số phức)
X trong công thức này là tích của biên độ A và e jφ vốn là một hằng số, từ đây, ta cũng gọi X là biên độ phức của tín hiệu, số này biểu diễn cả biên độ và pha của tín hiệu. Qua đó, [1] đã phát biểu dạng Fourier tổng quát của một tín hiệu tuần hoàn bất kỳ là:
Khai triển Fourier của mọi hàm sóng. (Một số nhà khoa học đang cố gắng chứng minh tất cả mọi thứ là sóng. Và Phương trình này cũng rất quan trọng trong cuộc sống hiện đại)
Khai triển Fourier của mọi hàm sóng. (Một số nhà khoa học đang cố gắng chứng minh tất cả mọi thứ là sóng. Và Phương trình này cũng rất quan trọng trong cuộc sống hiện đại)
mà trong đó, ak là biên độ phức biểu diễn biên độ và pha của tín hiệu harmonic thứ k. Biểu diễn này bỏ qua các thành phần harmonic âm do tính đối xứng (a−k = ak) của của tín hiệu. Sở dĩ, ta cần quan tâm đến biểu diễn Fourier của một tín hiệu là vì sự hữu dụng của biến đổi Fourier trong bài toán xử lý tín hiệu số nói chung và xử lý tiếng nói nói riêng.
Một mẫu dạng sóng của khi phát âm từ ’ờ’ được biểu diễn dưới dạng sóng theo thời gian (time waveform).
Một mẫu dạng sóng của khi phát âm từ ’ờ’ được biểu diễn dưới dạng sóng theo thời gian (time waveform).

Biến đổi Fourier (1 trong 9 phương trình thay đổi thế giới)

Biến đổi Fourier (Fourier transform) là phép biến đổi cho phép chuyển các thao tác với tín hiệu trên miền thời gian sang miền tần số. Như đã trình bày ở trên, một tín hiệu tuần hoàn có những đặc trưng nhất định xong lại có rất nhiều thông tin trên miền thời gian. Từ biểu diễn tín hiệu là tổ hợp của nhiều tín hiệu khác, thay vì phải lưu lại giá trị tín hiệu theo thời gian, ta có thể lưu lại giá trị tần số, biên độ, pha của các tín hiệu tuần hoàn tổ hợp lên nó. Từ đó diểu diễn tín hiệu từ dạng chuỗi giá trị cường độ trên trục thời gian thành các giá trị năng lượng trên tục tần số để thu được đồ thị như hình B và D trong hình:
Đồ thị tín hiệu trên miền thời gian và miền tần số. Đồ thị A và C là hai đồ thị biểu diễn cường độ (intensity) tín hiệu trên miền thời gian (chiều từ trái sang phải là chiều thời gian từ trước đến sau). Đồ thị B và D là hai đồ thị biểu diễn mức năng lượng (power) theo trên miền tần sồ (chiều từ trái sang phải là chiều từ bé đến lớn). Hình từ [2].
Đồ thị tín hiệu trên miền thời gian và miền tần số. Đồ thị A và C là hai đồ thị biểu diễn cường độ (intensity) tín hiệu trên miền thời gian (chiều từ trái sang phải là chiều thời gian từ trước đến sau). Đồ thị B và D là hai đồ thị biểu diễn mức năng lượng (power) theo trên miền tần sồ (chiều từ trái sang phải là chiều từ bé đến lớn). Hình từ [2].
Biến đổi Fourier để chuyển từ biểu diễn từ miền thời gian sang miền tần số. Fourier Transform giúp tạo ra một feature mới mà trong nó cả miền tần số và miền thời gian được đồng thời quan sát. Đây là một phần quan trọng trong các ứng dụng hiện đại của xử lý tiếng nói.
Biến đổi Fourier để chuyển từ biểu diễn từ miền thời gian sang miền tần số. Fourier Transform giúp tạo ra một feature mới mà trong nó cả miền tần số và miền thời gian được đồng thời quan sát. Đây là một phần quan trọng trong các ứng dụng hiện đại của xử lý tiếng nói.
Nhờ biến đổi (2.9) ta thu được một biểu diễn đặc hơn (denser representation) gọi là quang phổ (spectrum), từ đây khi nhắc đến "phổ" nghĩa là tôi đang nói đến dạng biểu diễn quang phổ. Biểu diễn này của thông tin trong đoạn âm thanh giảm được lượng dữ liệu cần nhớ so với dữ liệu trên miền thời gian như cũ. Ngoài biến đổi Fourier còn có biến đổi Fourier ngược (inverse Fourtier Transform) cũng được sử dụng nhiều với mục đích ngược lại so với biến đối Fourier.
Biến đổi ngược của Fourier Transform.
Biến đổi ngược của Fourier Transform.
Tóm lại, tiếng nói là một dạng tín hiệu gần như tuần hoàn, thường được biểu diễn dưới dạng waveform (trên miền thời gian) hoặc dạng spectrum (trên miền tần số). Hai dạng này có thể chuyển qua lại lẫn nhau một cách dễ dàng. [1] phát biểu rằng hai waveform có cùng phổ sẽ nghe giống nhau bất kể pha hay hình dạng của waveform có như thế nào.

References

[1] P. Taylor, Text-to-Speech Synthesis. Cambridge University Press, 2009.
[2] A. Reno, A. Hunter, Y. Li, T. Ye, and A. Foley, “Quantification of cardiomyocyte beating frequency using fourier transform analysis,” Photonics, vol. 5, p. 39, Oct. 2018.