
CÔNG NGHỆ Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC ● Số 13.2023
156
KHOA H
ỌC
NGHIÊN CỨU MỘT SỐ THUẬT TOÁN AI, ỨNG DỤNG NHẬN DIỆN GIỌNG NÓI
RESEARCHING SOME AI ALGORITHM AND VOICE RECOGNITION APPLICATIONS Nguyễn Tiến Hùng1,*, Phạm Anh Tuấn1, Chu Thị Quyên2 TÓM TẮT Nhận diện giọng nói là một ứng dụng máy tính tự động xác định và phân lo
ại
nguồn âm thanh thành các đặc trưng giọng nói. Quá trình này thường đư
ợc sử dụng
để xác định người nói và nhận dạng các từ và câu đư
ợc phát ra từ giọng nói. Một trong
những cách để thực hiện việc này là sử dụng các thuật toán và mô hình h
ọc máy để
phân tích và trích xuất các đặc trưng từ giọng nói. Các đặc trưng này có th
ể bao gồm
tần số, thời lượng, âm sắc và các thông số khác của âm thanh. Quá trình nh
ận diện
giọng nói thư
ờng bắt đầu bằng việc thu thập một tập dữ liệu giọng nói lớn từ nhiều
nguồn và người nói khác nhau. Dữ liệu này được sử dụng để huấn luyện mô hình nh
ận
diện giọng nói. Khi có một đoạn giọng nói cần nhận diện, quá trình xác định ngư
ời nói
và phân tích các từ và câu được thực hiện bằng cách so sánh các đặc trưng c
ủa giọng
nói với các mẫu đã được lưu trữ trong cơ sở dữ liệu. Công nghệ nhận diện giọng nói l
à
một công nghệ sinh trắc học có tác động thấp đối với người dùng. Nó có thể đư
ợc sử
dụng trong nhiều lĩnh vực, bao gồm hệ thống bảo mật và giao ti
ếp với máy tính thông
qua giọng nói. Tóm lại, nhận diện giọng nói là quá trình sử dụng thuật toán v
à mô
hình học máy để xác định và phân loại giọng nói. Nó mang l
ại nhiều ứng dụng trong
việc xác định người nói và nhận biết các từ và câu được phát ra từ giọng nói. Từ khóa: Nhận dạng giọng nói, mô hình Markov ẩn, mã hóa d
ự đoán tuyến
tính, mạng thần kinh, mô hình hỗn hợp Gaussian. ABSTRACT
Speech recognition is a computer application that automatically identifies and
categorizes audio sources into speech features. This process is commonly used to
determine the speaker and recognize the words and sentences spoken in a given
speech. One of the
ways to accomplish this is by utilizing algorithms and machine
learning models to analyze and extract speech features from the audio. These
features may include frequency, duration, pitch, and other acoustic parameters. The
process of speech recognition t
ypically begins with collecting a large dataset of
speech from various sources and speakers. This data is used to train the speech
recognition model. When a speech segment needs to be recognized, the process of
speaker identification and analysis of the sp
oken words and sentences is carried out
by comparing the speech features with the stored patterns in the database. Speech
recognition technology is a
biometric technology with minimal impact on users. It
can be applied in various fields, including security
systems and computer interaction
through speech. In summary, speech recognition is the process of using algorithms
and machine learning models to determine and categorize speech. It has numerous
applications in speaker identification and word/sentence recognition from speech. Keywords:
Speech recognition, Hidden Markov Model, Linear Predictive
Coding, Neural Network, Gaussian Mixture Model . 1Lớp Kỹ thuật phần mềm 01 - K16, Khoa CNTT, Trường Đại học Công nghiệp Hà Nội2Khoa CNTT, Trường Đại học Công nghiệp Hà Nội *Email: tienhung203n@gmail.com 1. GIỚI THIỆU Trong thời đại hiện tại, sự phát triển của hệ thống trí tuệ nhân tạo (AI) đã tạo ra khả năng tương tác tự nhiên giữa con người và máy móc. Các hệ thống này có thể tương tác thông qua giọng nói, giao tiếp, cử chỉ và nét mặt, và đã trở nên ngày càng phổ biến. Một trong những hướng phát triển quan trọng là hướng tương tác, dựa trên khả năng máy móc hiểu ngôn ngữ tự nhiên của con người. Thay vì con người học cách tương tác với máy móc, ngày nay máy móc học cách tương tác với con người, hiểu hành động, thói quen và hành vi của họ, và cố gắng trở thành trợ lý được cá nhân hóa. Công việc tạo ra và phát triển các trợ lý cá nhân như vậy đã được tiến hành trong một thời gian dài. Các hệ thống này liên tục được cải tiến và phát triển, không chỉ tồn tại trên máy tính cá nhân mà còn trên các thiết bị di động và các ứng dụng khác. Trợ lý ảo (còn được gọi là trợ lý kỹ thuật số, trợ lý giọng nói hoặc trợ lý AI) là một ứng dụng có nhiệm vụ nhận dạng giọng nói của con người và thực hiện các lệnh được người dùng phát âm. Nền tảng của trợ lý ảo là trí tuệ nhân tạo và hiệu suất của nó phụ thuộc vào việc lưu trữ hàng triệu từ và cụm từ. Khác với các hệ thống nhận dạng giọng nói đầu tiên được nghiên cứu vào những năm 1940-1950, các trợ lý ảo hiện đại không bị hạn chế bởi một mẫu ngôn ngữ hoặc từ vựng cố định. Đến những năm đầu của thế kỷ 21, các nghiên cứu tập trung vào việc nâng cao kết quả nhận dạng tiếng nói, thông qua chương trình có tên gọi EARS (Effective Affordable Reusable Speech-to-Text). Tới thời điểm này, tiếng nói được giả thiết là đã được thu âm trong môi trường bình thường, không bị ràng buộc bởi bất cứ điều kiện nào (các điều kiện giả thiết trước đây thường bao gồm tiếng nói được thu trong phòng sạch cách âm và do người bản xứ đọc). Đích hướng tới của chương trình này là khả năng nhận dạng, tóm tắt và chuyển ngữ các đoạn audio, giúp cho người đọc hiểu nhanh nội dung của chúng thay vì phải nghe toàn bộ. Hiện nay, với các ngôn ngữ phổ biến như tiếng Anh, tiếng Pháp, tiếng Tây Ban Nha, các công trình nghiên cứu về nhận dạng tiếng nói đã thu được những kết quả rất tốt, có nhiều ứng dụng thực tiễn được triển khai như: • Hệ thống giao tiếp hỏi đáp thông tin tự động qua điện thoại. • Hệ thống truy vấn thông tin thoại.

