Bạn phải đăng ký để thấy được link


Máy giúp việc điều khiển bằng tiếng nói. (Hình: connect2affect.org)




Hiện nay nhiều người dùng thiết bị giúp việc ở nhà như Amazon Alexa hay Google Home. Những thiết bị này nhận mệnh lệnh bằng tiếng nói của chủ nhân và thi hành những mệnh lệnh đó.
Làm sao máy có thể hiểu được tiếng người? Đó là nhờ một kỹ thuật gọi là nhận biết tiếng nói (speech recognition).

Sự khó khăn của nhận biết tiếng nói


Con người nghe và hiểu người khác một cách dễ dàng nhưng đối với máy thì nhận biết tiếng nói là một bài toán nan giải. Hơn một thế kỷ trước, ông Alexander Graham Bell, người phát minh ra điện thoại, muốn làm ra một máy nhận biết tiếng nói, nhưng không thành công. Cho đến nay bộ nhận biết tiếng nói vẫn chưa được hoàn hảo vì những lý do sau đây:
-Khi một người nói ở ngoài đường hay trong phòng đông người thì có rất nhiều tiếng động khác với tiếng nói của người đó. Những tiếng động khác được gọi là nhiễu âm (background noise). Người nghe thì có thể phân biệt dễ dàng giữa nhiễu âm và tiếng nói, nhưng máy thì khó hơn.


-Tiếng nói mỗi người một khác, có người nói nhanh và nuốt chữ, có người nói chậm. Ấy là chưa kể những giọng đặc biệt của người di dân. Ngay cả người Mỹ ở những vùng khác nhau cũng có giọng nói khác.
-Có những tiếng đồng âm nhưng dị nghĩa. Thí dụ “there” và “their” hay “be” và “bee.”


Những kỹ thuật về nhận biết tiếng nói

Đơn vị căn bản của tiếng nói được gọi là âm vị (phoneme). Tiếng Anh có 44 âm vị và một tiếng nói thường là ghép nhiều âm vị lại với nhau, thí dụ chữ “cat” có ba âm vị: “c,” “a,” và “t.”
Tiếng nói được phát ra là từ sự rung động của dây thanh âm trong cổ họng tạo ra sóng âm thanh và được truyền đi ra ngoài không khí chung quanh. Máy vi âm thu nhận sóng âm thanh đó và biến thành tín hiệu điện. Để máy tính có thể hiểu được, tín hiệu điện được mã hóa, tức là biến thành số nhị phân “0” và “1” do một thiết bị gọi là bộ chuyển đổi tương tự sang số (analog to digital converter).

Trong quá trình biến đổi này máy tính có thể làm thêm nhiều việc khác để sửa soạn tín hiệu trước khi đi vào phần chính, thí dụ như gạn lọc bỏ nhiễu âm hay bình thường hóa âm thanh. Sau đó tín hiệu được chia thành từng đoạn nhỏ, mỗi đoạn chỉ là âm thanh trong vòng vài phần trăm của một giây, có khi còn ngắn hơn nữa.

Những đoạn nhỏ này được so sánh với các âm vị được gài sẵn trong máy để biết đó là âm vị gì. Tưởng là đơn giản nhưng không dễ vì tiếng nói con người không rõ ràng, nên nhiều khi chỉ có thể đoán. Những âm vị gần nhau được ráp lại để làm thành một chữ. Đây là giai đoạn khó khăn nhất trong quy trình nhận biết tiếng nói.

Vì phải suy đoán ra từng chữ và từng câu nên máy tính phải vận dụng hết tất cả những hiểu biết về ngôn ngữ như tự điển ngữ âm, văn phạm, và cú pháp cũng như sử dụng những thuật toán tinh vi để đưa đến kết luận có vẻ đúng nhất. Hai phương pháp được dùng nhiều nhất để suy đoán là phân tích thống kê (statistical analysis) và mạng lưới thông minh nhân tạo (artificial neural network).
Bạn phải đăng ký để thấy được link


Hình minh họa sóng âm thanh. (Hình: adastra.fit.edu)



Các bộ nhận biết tiếng nói

Vì sự phức tạp của vấn đề nên nhiều bộ nhận biết tiếng nói đã phải giới hạn trong một phạm vi nhỏ hẹp. Khi bạn gọi đến một công ty lớn nào thì chắc chắn bạn sẽ nói chuyện với máy. Những máy này được thiết lập để hiểu được một số tiếng nói rất giới hạn thí dụ như “yes,” “no,” các con số và một số chữ trong ngành chuyên môn. Nếu bạn nói ra ngoài phạm vi đó thì máy sẽ không hiểu.
Một phương pháp khác là huấn luyện. Bạn có thể nói đi nói lại cho máy giúp việc trong nhà để máy đó có thể hiểu được bạn muốn nói gì.

