Công nghệ nhận dạng và xử lý giọng nói, tương lai của việc nhập liệu
trên thiết bị di động
Trong những bộ phim khoa học viễn tưởng, chúng ta rất thường hay thấy cảnh con người tương tác với các thiết bị điện tử bằng giọng nói. Giấc mơ này đã có từ khá lâu và bây giờ nó đang dần trở thành hiện thực. Những chiếc smartphone, tablet giờ đây đều có tính năng điều khiển bằng giọng nói, một số sản phẩm thậm chí còn trả lời lại người dùng như thể hai người đang nói chuyện với nhau. Sự ra đời của công nghệ này đã trở thành một xu hướng mới mẻ trong thị trường ứng dụng di động, đặc biệt là những app trước đây đòi hỏi người dùng phải gõ và nhập liệu nhiều. Sẵn mình đang tìm hiểu về công nghệ giọng nói, xin chia sẻ với các bạn một vài kiến thức hữu ích về lĩnh vực này.
Vì sao lại là giọng nói?
Có cả trăm, cả nghìn ứng dụng cho phép người dùng tìm kiếm, viết email, ghi chú và đặt lịch hẹn trên smartphone. Thế nhưng, với một số người, việc sử dụng bàn phím nhỏ xíu trên điện thoại là không tiện lợi, thậm chí là rất khó chịu. Tốc độ gõ của bạn có thể rất nhanh và chính xác, nhưng cũng có những người như nổi điên lên khi phải xóa đi viết lại chỉ một chữ duy nhất chỉ vì họ bấm nhầm sang những phím bên cạnh.
Giọng nói là giải pháp hợp lý nhất tính đến thời điểm hiện tại. Người dùng không chỉ xài giọng nói của mình như một phương thức nhập liệu mà chính bản thân thiết bị cũng có thể xài giọng nói để đọc ra những thông tin cần thiết. Đó là chưa kể đến lợi ích to lớn mà những phần mềm dựa trên giọng nói có thể mang lại cho những người khiếm thị. Họ có thể tận hưởng những tiến bộ công nghệ tương tự như những gì mà một người bình thường có thể làm, không còn khoảng cách xuất hiện do những khiếm khuyết về giác quan.
Tất nhiên, hiện nay công nghệ giọng nói vẫn chỉ mới ở giai đoạn đầu chứ chưa thể nào thay thế hoàn toàn bàn phím ảo/vật lý hoặc các nút trên màn hình. Tuy nhiên, chúng ta đang dần tiến đến một kỉ nguyên hiện đại hơn, các ứng dụng giọng nói cũng dần dần được hoàn thiện. Hãy nhìn vào Google Voice Input, Apple Siri hay mới đây là Microsoft Cortana là bạn sẽ dễ dàng thấy được xu hướng này.
Càng ngày những phần mềm nhận dạng giọng nói càng thông minh hơn, khả năng nhận dạng chính xác hơn, thông tin trả về cũng hữu ích và đa dạng hơn. Người ta còn áp dụng cả những kĩ thuật như data mining (khai thác dữ liệu theo chiều sâu, đưa ra những phân tích về nhiều mặt), machine learning (cho phép máy móc tự học hỏi thói quen, hành vi của người dùng) nhằm cải thiện hiệu suất làm việc của công nghệ nhận dạng giọng nói nữa.
Một số ví dụ trong thế giới công nghệ
Đã có nhiều nghiên cứu về việc triển khai hoặc giới thiệu thành công những ứng dụng giọng nói. Chúng có thể nhắc đến Ask.com, một dịch vụ cho phép người dùng hỏi và nhận câu trả lời, đã tích hợp công nghệ nhận dạng giọng nói do Nuance phát triển vào ứng dụng iOS và Android của mình. Sự liên kết này cho phép người dùng hỏi, trả lời cũng như đăng tải các lời bình luận.
Amazon cũng cập nhật app Kindle trên iOS để hỗ trợ tính năng VoiceOver trong iOS. VoiceOver sẽ tự động đọc nội dung trên màn hình để giúp cho việc xem sách của những người bị khiếm thị được dễ dàng và thuận tiện hơn. Hãng cho biết có khoảng 1,8 triệu đầu sách e-book tương thích với tính năng này. Bản thân Amazon cũng từng mua lại công ty IVONA Software vốn cung cấp giải pháp chuyển đổi từ chữ sang giọng nói cho các sách mua từ Amazon.
Và rồi chúng ta có Siri, Google Voice hay Cortana. Đây đều là những ứng dụng được phát triển bởi các tập đoàn công nghệ lớn với tiềm lực mạnh mẽ và quy tụ nhiều nhân tài. Bộ ba phần mềm này đã giúp người dùng thiết bị di động tương tác với thiết bị của mình một cách thông minh hơn, từ việc đặt câu hỏi, nhận câu trả lời cho đến điều chỉnh các thông số máy và khởi chạy app. Một việc đơn giản có thể kể đến là đặt lịch hẹn hoặc báo thức. Trước đây chúng ta phải mất cả chục thao tác chạm mới đặt xong một sự kiện, còn với Siri, Google Voice hay Cortana, bạn chỉ cần ra lệnh một cái là xong. Mọi thao tác, từ việc ghi nội dung cho đến thiết lập giờ giấc, đều được thực hiện một cách tự động.
Bạn cũng có thể thấy sự xuất hiện ngày càng phổ biến của công nghệ nhận dạng giọng nói trong các ứng dụng chat/nhắn tin. Facebook Messenger đã có tính năng chia sẻ giọng nói từ lâu, nhiều dịch vụ Over-The-Top như Zalo, Viber và WhatsApp của nước ngoài cũng đã nhanh chóng đón đầu xu hướng để tích hợp tính năng chat giọng nói vào sản phẩm của mình (mặc dù chưa phải là phiên dịch từ giọng nói sang văn bản mà chỉ là gửi tập tin âm thanh). Việc gõ từ bàn phím trở nên quá lâu lắc khi cần nói những nội dung dài, vậy tại sao chúng ta không nói cho nhanh? Đây cũng là suy nghĩ của hầu hết những người dùng thích chat chit nhưng phải thường xuyên đối mặt với bàn phím kích cỡ nhỏ trên thiết bị di động.
Từ trái sang phải: Zalo, Facebook Messenger, Apple Messages (iOS 8)
Một khảo sát gần đây của Forrestor đã chỉ ra sự gia tăng của app điều khiển bằng giọng nói. Một số lượng lớn người dùng xài công nghệ này để gửi tin nhắn, 46% dùng cho việc tìm kiếm, 40% dùng giọng nói để tìm đường đi và 38% dùng để ghi chú. Đó là những con số khá lớn tính năng 1168 người dùng tham gia cuộc nghiên cứu.
Cách thức xây dựng dịch vụ nhận dạng, điều khiển giọng nói
Vậy người ta áp dụng công nghệ giọng nói vào phần mềm như thế nào? Thông thường một bộ máy giọng nói sẽ có hai phần. Phần thứ nhất gọi là speech synthesizer (còn gọi là Text to Speech hay TTS). Đây là một trình tổng hợp giọng nói và thiết bị hoặc ứng dụng xài để tương tác với người dùng, ví dụ: đọc văn bản trên màn hình, thông báo về tiến độ chạy một tác vụ nào đó.
Phần thứ hai là một công nghệ nhận dạng cho phép app biết được người dùng đang nói gì, từ đó chuyển thể thành lệnh để thiết bị thực thi hoặc chuyển đổi thành các kí tự nhập liệu. Nói cách khác, đây là thứ thay thế cho bàn phím của chúng ta. Một ứng dụng nhận dạng giọng nói lý tưởng sẽ bao gồm cả hai bộ phận nói trên, nhưng một số app chỉ xài một cái rồi từ từ nâng cấp sau. Siri, Google Voice, Cortana là ví dụ của những phần mềm tương tác giọng nói lý tưởng, còn Facebook Messenger, Zalo, WhatsApp là các phần mềm chỉ sử dụng giọng nói cho chiều nhập liệu, không có nhiều phản hồi.
Thoạt nhìn thì việc triển khai công nghệ nhận dạng giọng nói khá đơn giản, nhưng thực chất thì không phải như thế.
Thứ nhất, các nhà phát triển phải xây dựng nên một công nghệ có thể lắng nghe, phân tích và phiên dịch một cách chính xác giọng nói của người dùng. Nếu không thì làm sao app biết bạn đang nói gì, còn nếu độ chính xác không cao thì cũng như không.
Thứ hai, vấn đề bản địa hóa (localization) cũng là một chuyện làm đau đầu các lập trình viên. Mỗi quốc gia sẽ có ngôn ngữ của riêng mình, vấn đề đó là làm thế nào để có thể hỗ trợ càng nhiều ngôn ngữ càng tốt. Hiện nay hầu hết những dịch vụ giọng nói đều hỗ trợ tiếng Anh, Google Voice Input trong Android và Voice Dictation trong iOS 8 thì có hỗ trợ tiếng Việt nhưng cũng còn nhiều hạn chế. Đó là chưa nói đến việc mỗi vùng miền lại có cách nói, giọng điệu khác nhau mặc dù họ sử dụng cùng một ngôn ngữ.
Có một kĩ thuật được nhắc đến nhiều trong thời gian gần đây, đó là Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP). Nó là tập hợp của nhiều thuận toán phức tạp nhằm phân tích mệnh lệnh của người dùng nhưng không bắt buộc họ phải nói theo một cấu trúc câu định sẵn. Nhiều năm trước khi muốn điều khiển bằng giọng nói, bạn chỉ có thể nói những thứ như "Mở bản đồ", "Nhắn tin cho vợ", "Báo thức lúc 5 giờ sáng". Còn bây giờ thì nhờ có NLP, chúng ta có thể nói các câu như "Siri, vui lòng nhắn tin cho vợ của tôi là tôi sẽ về trễ nhé", hay như "Hãy đánh thức tôi lúc 5 giờ sáng ngày mai".
NLP cũng không phải là đơn giản để phát triển. Cả Apple, Google và Microsoft đều phải đầu tư rất nhiều tiền bạc và nguồn lực để có thể đưa NLP lên đến mức tiến bộ như hiện nay. Mặc dù vậy, các công ty vẫn phải tiếp tục nghiên cứu để cải thiện độ chính xác cũng như hỗ trợ thêm nhiều ngôn ngữ khác nhau.
Mô hình triển khai công nghệ giọng nói
Có nhiều cách thức mà các công ty hiện nay đang triển khai voice technology, có thể kể đến 2 phương pháp phổ biến như sau:
Điện toán đám mây: Trong trường hợp này, việc nhận dạng, xử lý ngôn ngữ (chính là TTS hoặc NLP mà mình đã nói ở trên) sẽ diễn ra trên máy chủ của các công ty cung cấp dịch vụ. Phương pháp đám mây giúp việc nhận dạng được chính xác hơn, ứng dụng thì có dung lượng nhỏ, nhưng bù lại thì thiết bị ở phía người dùng phải luôn kết nối với Internet. Độ trễ trong quá trình gửi giọng nói từ máy lên server rồi trả kết quả từ server về lại máy cũng là những thứ đáng cân nhắc. Siri, Google Voice, Cortana hiện đang xài cách này.
Tích hợp thẳng vào app: Với phương thức này, quá trình xử lý giọng nói sẽ diễn ra trong nội bộ ứng dụng, không cần giao tiếp với bên ngoài, chính vì thế tốc độ sẽ nhanh hơn. Người dùng cũng không bắt buộc phải kết nối vào mạng thường trực. Tuy nhiên, giải pháp này gặp nhược điểm đó là khi có cập nhật hoặc thay đổi gì đó về bộ máy nhận dạng, nhà sản xuất sẽ phải cập nhật lại cả một app, trong khi với phương thức đám mây thì những thay đổi đó chỉ cần làm ở phía server. Kích thước ứng dụng cũng sẽ tăng lên, có thể lên tới cả vài trăm MB. Hiện có Nuance và một vài app nhỏ là xài phương pháp tích hợp. Apple, Google cũng có bổ sung tùy chọn offline cho một số ngôn ngữ nhất định dùng trong việc chuyển văn bản thành chữ viết.
Các thư viện giọng nói phổ biến
Nuance có lẽ là cái tên được nhắc đến nhiều nhất trong việc cung cấp thư viện giọng nói cho app di động. Chính nhờ vào những thư viện như thế này mà lập trình viên không cần phải tự mình thiết kế hệ thống nhận dạng, phiên dịch cho app mà chỉ cần xài lại cái có sẵn, tiết kiệm được nhiều thời gian, công sức và tiện bạc. Nuance có hỗ trợ cho tiếng Việt trong ứng dụng Dragon Dictation do chính hãng này phát triển.
OpenEars cũng là một thư viện khác nhưng nó thuộc dạng nguồn mở và hoạt động offline, hạn chế là chỉ hỗ trợ tiếng Anh và Tây Ban Nha. Vài cái tên khác có thể kể đến như Ivona, iSpeech, Vocalkit and Acapela.
Một cách khác mà nhiều phần mềm hiện cũng đang xài đó là tận dụng bộ nguồn nhận dạng có sẵn trên các hệ điều hành di động. Người dùng có thể kích hoạt tính năng này ở những chỗ cần nhập văn bản. Từ iOS 7 về trước thì tính năng này không hỗ trợ tiếng Việt, phải lên iOS 8 mới có. Google thì bắt đầu hỗ trợ nhập liệu tiếng Việt cho Android khoảng một năm về trước. Ngoài ra, Apple, Google cũng có cung cấp các hàm API giúp app của lập trình viên biết nói chỉ với vài dòng mã nguồn.
Kết
Tiềm năng của công nghệ nhận dạng giọng nói là rất lớn. Hiện nay chúng ta chỉ mới khai thác được những bề nổi của nó chứ chưa thật sự đi sâu. Hãy nghĩ đến một tương lai nơi bạn có thể hoàn toàn để điện thoại trong túi quần và thực hiện tất cả chỉ bằng cách nói vào tai nghe Bluetooth. Nhìn rộng hơn, bạn vừa về tới nhà và nói vào chiếc điện thoại của mình: mở máy lạnh nha, kao về nhà rồi, mở sẵn luôn cả nhạc nữa nhé, thế là khi mở cửa bước vào thì mọi thứ đã được thực hiện. Tính năng nhận dạng giọng nói không chỉ dừng lại ở việc nhập liệu mà nó còn mở ra cả một chân trời để chúng ta khai thác và đơn giản hóa cuộc sống của mình. Công nghệ được sinh ra là để làm cho cuộc sống dễ dàng hơn kia mà, và việc nhận dạng giọng nói chắc chắn sẽ không phải là ngoại lệ.