SCIENCE - TECHNOLOGY Số 13.2023 ● Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC 157
• Hệ thống thông dịch tiếng nói xuyên ngữ tự động. • Các trạm kiểm soát, hệ thống điều khiển sử dụng tiếng nói. • Các ứng dụng tiếng nói trên thiết bị di động. Về mặt kinh tế và thương mại, công nghệ nhận dạng tiếng nói đã thay đổi cách con người tương tác với hệ thống và thiết bị, không còn bó buộc trong cách thức tương tác truyền thống (như thông qua bàn phím của máy tính hay điện thoại) mà chuyển sang tương tác trực tiếp bằng giọng nói. Trong môi trường kinh tế cạnh tranh, các ứng dụng dần dần đã chuyển sang tích hợp tính năng tương tác âm thanh. Việc ứng dụng và khách hàng có thể tương tác với nhau thông qua âm thanh không có nghĩa là loại bỏ giao diện đồ họa truyền thống mà nó cung cấp thêm một cách truy cập thông tin và dịch vụ tiện lợi, tự nhiên hơn. Về mặt khoa học, các hệ thống nhận dạng tiếng nói hiện tại đều dựa trên phương pháp thống kê và so khớp mẫu. Phương pháp này đòi hỏi các tri thức về ngữ âm và một lượng lớn dữ liệu huấn luyện, bao gồm cả dạng âm thanh và dạng văn bản, để huấn luyện bộ nhận dạng. Lượng dữ liệu huấn luyện càng lớn, bộ dạng dạng càng có nhiều khả năng đưa ra kết quả chính xác hơn. Tại Việt Nam, có hai nhóm nghiên cứu chính về bài toán nhận dạng tiếng nói liên tục với bộ từ vựng lớn (LVCSR). Nhóm đầu tiên thuộc Viện Công nghệ Thông tin do PGS. Lương Chi Mai đứng đầu, với phương pháp ANN và công cụ CSLU [3] được sử dụng. Nhóm thứ hai thuộc trường Đại học Khoa học Tự nhiên thành phố Hồ Chí Minh do PGS. Vũ Hải Quân đứng đầu, với phương pháp HMM và công cụ HTK được sử dụng, các nghiên cứu của nhóm tập trung vào bài toán truy vấn thông tin tiếng Việt, nhận dạng tiếng nói, hệ thống giao tiếp giữa người và máy, tìm kiếm bằng giọng nói,... Ngoài ra, gần đây có nghiên cứu của LIG (Laboratoire Informatique de Grenoble) hợp tác với phòng thí nghiệm MICA ở Hà Nội về sự khả chuyển của các mô hình ngữ âm (acoustic model portability). Ở trong nước còn có các đề tài liên quan như: “Chương trình đọc chính tả”, sử dụng lượng hóa vector VQ, hạn chế về nhận dạng tiếng nói liên tục. “Phát triển các kết quả tổng hợp, nhận dạng câu lệnh, chuỗi số tiếng Việt liên tục trên môi trường điện thoại di động”, “Tăng cường độ chính xác của hệ thống mạng neuron nhận dạng tiếng Việt”, “Chương trình nhận dạng lệnh 10 chữ số liên tục qua điện thoại” của Viện công nghệ thông tin sử dụng công cụ CSLU, phương pháp mô hình Artificial neural network - ANN, giải mã bằng thuật toán Viterbi, cơ sở dữ liệu mẫu âm học của CSLU. 2. NGUYÊN LÝ CHUNG Các hệ thống trợ lý ảo chung đều dựa trên phương pháp học máy và sử dụng một lượng lớn dữ liệu được thu thập từ nhiều nguồn khác nhau. Dữ liệu này sau đó được đào tạo để cung cấp kiến thức cho hệ thống. Nguồn dữ liệu chơi một vai trò quan trọng và có thể bao gồm hệ thống tìm kiếm, các nguồn thông tin khác nhau hoặc mạng xã hội. Số lượng thông tin từ các nguồn khác nhau ảnh hưởng đến hiệu quả của trợ lý, và chúng có thể chính xác hoặc không chính xác tùy thuộc vào nguồn dữ liệu. Có một số cách tiếp cận và phương pháp để xây dựng các hệ thống trợ lý ảo. Điều này có thể bao gồm việc tự huấn luyện từ nguồn dữ liệu thông qua nghiên cứu và xây dựng, hoặc sử dụng các module và thư viện mã nguồn mở. Mỗi hệ thống trợ lý ảo có các phương pháp học tập, thuật toán và kỹ thuật khác nhau, nhưng nguyên tắc xây dựng các hệ thống này vẫn tương tự nhau. Các công nghệ được sử dụng để tạo ra các hệ thống trợ lý ảo thông minh có khả năng tương tác với con người bằng ngôn ngữ tự nhiên bao gồm giọng nói kích hoạt, nhận dạng giọng nói tự động, dạy từ giọng nói (Teach-To-Speech), sinh trắc học giọng nói (Voice biometrics), trình quản lý hộp thoại (Dialog manager), hiểu ngôn ngữ tự nhiên (Natural language understanding) và công nhận thực thể được đặt tên (Named entity recognition). 3. XÂY DỰNG HỆ THỐNG 3.1. Cấu trúc hệ thống Hình 1. Cấu trúc hoạt động hệ thống Nhận dạng giọng nói hệ thống sử dụng hệ thống nhận dạng giọng nói trực tuyến sử dụng thư viện Speech_recognition để chuyển đổi đầu vào bằng giọng nói thành văn bản. Người dùng có thể lấy văn bản từ kho tài liệu đặc biệt được tổ chức trên máy chủ mạng máy tính tại trung tâm thông tin từ micrô là được lưu trữ tạm thời trong hệ thống, sau đó được gửi đến đám mây của Google để nhận dạng giọng nói. Văn bản tương đương sau đó được nhận và đưa đến bộ xử lý trung tâm. Đây là não bộ của trợ lý ảo sử dụng robot brain. Phần hỗ trợ Python nhận đầu ra từ mô đun nhận dạng giọng nói và sau đó xác định xem lệnh hay giọng nói đầu ra là một lệnh gọi API, trích xuất ngữ cảnh và lệnh gọi hệ thống. Đầu ra sau đó được gửi trở lại chương trình phụ trợ python để đưa ra yêu cầu xuất cho người dùng. Trích xuất ngữ cảnh: Trích xuất ngữ cảnh (CE) là nhiệm vụ trích xuất tự động thông tin có cấu trúc từ không có cấu trúc và / hoặc bán cấu trúc tài liệu có thể đọc được bằng máy. Trong hầu hết các trường hợp, hoạt động này liên quan đến việc xử lý các văn bản ngôn ngữ của con người bằng các phương thức tự nhiên xử lý ngôn ngữ (NLP). 3.2. Thiết kế hệ thống Hệ thống trợ lý ảo giọng nói khởi chạy trên nền tảng window với ngôn ngữ python. Để khởi chạy hệ thống nghe, hiểu, nói nghiên cứu sử dụng các thư viện hỗ trợ như hình 2.