Ứng dụng của kỹ thuật nhận biết tiếng nói

Giúp người khuyết tật: Người bị mù không đọc màn hình được mà cần công nghệ biến chữ viết thành tiếng nói để có thể hiểu những gì trên màn hình. Ngược lại, người bị điếc thì cần công nghệ biến tiếng nói thành chữ để hiện lên màn hình.
Liên lạc với rô bô hay thiết bị điện tử: Rô bô càng ngày càng phát triển và được dùng nhiều, một cách liên lạc với rô bô hữu hiệu nhất là dùng tiếng nói. Khi đang lái xe thì ra lệnh bằng tiếng nói cho các thiết bị điện tử như Google Map tiện lợi và an toàn hơn là bấm lên điện thoại di động.

Thông dịch: Muốn thông dịch từ ngôn ngữ này sang một ngôn ngữ khác bằng tiếng nói thì việc đầu tiên là phải hiểu người ta muốn nói gì, tức là phải có khả năng nhận biết tiếng nói, sau đó tra tự điển và dùng các thuật toán để dịch sang ngôn ngữ khác. Cuối cùng thì dùng kỹ thuật tổng hợp tiếng nói để phát ra câu mới được dịch bằng ngôn ngữ khác.


Sự khác biệt giữa nhận biết tiếng nói và nhận dạng giọng nói (voice recognition)

Nhận biết tiếng nói dùng để hiểu những điều người đang nói bất kể người đó là ai. Còn nhận dạng giọng nói dùng để nhận dạng người đang nói là ai. Hai phần mềm hoàn toàn khác nhau và hai ứng dụng cũng khác.
Vì cấu trúc của miệng, lưỡi, cuống họng cũng như cách nói mỗi người một khác nên có thể dùng giọng nói để nhận biết người đó là ai. Do đó kỹ thuật nhận dạng giọng nói còn được gọi là kỹ thuật nhận thực bằng giọng nói (voice authentication).

Kỹ thuật tổng hợp tiếng nói

Ngược với nhận biết tiếng nói là phát ra tiếng nói theo chữ viết. Kỹ thuật tổng hợp tiếng nói (voice synthesis) là biến chữ viết thành tiếng nói, cũng như một người đọc to câu văn viết trên giấy. Vì vậy kỹ thuật này còn được gọi là kỹ thuật biến bản văn thành tiếng nói (text to speech). So với nhận biết tiếng nói thì tổng hợp tiếng nói dễ hơn nhiều vì đầu vào (input) là bản văn rõ ràng không phải phỏng đoán gì hết. Vấn đề là chỉ phát ra tiếng nói theo bản văn nhận được. Tuy nhiên cũng có những trường hợp phải nhận biết văn cảnh (context) của bản văn để đọc cho đúng. Thí dụ câu “I read a book” tùy theo ở thì hiện tại hay quá khứ mà đọc khác nhau. Ở thì hiện tại thì phải đọc là “I [reed] a book,” nhưng nếu đang nói chuyện trong quá khứ thì phải đọc là “I [red] a book.”
Có nhiều phương pháp để phát tiếng nói. Phương pháp dễ nhất là để trong cơ sở dữ liệu phát âm của tất cả các chữ trong tự điện. Khi cần phát âm chữ nào thì lấy chữ đó ra dùng. Cách này thì không được hay vì giọng nói đều đều buồn tẻ và rõ là giọng nói của máy. Cũng có thể thâu sẵn những câu thông thường để phát ra.
Cái khó ở đây là nói sao cho giống tiếng người và có giọng lên xuống cho nó có hồn trong tiếng nói.


Giới hạn của kỹ thuật nhận biết tiếng nói

Vì mỗi người nói một giọng khác nhau, thí dụ người Việt nói tiếng Anh thì rất khác với người Ấn Độ, nên phần mềm nhận biết tiếng nói chưa được tốt. Cá nhân tôi không thích khi gọi điện thoại tới mấy công ty và phải nói chuyện với máy, vì mình nói tiếng Anh với giọng Việt máy không hiểu nổi.
Hiện nay các công ty như Google hay IBM vẫn đang ráo riết nghiên cứu để có phần mềm nhận biết tiếng nói tốt hơn. Họ dùng công nghệ AI (thông minh nhân tạo) để cải tiến phần mềm nhận biết tiếng nói.


nguoivietonline