Nhận dạng tiếng nói (còn gọi là nhận dạng tiếng nói tự động; tiếng Anh speech recognition, automatic speech recognition) là quá trình biến đổi tín hiệu âm thanh thu được của người nói thành một chuỗi các từ có nội dung tương ứng dưới dạng văn bản, nhằm mở rộng thêm khả năng lưu trữ, tìm kiếm thông tin và khả năng tương tác với máy tính hoặc bất kỳ thiết bị nào có tương tác thông qua lời nói, ví dụ như với rô bốt.
Nhận dạng tiếng nói là một dạng bài toán trong lĩnh vực nhận dạng vì vậy cũng tồn tại những khó khăn tương tự như các bài toán nhận dạng khác. Những vấn đề cần giải quyết trong nhận dạng tiếng nói đặt ra ngay từ ban đầu là: vấn đề phụ thuộc người nói, tốc độ phát âm, hiện tượng đồng âm, kích thước của bộ từ vựng (từ điển), nhiễu và sự khác biệt giữa các ngôn ngữ nói.
Trong lịch sử phát triển, các hệ thống nhận dạng tiếng nói có thể được phân loại theo các tiêu chí khác nhau (và cũng phản ánh mức độ khó của bài toán được giải quyết bởi từng hệ thống):
- Phân loại theo cách phát âm: từ cô lập (isolated words), từ liên kết (connected words), tiếng nói liên tục (continuous speech), tiếng nói tự nhiên (spontaneous speech);
- Phân loại theo dựa trên mô hình người nói: phụ thuộc người nói (speaker dependent models), độc lập người nói (speaker independent models), thích nghi người nói (speaker adaptation models);
- Nhận dạng tiếng nói với hệ thống từ vựng nhỏ (vài trăm từ) hoặc từ vựng lớn (hàng nghìn từ);
- Nhận dạng tiếng nói trong môi trường nhiều hoặc ít nhiễu.
Nguyên lý
Khi nói, không khí được đẩy từ phổi qua miệng và khoang mũi. Luồng không khí này bị cản trở và thay đổi do hoạt động của lưỡi và môi. Điều này tạo ra các co giãn của không khí, sóng âm, âm thanh. Những âm thanh tạo thành, tương ứng với nguyên âm và phụ âm, thường được gọi là âm vị. Các âm vị được kết hợp với nhau tạo thành từ. Mỗi âm vị được hình thành trong quá trình nói phụ thuộc vào ngữ cảnh của nó, tức là phụ thuộc vào âm vị đứng ngay trước và âm vị đứng ngay sau nó. Tuy nhiên, tiếng nói không chỉ là chuỗi các âm vị tạo thành từ và câu. Có nhiều thành phần của tiếng nói mang thông tin, ví dụ: phong cách nói thể hiện qua âm điệu, cao độ, âm lượng, ngữ điệu. Thông tin này đôi khi được gọi là thông tin phi từ vựng (paralinguistic) của tiếng nói và cũng được sử dụng trong nhiều phương pháp nhằm nâng cao độ chính xác của hệ thống nhận dạng.
Các thành phần chính của một hệ thống nhận dạng tiếng nói kinh điển bao gồm:
- Tiền xử lý (pre-processing/digital signal processing). Tín hiệu tiếng nói (âm thanh) ở dạng liên tục (analog) được biến đổi về dạng tín hiệu số, cụ thể rút trích các tín hiệu nằm trong miền tần số mà tai người nghe được (0-10kHz), chia tín hiệu tiếng nói thành các khung có kích thước từ 10ms đến 30ms…
- Trích xuất thuộc tính (feature extraction) hay tính toán đặc trưng. Bước trích xuất thuộc tính / đặc trưng nhằm tìm ra tập hợp các tham số của phát âm có tương quan âm thanh với tín hiệu tiếng nói. Các tham số này được tính toán thông qua phép biến đổi tín hiệu tiếng nói sang miền tần số bằng phép biến đổi Fourier rời rạc. Hai loại đặc trưng kinh điển được sử dụng phổ biến sau khi biến đổi Fourier là các hệ số đường bao phổ của tần số mel (mel frequency cepstral coefficient - MFCC), mã dự báo tuyến tính (perceptual linear prediction - PLP) và các dẫn xuất của nó.
- Mô hình hóa ngữ âm (acoustic model). Đây là thành phần cơ bản của hệ thống nhận dạng tiếng nói nhằm tạo ra mô hình âm thanh - miền tri thức phản ánh mối tương quan giữa thông tin âm thanh và ngữ âm. Mô hình ngữ âm đóng vai trò quan trọng xác định hiệu quả của hệ thống và gánh vác phần lớn tải tính toán. Quá trình huấn luyện sẽ tạo liên kết giữa các đơn vị cơ bản (âm vị) của tiếng nói và âm thanh quan sát. Việc huấn luyện hệ thống yêu cầu tạo ra một đại diện mẫu cho các thuộc tính của lớp bằng cách sử dụng một hoặc nhiều mẫu tương ứng với âm thanh tiếng nói của cùng một lớp. Nhiều mô hình có sẵn cho mô hình hóa âm thanh trong đó Mô hình Markov ẩn (HMM) được sử dụng và được chấp nhận rộng rãi vì đây là thuật toán hiệu quả cho huấn luyện và nhận dạng. Cũng có nhiều mô hình hoặc kỹ thuật khác để huấn luyện hệ thống như mạng nơ ron nhân tạo...
- Mô hình ngôn ngữ (language model). Đây là một tập phân bố xác suất của các đơn vị (thường là từ) trên một tập văn bản cụ thể. Một cách tổng quát, mô hình ngôn ngữ cho phép xác định xác suất của một cụm từ hoặc một câu trong một ngôn ngữ, một thành phần quan trọng trong hệ thống nhận dạng từ vựng lớn, khi mà tại một thời điểm mô hình ngữ âm có thể xác định ra rất nhiều từ có cùng xác suất. Khi đó mô hình ngôn ngữ sẽ chỉ ra từ gần nhất thông qua xác suất của nó trong cả câu đầu ra. Mô hình ngôn ngữ không chỉ giúp bộ giải mã quyết định từ đầu ra đối với mỗi mẫu nhận dạng mà nó còn giúp chuẩn hóa về mặt ngữ pháp cho đầu ra của hệ thống nhận dạng. Mô hình ngôn ngữ có nhiều hướng tiếp cận, nhưng chủ yếu được xây dựng theo mô hình N-gram.
- Mô hình nhận dạng là quá trình so sánh mẫu kiểm tra chưa biết với từng mẫu tham chiếu của lớp âm thanh và tính toán một mức độ tương tự giữa chúng. Quá trình tạo ra mẫu tham chiếu là quá trình học mẫu, hay quá trình huấn luyện. Mô hình phân loại kinh điển, phổ biến nhất và hiệu quả là mô hình Markov ẩn (HMM - hidden Markov model). Mô hình này có thể kết hợp với các hàm trộn Gaus (GMM – Gaussian mixture model) để tạo ra mô hình HMM-GMM, cũng như kết hợp với các mạng học sâu để tạo ra mô hình HMM-DNN…
Phần mô tả trên, nói về một hệ thống nhận dạng tiếng nói kinh điển hay truyền thống, tuy nhiên trong thời gian gần đây, khi các mạng học sâu chiếm ưu thế thì các mô hình End-to-End trong tiếng Anh đã nhanh chóng chiếm được ưu thế so với những mô hình truyền thống nói trên. Sở dĩ gọi là End-to-End do các tín hiệu tiếng nói được đưa trực tiếp làm đầu vào của hệ thống, quá trình trích chọn đặc trưng sẽ được tự học qua các mạng học sâu và chuyển tiếp tới các mạng nhận dạng trong cùng một hệ thống. Một trong những yêu cầu của các mạng học sâu là cần nhiều dữ liệu huấn luyện.
Lịch sử
Về lịch sử phát triển của các hệ thống nhận dạng tiếng nói, nỗ lực phát triển máy móc để bắt chước khả năng giao tiếp bằng giọng nói của con người dường như đã bắt đầu từ nửa sau thế kỷ 18. Sự quan tâm ban đầu không phải là nhận dạng và hiểu lời nói mà là tạo ra một cỗ máy nói (Speaking Machine) dựa trên những tri thức có được về các ống cộng hưởng âm thanh được sử dụng để xấp xỉ cơ quan phát âm của con người – liên quan tới vấn đề tổng hợp tiếng nói. Trong nửa đầu thế kỷ 20, công trình của Fletcher và đồng nghiệp tại Bell Lab đã ghi nhận mối quan hệ giữa phổ tiếng nói (phân phối năng lượng của âm thanh qua tần số) và đặc điểm âm thanh của nó cũng như sự cảm nhận của người nghe khi nghe tiếng nói. Những nỗ lực ban đầu để thiết kế hệ thống để nhận dạng tiếng nói tự động chủ yếu được dẫn dắt bởi lý thuyết về ngữ âm và mô hình tạo sinh tiếng nói, bao gồm các âm vị, vị trí tương ứng và cách thức phát âm tương ứng được sử dụng để tạo ra âm thanh trong các ngữ cảnh ngữ âm khác nhau.
Vào năm 1960, một số phòng thí nghiệm của Nhật Bản đã thể hiện khả năng xây dựng phần cứng cho mục đích đặc biệt để thực hiện nhiệm vụ nhận dạng tiếng nói. Trong công trình của Sakai và Doshita đầu tiên sử dụng của một bộ phân đoạn (segmenter) để phân tích và nhận dạng tiếng nói trong các phần khác nhau của tiếng nói đầu vào. Công trình này của Đại học Kyoto có thể được coi là tiền thân của một hệ thống nhận dạng tiếng nói liên tục.
Trong một hệ thống nhận dạng được xây dựng khá sớm sớm khác (1959), Fry và Denes tại University College ở Anh đã xây dựng một bộ nhận dạng âm vị để nhận ra 4 nguyên âm và 9 phụ âm. Công trình này đánh dấu lần đầu tiên cú pháp thống kê (ở cấp độ âm vị) được sử dụng trong nhận dạng tiếng nói tự động. Đây cũng là điểm khởi nguồn cho việc xây dựng các phương pháp mô hình hóa âm thanh và ngôn ngữ sau này.
Sau khi khái niệm cơ bản về Linear Predictive Coding (LPC) do Atal và Itakura đưa ra một cách độc lập vào cuối những năm 1960, các ý tưởng cơ sở về việc áp dụng LPC cho nhận dạng tiếng nói được đề xuất (Itakura, Rabiner and Levinson) vào giữa những năm 1970. Việc sử dụng LPC giúp đơn giản hóa rất nhiều trong quá trình ước lượng phản hồi của cơ quan phát âm với sóng tiếng nói.
Cũng trong giai đoạn này ARPA (Advanced Research Projects Agency of the US Department of Defense) tài trợ cho chương trình SUR (Speech Understanding Research). Đại học Carnegie Mellon, nhà nhận tài trợ của chương trình này, đã xây dựng hệ thống Harpy có thể nhận dạng được tiếng nói với tập từ vựng có 1011 từ với độ chính xác hợp lý. Một đóng góp đặc biệt từ Hệ thống Harpy là khái niệm thực hiện tìm kiếm đồ thị, trong đó tri thức dùng để ngữ nhận dạng tiếng nói được biểu diễn dưới dạng một mạng được kết nối có dẫn xuất từ các biểu diễn từ vựng của từ cùng với quy tắc cú pháp và quy tắc giới hạn từ.
Song song với những nỗ lực do ARPA khởi xướng, hai hướng lớn trong nghiên cứu nhận dạng tiếng nói cũng bắt đầu hình thành trong những năm1970 tại các Phòng thí nghiệm của IBM và AT&T Bell Lab. Điểm nhấn của AT&T Bell Lab là mô hình âm thanh cho các mô hình ngôn ngữ. Các cách tiếp cận của IBM và AT&T Bell Lab có ảnh hưởng sâu sắc tới sự tiến hóa của công nghệ nhận dạng tiếng nói trong hai thập kỷ kế tiếp.
Mặc dù ý tưởng cơ bản về mô hình Markov ẩn (HMM) đã được biết và hiểu sớm từ một số phòng thí nghiệm (vd., IBM và Viện phân tích quốc phòng Mỹ - IDA), tuy nhiên chỉ sau những công bố lý thuyết giữa những năm 1980 mô hình Markov ẩn mới trở thành phương pháp ưa thích để nhận dạng tiếng nói. Sự phổ biến và sử dụng HMM làm nền tảng chính cho các hệ thống hiểu và nhận dạng tiếng nói tự động vẫn không đổi trong hai thập kỷ qua, đặc biệt do tiến trình cải tiến và hoàn thiện rất ổn định của công nghệ.
Mạng nơ ron nhân tạo (ANN) được giới thiệu lần đầu tiên vào những năm 1950, nhưng không tạo ra kết quả đáng chú ý. Những nỗ lực trong việc sử dụng mạng nơ ron nhân tạo để nhận dạng tiếng nói đã thu được các kết quả ban đầu. Tuy nhiên, để nhận dạng tiếng nói đòi hỏi phải xử lý sự biến đổi theo thời gian của tín hiệu tiếng nói mà mạng nơ ron ở dạng ban đầu không có khả năng mở rộng cho nhiệm vụ này, nên các nghiên cứu vẫn tập trung vào việc tích hợp các mạng nơ ron với cấu trúc của mô hình Markov ẩn để tận dụng khả năng xử lý yếu tố biến động theo thời gian của mô hình này.
Đầu những năm 2000 là thời kỳ đi ngang của công nghệ nhận dạng tiếng nói. Từ sau 2010 đến nay đang có sự bùng nổ mang tính đột phá của học sâu (Deep Learning) trong trí tuệ nhân tạo nói chung. Học sâu đang trở thành một công nghệ chủ đạo để nhận dạng tiếng nói và mã hóa đặc trưng ở quy mô ngày càng lớn hơn.
Ứng dụng
Cùng với sự phát triển nhanh chóng của các thiết bị tính toán tốc độ cao như máy tính, điện thoại thông minh, vi xử lý- vi điều khiển, ngày nay nhận dạng tiếng nói được ứng dụng cho rất nhiều các lĩnh vực trong cuộc sống. Có thể kể đến một số ứng dụng như sau:
- Trong viễn thông và giải trí. Đây là lĩnh vực mà nhận dạng tiếng nói được ứng dụng rộng rãi và đa dạng nhất như trả lời tự động, dịch vụ tự động, tương tác với thiết bị.
- Trong y tế, du lịch, giao tiếp. Nhận dạng tiếng nói hỗ trợ người khuyết tật điều khiển thiết bị bằng tiếng nói, nhập bệnh án bằng tiếng nói hoặc tìm kiếm thông tin bệnh nhân tự động, điều khiển ô tô, nhà thông minh, trợ lý ảo giao tiếp bằng tiếng nói Siri (Google). Để xóa bỏ rào cản ngôn ngữ đã có các hệ thống dịch tiếng nói tự động giữa nhiều ngôn ngữ trong đó có đóng góp của công nghệ nhận dạng tiếng nói, ví dụ như VoiceTra (NICT và các đối tác), Microsoft Translator. Các hệ thống hỗ trợ tốc ký trong các cuộc họp của nghị viện châu Âu, hệ thống dịch bài giảng tự động LectureTra của học viện Karlsuhe-Đức (KIT), là các hệ thống nhận dạng có thể được dùng để đánh giá độ phát âm chính xác của người học. Trong quân sự đã ứng dụng công nghệ nhận dạng để hỗ trợ nghe thông tin, dịch tiếng nói trong chiến tranh.
Xu thế
Giao tiếp bằng tiếng nói tự nhiên vẫn là mục tiêu đặt ra từ phía nghiên cứu, công nghệ và ứng dụng. Hiện tại, theo báo cáo từ Google, công nghệ nhận dạng tiếng nói đã đạt tới gần với khả năng của con người nhờ khả năng tính toán lớn kết hợp với dữ liệu lớn và các mô hình học sâu dựa trên những kiến trúc mạng nơ ron phức tạp. Tuy nhiên, các bài toán thực tế luôn rất đa dạng - nên vấn đề phát triển các hệ thống nhận dạng ứng dụng trong nhiều ngữ cảnh và lĩnh vực khác nhau vấn là thách thức cho các nhà nghiên cứu và công nghệ.
Các vấn đề liên quan đến nhận dạng tiếng Việt một cách có hệ thống hơn - mặc dù trước đó cũng đã có những nghiên cứu lẻ tẻ dưới dạng các luận án tiến sĩ, thạc sỹ ở trong hoặc ngoài nước - được bắt đầu khoảng những năm đầu 2000, thông qua một số đề tài nhà nước trong Chương trình Khoa học Công nghệ cấp Nhà nước KC.01. Hiện tại đã có một số ứng dụng cụ thể trong hỗ trợ tốc ký tại các cuộc họp, các hệ thống loa thông minh cho nhà thông minh, điều khiển thiết bị bằng tiếng Việt. Tuy nhiên, tiếng Việt vẫn nằm trong hệ thống nghèo tài nguyên để có thể áp dụng các công nghệ ngôn ngữ đã phát triển.
Tài liệu tham khảo
- Lawrence Rabiner, Biing-Hwang Juang and B. Yegnanarayana. “Fundamentals of Speech Recognition”, Dorling Kindersley (India) Pvt. Ltd.2009.
- Dong Yu and Li Deng. “Automatic Speech Recognition: A Deep Learning Approach”. Springer-Verlag London, 2015.
- KatriLeino. “Breakthroughs in Automatic Speech Recognition Technology” (2015).
- M. Gales and S. Young, “The application of hidden Markov models in speech recognition, “ Foundations and Trends in Signal Processing, Vol.1, No.3, 2007.
- Namrata Dave. “Feature Extraction Methods LPC, PLP and MFCC”. In Speech Recognition”, Volume 1, Issue VI, July 2013.