CÔNG NGHỆ Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC ● Số 13.2023
158
KHOA H
ỌC
Điển hình là thư viện speech_recognition để nhận dạng âm thanh giọng nói và thư viên Playsound để phát âm thanh ra loa. Ngoài ra hệ thống còn sử dụng các thư viện thời gian, thời tiết… Hình 2. Thư viện hỗ trợ Xử lý ngôn ngữ tự nhiên là một trong những mảng nghiên cứu khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ tư duy và giao tiếp chưa kể ở dạng tiếng việt. Nghiên cứu có thể xử lý ngôn ngữ tiếng việt ở nhiều vùng miền, cả nam lẫn nữ, tương đối phức tạp. Nghiên cứu này nhóm sử dụng thư viện tiếng việt tích hợp hỗ trợ trên hệ thống “language = 'vi-VN'”. Tuy chất lượng xử lý tiếng việt chưa thực sự tuyệt vời với tất cả các giọng vùng miền nhưng với giọng điệu ngôn ngữ phổ thông xử lý hoàn toàn tốt. Hình 3. Thuật toán tìm kiếm dữ liệu Nghe: Với thư viện speech_recognition (sr) có chức năng là nhận dạng giọng nói để chuyển âm thanh thành văn bản. Âm thanh được đọc vào microphone của máy tính sau đó được xử lý qua hàm listen của sr.Recognition rồi lưu dữ liệu âm thanh vào biến audio. Dữ liệu âm thanh audio thu được sẽ được nhận dạng ở ngôn ngữ tiếng việt trong hàm r.recognize_google để chuyển thành dạng văn bản rồi lưu dữ liệu vào biến text. Nếu dữ liệu âm thanh audio không lỗi tức là hàm r.recognize_google có thể nhận dạng được audio để chuyển thành text thì hàm get_audio() sẽ được trả về giá trị là text còn nếu dữ liệu audio bị lỗi mà hàm r.recognition_google không nhận dạng được thì hàm get_audio() sẽ được trả về giá trị là 0. Hiểu: Robot_Brain sau khi nhận tín hiệu nghe được sẽ truy suất vào các thư viện được hỗ trợ trong chương trình như thư viện ngày, giờ, duyệt web, truy suất hệ thống, khởi chạy ứng dụng... Ưu điểm của sử dụng thư viện tích hợp sẽ giúp hệ thống bớt cồng kềnh về việc lưu trữ dữ liệu đám mây, không cần cung cấp dữ liệu dạy học cho hệ thống mà sử dụng nền tảng có sẵn. Hình 3 là thuật toán truy suất dữ liệu trên hệ thống qua các thư viện hỗ trợ và kho dữ liệu trực tuyến của hệ thống. Hình 4. Tập lệnh nhận diện giọng nói của trợ lý ảo 4. KẾT QUẢ NGHIÊN CỨU VÀ THẢO LUẬN Tiến hành thử nghiệm giao tiếp ngẫu nhiên với Trợ lý ảo mỗi lần 50 câu lấy kết quả. Bảng 1. Kết quả đánh giá Thử nghiệm Số câu đúng Số câu sai Chính xác 1 23/50 27/50 46% 2 31/50 19/50 62% 3 24/50 26/50 48% 4 39/50 11/50 78% 5 71/80 9/80 88,75% Đánh giá kết quả thử nghiệm: Dựa trên bảng 1 cho thấy độ chính xác sẽ tăng dần. Có thể giải thích vì: Lần 1: Thực hiện nhận diện trong môi trường có tiếng ồn. Vì thế độ chính xác sẽ thấp. Lần 2: Đã thêm vào câu lệnh để giảm tiếng ồn “adjust_for_ambient_noise”. Vì thế độ chính xác sẽ tăng thêm. Lần 3: Khi có tiếng ồn lớn phần nghe sẽ thự hiện nghe mãi. Vì thế độ chính xác cũng thấp. Lần 4: Đã thêm giới hạn thời gian nghe và thời gian bắt đầu. Vì thế cải thiện được độ chính xác Lần 5: Đã thực hiện cho máy nghe liên tục nhiều lần đến bao giờ nhận được chữ “ tạm biệt ” mới dừng chương trình và cài thời gian giảm tiếng ồn cho chương trình. Vì thế cải thiện được số lần test và độ chính xác được tăng thêm.

