









Preview text:
lOMoAR cPSD| 59671932
Đề tài: Xây dựng trợ lý ảo cho máy tính
Học phần: Trí tuệ nhân tạo
Giảng viên: Phạm Văn Hải Nhóm 17 Họ và tên MSSV Nguyễn Thanh Tùng - Bùi Gia Tiến Lê Duy Tùng - 20176122
Hà Nội, ngày 23 tháng 12 năm 2022 MỤC LỤC
1. Giới thiệu............................................................................................................2
2. Vấn đề.................................................................................................................2
3. Mục đích.............................................................................................................3
4. Phương pháp tiếp cận/ Các nghiên cứu tương đương...............................3
5. Mô hình đề xuất/ Thuật toán/ Giải thuật đề xuất.........................................5
5.1. Nhận diện giọng nói (ASR).........................................................................5
5.1.1. Sampling and Quantization......................................................................5
5.1.2. Windowing..............................................................................................6
5.1.3 Discrete Fourier Transform......................................................................6
5.1.4 Mel Filter Bank và Log............................................................................7
5.2. Speech Recognition Architecture................................................................7
5.3. Khả năng xử lý yêu cầu................................................................................9
6. Thực nghiệm....................................................................................................9
7. Kết luận............................................................................................................9 1. Giới thiệu
Cuộc sống số của chúng ta được quyết định bởi những đổi mới. Đặc biệt
là trong những năm gần đây, nhiều công nghệ tiên tiến hơn đã được phát
triển để tạo điều kiện thuận lợi cho cuộc sống chuyện nghiệp và hàng ngày của chúng ta.
- Trợ lý cá nhân thông minh là 1 thành tựu quan trọng và đã trở thành một
phần không thể thiếu trong quá trình số hoá phổ biến.
- Những trợ lý ảo này hiện có thể được tìm thấy trong tất cả các thiết bị như
điện thoại thông minh, máy tính bảng và cả đồng hồ thông minh. Sự cạnh
tranh ngày căng tăng trong lĩnh vực này đã dẫn đến nhiều cải tiến.
- Các công ty lớn như Amazon, Google, Apple… cung cấp cơ sở hạ tầng
kỹ thuật số hoàn chỉnh có thể được điều khiển bằng trợ lý giọng nói.
- Tuy nhiên, vẫn còn rất ít những trợ lý ảo cho nền tảng máy tính. Trong
môn học Trí Tuệ Nhân Tạo này, chúng em xin phép được đề xuất đề bài
Xây dựng trợ lý ảo cho máy tính.
- Mục tiêu của dự án sẽ là tạo ra 1 trợ lý ảo trên máy tính có thể nhận input
từ giọng nói hoặc văn bản và phản hồi người dùng với thông tin mà người dùng yêu cầu 2. Vấn đề
- Trợ lý ảo là 1 công nghệ dựa trên trí tuệ nhân tạo. Phần mềm sử dụng
micro của thiết bị để nhận yêu cầu bằng giọng nói trong khi đầu ra giọng
nói diễn ra tại loa. Nó là sự kết hợp của một số công nghệ khác nhau:
nhận dạng giọng nói, phân tích giọng nói và xử lý ngôn ngữ.
- Khi người dùng yêu cầu trợ lý cá nhân thực hiện 1 tác vụ, tín hiệu âm
thanh ngôn ngữ tự nhiên sẽ được chuyển dổi thành dữ liệu kỹ thuật số mà
phần mềm có thể phân tích. Sau đó, dữ liệu này được so sánh với cơ sở
dữ liệu của phần mềm bằng thuật toán cải tiến để tìm ra câu trả lời phù
hợp. Cơ sở dữ liệu này được đặt trên các máy chủ phân tán trọng mạng
đám mây. Ví lý do này, hầu hết các trợ lý cá nhân không thể hoạt động
nếu không có kết nối Internet đáng tin cậy.
- Với số lượng truy vấn ngày càng tăng, cơ sở dữ liệu của phần mềm được
mở rộng và tối ưu hoá, giúp cái thiện khả năng nhận dạng giọng nói và
tăng thời gian phản hồi của hệ thống. Tuy nhiên, đây là một thách thức
đối với nhóm chúng em khi thực hiện đề tài này
Một số trở ngịa của trợ lý ảo:
+ Lo ngại về quyền riêng tư + Độ chính xác + Khả năng bảo mật 3. Mục đích
- Tạo ra trợ lý ảo có thể nhận yêu cầu bằng giọng nói hoặc văn bản
- Trợ lý ảo có thể nhận dạng giọng nói và xử lý ngôn ngữ
- Trợ lý ảo có thể phản hồi người dùng bằng cách trả về kết quả người dùng yêu cầu
4. Phương pháp tiếp cận/ Các nghiên cứu tương đương
- Cùng với sự phát triển của Trí tuệ nhân tạo (AI) cũng như các mô hình
học máy (ML), trợ lý ảo ngày càng có nhiều phương thức tương tác với
người dùng. Các phương thức dần trở nên linh hoạt, gần gũi như những
cuộc đối thoại hàng ngày. - Văn bản:
Phương thức tương tác đầu tiên được sử dụng cho các trợ lý ảo là văn bản.
Hầu như bất kỳ 1 trợ lý ảo nào hiện nay cũng hỗ trợ tương tác bằng văn
bản. Người dùng chỉ cần đưa ra yêu cầu bằng cách gửi tin nhắn và trợ lý
ảo sẽ phản hồi thông tin ngay lập tức dựa trên yêu cầu đó. - Giọng nói:
Ngoài văn bản, để có thể dễ dàng giao tiếp với người dùng hơn, trợ lý ảo
ngày nay được phát triển tương tác với người dùng bằng giọng nói. Chúng
thường được gọi là các trợ lý giọng nói. Các trợ lý giọng nói hoạt động
theo nguyên tắc: Người dùng chỉ cần gọi chúng bằng các wake-up words
(câu mệnh lệnh khởi động), sau đó tiến hành giao tiếp với chúng như
những cuộc hội thoại thông thường. Trợ lý giọng nói không chỉ xử lý yêu
cầu trên thiết bị thông minh, mà còn có thể trở thành một người bạn dễ
dàng tâm sự cùng người dùng, trò chuyện và cung cấp thông tin bất cứ
khi nào người dùng muốn.
Tuy nhiên, các trợ lý giọng nói nổi tiếng hiện nay từ các gã khổng lồ công
nghệ như Apple Siri, Amazon Alexa, Google,… hầu hết chỉ đang hỗ trợ
ngôn ngữ bằng tiếng Anh. Điều này khiến cho một số người dùng Việt
Nam vẫn đang gặp khó khăn trong việc giao tiếp với các trợ lý giọng nói của mình.
- Các công trình công bố tương đương hiện đại: Alexa từ Amazon
Hệ thống có thể được mở rộng với một trong 15 000 kỹ năng. Kỹ năng là
phần mở rộng đặc biệt cung cấp nhiều chức năng hơn. Ví dụ, có nhiều
dịch giả của các ngôn ngữ phổ biến nhất, trợ lý cho các chương trình
truyền hình, nhưng cũng có kỹ năng tin tức và thời tiết. Kỹ năng đọc sách
âm thanh từ Amazon Kindle cũng rất phổ biến. Alexa cũng cho phép cộng
tác tối ưu với tất cả các thiết bị tương thích cũng như nhận dạng giọng
nói tự động. Vì vậy, bạn cũng có thể nhận được các đề xuất cá nhân từ Alexa. Siri của Apple
Siri cũng có tài năng của mình , đặc biệt là khi nói đến kết nối mạng và
cộng tác giữa nhiều thiết bị của Apple.
Tính năng nhận dạng giọng nói hoạt động với độ chính xác như nhau trên
các tiện ích cũ hơn vẫn được phép nhận các bản cập nhật và trên các tiện
ích hoàn toàn mới. Trợ lý cá nhân thậm chí còn được tích hợp vào điều
khiển từ xa của Apple TV và cung cấp nhiều tùy chọn. Lợi thế lớn của
Siri là số lượng ngôn ngữ được hỗ trợ. Apple cung cấp 21 ngôn ngữ cho
36 quốc gia khác nhau. Siri cho phép nhận dạng giọng nói rất tốt và cũng
có thể nhận dạng giọng nói của từng người nói. Thật không may, tùy chọn
này chưa khả dụng cho HomePod.
Cortana của Microsoft
Cortana của Microsoft có sẵn trên mọi nền tảng và có thể được sử dụng
trong MacOS và iOS, cũng như trên Android, Windows 10 và thậm chí cả Xbox One.
Các cuộc họp, lời nhắc và ghi chú quan trọng đều có sẵn trên tất cả các
thiết bị. Do được tích hợp với Windows 10 , Cortana được sử dụng rộng
rãi nhất trên máy tính để bàn và máy tính xách tay, đồng thời hỗ trợ tốt
cho Office hoặc Outlook. Trợ lý cá nhân của Microsoft lưu trữ tất cả thông
tin cá nhân trực tiếp trên thiết bị và thậm chí cho phép người dùng xem
dữ liệu được lưu trữ.
5. Mô hình đề xuất/ Thuật toán/ Giải thuật đề xuất
5.1. Nhận diện giọng nói (ASR)
- Bước đầu tiên trong ASR là chuyển đổi waveform đầu vào thành 1 chuỗi các
vector đặc trưng, mỗi vector biểu diễn thông tin trong 1 khoảng thời gian
của tín hiệu. Cùng xem cách để chuyển 1 file âm thanh thô thành chuỗi các vector log mel spectrum.
5.1.1. Sampling and Quantization
- 1 tín hiệu được lấy mẫu bằng cách đo biên độ tại 1 thời điểm riêng biệt, tần
số lấy mẫu (sampling rate) là số lượng mẫu được lấy trong 1s. Để đo chính
xác, ta ít nhất phải có 2 mẫu trong cùng 1 chu kì: 1 mẫu để đo phần dương
của tín hiệu và 1 mẫu để đo phần âm của tín hiệu. Càng nhiều mẫu sẽ càng
tăng độ chính xác, nhưng ít hơn 2 mẫu sẽ làm mất mát thông tin. Tần số lấy
mẫu phải >= 2 lần tần số lớn nhất xuất hiện trong tín hiệu, được gọi là tần
số Nyquist. Phần lớn tần số trong khoảng nghe được của con người là thấp
hơn 10000 Hz, vì thế tần số lấy mẫu 20000 Hz được coi là phù hợp. Nhưng
với tiếng của điện thoại được lọc qua 1 mạch chuyển kênh và chỉ có tần số
thấp hơn 4000Hz là được truyền đi qua điện thoại. Do đó, sampling rate
8000 Hz là phù hợp, với âm thanh microphone sẽ là 16000 Hz.
- Mặc dù sử dụng sử dụng sampling rate cao sẽ cho kết quả chính xác hơn với
ASR, ta không thể kết hợp các sampling rate khác nhau cho quá trình
training và testing hệ thống ASR. Nếu chúng ta testing trên tập dữ liệu điện
thoại như Switchboard (8 KHz sampling), chúng ta phải hạ lấy mẫu tập
training xuống 8KHz. Tương tự, nếu chúng ta training ở tập dữ liệu hỗn hợp
mà bao gồm cả tiếng telephone, ta phải hạ tần số lấy mẫu xuống 8KHz.
- Giá trị biên độ được lưu trữ dưới dạng integer 8 bit (trong khoảng giá trị từ
-128 đến 127) hoặc 16 bit (giá trị từ -32768 đến 32767). Quá trình biểu diễn
các số thực dưới dạng số nguyên được gọi là quantization (lượng tử hóa).
Với mỗi sample tại thời điểm n được quantized dưới dạng waveform x [n] . lOMoAR cPSD| 59671932 5.1.2. Windowing
- Sau khi có được biểu diễn lượng tử của waveform, sau đó ta cần trích xuất các
đặc trưng từ 1 window của âm thanh. Âm thanh được trích xuất từ mỗi window
gọi là frame. Window bao gồm 3 tham số: window size hay là frame size, frame
stride hay là shift hoặc offset giữa các cửa sổ, và shape của cửa sổ.
- Để trích xuất tín hiệu, ta nhân giá trị của tín hiệu tại thời điểm n, x [n] bởi giá trị
của window tại thời điểm n, w [n] : y [n] = w [n] s [n]
Hình dạng của window là hình chữ nhật, tuy nhiên window sẽ cắt đứt tín
hiệu tại các điểm biên. Để tránh điều này, ta thường sử dụng Hamming
window, làm shrink giá trị của tín hiệu về 0 tại biên của window, tránh sự
không liên tục. Cùng xem phương trình:
5.1.3 Discrete Fourier Transform
- Bước tiếp theo là trích xuất các thông tin đặc trưng từ cửa sổ tín hiệu.Để
trích xuất thông tin tín hiệu từ 1 chuỗi rời rạc (hay nói cách khác là 1
mẫu tín hiệu) ta dùng discrete Fourier transform hay DFT.
- Đầu vào của DFT là 1 chuỗi x [n] ...x[m] và đầu ra, với mỗi N dải tần
số rời rạc, là 1 số phức X [k] biểu diễn độ biên độ và pha của thành
phần tần số ở trong tín hiệu ban đầu. Nếu chúng ta plot biên độ theo
miền tần số, ta có thể visualize spectrum. Ví dụ hình bên dưới biểu diễn
1 khoảng Hamming window 25ms và spectrum của nó sau khi được tính toán qua phép DFT.
Ở đây sẽ không đề cập sâu về DFT, ngoại trừ giải tích Fourier dựa vào
công thức Euler với j là 1 đơn vị ảo:
ejθ = cosθ + jsinθ
5.1.4 Mel Filter Bank và Log
Kết quả của phép FFT cho chúng ta biết về năng lượng tại mỗi dải tần số.
Tai người lại không cảm nhận như nhau tại mọi dải tần số, nhạy hơn ở lOMoAR cPSD| 59671932
tần số thấp và kém nhạy hơn ở tần số cao. Do đó người ta đã đề xuất ra
Mel Scale với mel là 1 đơn vị của cao độ. Phổ mel được tính toán theo công thức:
Cuối cùng, ta lấy log của mỗi giá trị mel spectrum. Con người ít nhạy hơn
với sự thay đổi biên độ tại biên độ cao hơn tại biên độ thấp.
5.2. Speech Recognition Architecture
- Kiến trúc cơ bản cho các tác vụ ASR là Encoder-Decoder (được áp dụng
với RNNs và Transformers), khá giống với kiến trúc của task Machine
Translation. Thông thường, từ log mel spectral feature, ánh xạ tới các chữ
cái, mặc dù cũng có thể ánh xạ tới morpheme như wordpiece hoặc BPE.
- Hình bên dưới thể hiện kiến trúc encoder-decoder, khá tương tự như
attention-based encoder decoder hay AED, hoặc listen attend spell (LAS).
Đầu vào của 1 chuỗi t vector đặc trưng F = …, , 1 vector mỗi 10ms
frame. Đầu ra có thể là chữ cái hoặc word-piece. Khi đó đầu ra chuỗi Y =
(⟨EOS⟩, ,….., ⟨EOS⟩), với kí hiệu bắt đầu và kết thúc của câu là và , và mỗi là 1 kí tự.
- Bởi vì độ dài câu là khác nhau, nên kiến trúc encoder-decoder cho
tiếngnói phải có 1 bước nén các thông tin từ khối encoder trước khi cho
vào khối decoder. Mục tiêu của việc subsampling là sinh ra 1 chuỗi ngắn
hơn X = …., sẽ là đầu vào cho khối decoder. Thuật toán đơn giản nhất
gọi là low frame rate: với mỗi thời gian i, ta concatenate vector đặc trưng
với 2 vector trước và tạo thành 1 vector mới dài hơn 3 lần. Sau
đó ta xóa đi và . Thay vì được 1 vector đặc trưng 40 chiều mỗi 10ms, ta
thu được 1 vector 120 chiều mỗi 30ms, với độ dài chuỗi ngắn hơn n = lOMoAR cPSD| 59671932
- Sau bước nén này, kiến trúc encoder-decoder cho giọng nói tương tự như
kiến trúc cho Machine Translation (dịch máy), với sự kết hợp của mạng
RNN hay Transformer. p(,…,) = ( ∣,…,, X)
Ta có thể sinh ra mỗi chữ cái cho đầu ra nhờ vào thuật toán greedy decoding:
- Hoặc là có thể sử dụng beam search, đây là thuật toán thường xuyên
được sử dụng cho các bài toán language model. Beam search khởi đầu
với 1 chuỗi rỗng. Tại mỗi bước, nó thực hiện tìm kiếm toàn bộ trên không
gian của bước đó và lấy ra k kết quả có score cao nhất. Với λ là trọng số
của language model, kết hợp với chuẩn hóa độ dài câu và xác suất của
language model ta có phương trình tính score: Learning
- Encoder-decoder cho tiếng nói được huấn luyện với hàm loss cross-
entropy được dùng cho các bài toán về language model. Tại timestep
i của pha decoding, hàm loss chính là logarith xác suất của kí tự đúng :
Hàm loss cho toàn bộ câu là tổng của các loss:
Chúng ta thường sử dụng teacher forcing sẽ giúp model hội tụ nhanh hơn. lOMoAR cPSD| 59671932
5.3. Khả năng xử lý ngôn ngữ tự nhiên
- Mô hình CNN được cải tiến bằng cách kết hợp các đặc trưng từ xử lý ngôn
ngữ tự nhiên với các đặc trưng của người dùng (F1, F2, F3). Trong đó F1
là giá trị nhị phân là 0 hoặc 1 tương ứng với giới tính của người dùng (nữ
hay nam), F2 là số lượng bạn bè và F3 là độ tuổi. Các đặc điểm số đó được
nối thành các vectơ đặc trưng trong lớp được kết nối đầy đủ vì thực tế cho
thấy giới tính, độ tuổi và số lượng bạn bè ảnh hưởng đến sở thích của họ.
Dưới đây là các thông số như sau:
• Đặt giá trị tham số: Dựa vào giá trị đầu ra mà chúng ta điều chỉnh giá
trị của các tham số như số bộ lọc và số neural và đầu ra trên mỗi lớp.
• Đánh giá: Kết quả của các mô hình được ước tính bằng chỉ số F1 và độ chính xác của nó.
- Trong mô hình này, chúng tôi đã sử dụng kích hoạt dưới dạng ReLU
(chỉnh tuyến tính) vì tốc độ và hiệu quả được chứng minh bằng các nghiên
cứu của Severyn và Moschitti
6. Thực nghiệm
- AI đã có thể nhận diện giọng nói
- AI đã có thể xử lý ngôn ngữ và xử lý yêu cầu từ người dùng
- AI đã có thể tìm kiếm web và youtube
- AI đã có thể xác định được thời gian và mở tệp trong máy 7. Kết luận
- Trong dự án này, nhóm 17 đã trình bày 1 phương pháp nhằm cải thiện
tiện nghi và trải nghiệm người dùng bằng trợ lý ảo dành cho máy tính.
- Kết quả thực nghiệm đã chứng minh rằng mô hình được đề xuất có thể
đáp ứng mọi yêu cầu mà người dùng đưa ra với cấp độ chính xác cao
- Tuy nhiên, mô hình đề xuất vẫn cần được cải tiến thêm để có thể phục vụ
người dùng với những yêu cầu đa dạng và phức tạp hơn