SCIENCE - TECHNOLOGY Số 13.2023 ● Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC 159
5. KẾT LUẬN Trong bài báo này, nhóm nghiên cứu đưa ra thiết kế bằng mã nguồn mở mô đun phần mềm với sự hỗ trợ của thư viện python. Hướng nghiên cứu này giúp xây dựng hệ thống đơn giản hơn, dễ dàng thêm các tính năng bổ sung mà không làm ảnh hưởng đến các chức năng hiện tại của hệ thống. Nó không chỉ hoạt động theo lệnh của con người mà còn đưa ra văn bản cho người dùng trên cơ sở truy vấn nghe được. Với kết quả thực nghiệm mô hình hệ thống qua 50 câu hỏi bất kỳ các nội dung có kết quả thống kê: Thời gian phản hồi 2 giây; độ chính xác thông tin trả về khoảng 89%; Phạm vi thông tin và ưu tiên kết quả trả lời phụ thuộc thuật toán google. Tuy nhiên, trong quá trình nhận dạng giọng nói sẽ gặp phải sự phức tạp do nhiễu. Có rất nhiểu yếu tố khác có thể đóng một vai trò gây nhiễu và làm ảnh hưởng tới kết quả nhận dạng cũng như chạy thuật toán gây sai số sấp xỉ 10%. Tiếng ồn xung quanh có thể dễ dàng khiến thiết bị nhận dạng giọng nói đi chệch hướng. Hay giọng đặc trưng vùng miền mà thư viện với dữ liệu chưa được huấn luyện kỹ. TÀI LIỆU THAM KHẢO [1]. Rabiner Lawrence, Juang Bing-Hwang, 1993. Fundamentals of Speech Recognition. Prentice Hall, New Jersey, ISBN 0-13-015157-2 [2] . Hayes H. Monson, 1996. Statistical Digital Signal Processing and Modeling. John Wiley & Sons Inc. , Toronto, ISBN 0-471-59431-8 [3]. Proakis John G., Manolakis Dimitris G., 1996. Digital Signal Processing, principles, algorithms, and applications. Third Edition, Prentice Hall, New Jersey, ISBN 0-13-394338-9 [4]. Baum L.E., Eagon J. A., 1967. An inequality with applications to statistical estimation for probabilistic functions of Markov processe and to model for ecology. Bulletin of American Mathematical Society, 73:360-363. [5]. Baum L.E., 1972. An inequality and associated maximisation technique in statistical estimation for probabilistic functions of Markov processes. Inequalities 3:1-8. [6]. Young Steve, 1996. A Review of Large-vocabulary Continuous-speech Recognition. IEEE SP Magazine, 13:45-57, ISSN 1053-5888. [7]. Mammone Richard J., Zhang Xiaoyu, Ramachandran Ravi P., 1996. Robust Speaker Recognition. IEEE SP Magazine, 13:58-71, ISSN 1053-5888.

