Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
2,64 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN HỮU CƯỜNG NGHIÊN CỨU HỆ THỐNG TRỢ LÝ THÔNG MINH ẢO LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2017 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN HỮU CƯỜNG NGHIÊN CỨU HỆ THỐNG TRỢ LÝ THÔNG MINH ẢO Chuyên ngành: Hệ thống thông tin Mã số: 60480104 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Người hướng dẫn khoa học: TS Nguyễn Văn Vinh Hà Nội - 2017 LỜI CAM ĐOAN Tơi Nguyễn Hữu Cường, học viên khóa K21, ngành Công nghệ thông tin, chuyên ngành Hệ Thống Thông Tin Tôi xin cam đoan luận văn “Nghiên cứu hệ thống trợ lý thông minh ảo” nghiên cứu, tìm hiểu phát triển dưới hướng dẫn TS Nguyễn Văn Vinh Luận văn chép từ tài liệu, cơng trình nghiên cứu người khác mà không ghi rõ tài liệu tham khảo Tôi xin chịu trách nhiệm lời cam đoan Hà Nội, ngày 05 tháng 04 năm 2017 LỜI CẢM ƠN Đầu tiên xin gửi lời cảm ơn tới thầy cô Trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội tận tình giảng dạy truyền đạt kiến thức suốt khóa học cao học vừa qua Tôi xin được gửi lời cảm ơn đến thầy cô Bộ môn Hệ thống thông tin như khoa công nghệ thông tin mang lại cho kiến thức vô q giá bổ ích q trình học tập trường Đặc biệt xin chân thành cảm ơn thầy giáo, TS Nguyễn Văn Vinh, người định hướng, giúp đỡ, trực tiếp hướng dẫn tận tình bảo tơi suốt q trình nghiên cứu, xây dựng hồn thiện luận văn Tơi xin được cảm ơn tới gia đình, người thân, đồng nghiệp bạn bè thường xuyên quan tâm, động viên, chia sẻ kinh nghiệm, cung cấp tài liệu hữu ích thời gian học tập , nghiên cứu như suốt trình thực hiện luận văn tốt nghiệp Hà Nội, ngày 05 tháng 10 năm 2017 MỤC LỤC MỤC LỤC iii DANH MỤC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT i DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ ii DANH MỤC BẢNG BIỂU .iii MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG TRỢ LÝ ẢO 1.1 Giới thiệu hệ thống trợ lý ảo 1.2 Cấu trúc hệ thống trợ lý ảo 1.3 Nhận dạng giọng nói tự động (ASR - Automatic Speech Recognition) 1.4 Xử lý hình ảnh IMM (Image Matching) 1.5 Quản lý câu hỏi trả lời QA (Question-Answering) 1.5.1 Cấu tạo quản lý câu hỏi 1.5.2 Xử lý ngôn ngữ tự nhiên Quản lý câu hỏi trả lời 1.5.3 Các mức NLP 1.6 Ứng dụng NLP chatbot 1.6.1 Cấu tạo hệ thống chatbot 1.6.2 Cấu trúc hộp thoại chatbot 1.6.3 Xử lý liệu chatbot CHƯƠNG 2: MỘT SỐ KĨ THUẬT SỬ DỤNG TRONG TRỢ LÝ ẢO 11 2.1 Mạng học sâu DNNs 11 2.1.1 Khái nghiệm mạng học sâu 11 2.1.2 Xây dựng mô hình 11 2.1.3 Vấn đề giải pháp khắc phục 13 2.2 Quản lý hội thoại 15 2.2.1 Mơ hình quản lý dựa khung (Frame based dialog Agents) 15 2.2.2 VoiceXML 16 2.3 Mơ hình sinh hội thoại 18 2.3.1 Ý nghĩa mơ hình sinh hội thoại 18 2.3.2 Đặc điểm mơ hình hội thoại 18 2.4 Nhận xét 19 CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 20 3.1 Phát triển toán 20 3.2 Chương trình thực nghiệm 20 3.2.1 Cấu trúc Api.ai 21 3.2.2 Thành phần API.AI 21 3.2.3 Mơ hình xây dựng 23 3.2.4 Giao diện ứng dụng 24 3.3 Dữ liệu thực nghiệm 26 3.4 Mơ hình hội thoại 29 3.5 Dữ liệu phân tích 32 3.6 Dữ liệu câu hỏi 33 3.7 Nhận xét kết 36 KẾT LUẬN 38 TÀI LIỆU THAM KHẢO 39 PHỤ LỤC 40 DANH MỤC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT Từ viết tắt AI ML RNN LSTM NLP SDK Từ chuẩn Diễn giải Artificial Intelligence Trí tuệ nhân tạo Máy học, máy móc có khả năn g học tập Machine Learning Recurrent Neural Network Mạng nơ ron tái phát Mạng cải tiến để giải vấn đề phụ thuộc dài Long short-term memory Natural Languague Processing Support Development Kit Xử lý ngôn ngữ tự nhiên Bộ công cụ hỗ trợ phát triển QA Application Programming Interface Question Answering IPA Intelligent Personal Assistants Ứng dụng Hỗ trợ Cá nhân Thông minh ASR QC HMM Automatic Speech Recognition Query Classifier Hidden Markov Xử lý giọng nói Phân loại truy vấn Mơ hình Hidden Markov GMM IMM SURF QA NLU Gaussian Image Matching Speeded up robust features Question-Answering Natural language understanding mơ hình hỗ hợp Gaussian Xử lý hình ảnh Nhận dạng hình ảnh Dịch vụ câu hỏi trả lời Hiểu ngôn ngữ tự nhiên CRF Conditional Random Fields Mơ hình CRF FSA Finite State Automata Mơ hình dựa máy trạng thái hữu hạn FSM Finite State Machine FST Finite State Transducer API A-FSM WFST DNN Giao diện lập trình ứng dụng Các cặp câu hỏi đáp Acceptor Finite State Machine Weighted Finite State Transducer Máy trạng thái hữu hạn Máy chuyển đổi trạng thái hữu hạn Máy trạng thái hữu hạn chấp nhận Máy chuyển đổi trạng thái hữu hạn có trọng số Deep Neural Networks Mơ hình học máy i DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ Hình 1.1: Sơ đồ hệ thống trợ lý ảo Hình 1.2: Sơ đồ xử lý âm Hình 1.3: Sơ đồ xử lý hình ảnh Hình 1.4: Quản lý câu hỏi trả lời Hình 1.5: Mơ hình hệ thống chatbot Hình 1.6: Cấu trúc hộp thoại chatbot Hình 2.7: Kiến trúc seq2seq 10 Hình 2.1: Biểu diễn mơ hình mạng 11 Hình 2.2: Mạng nơ ron tái phát RNN 12 Hình 2.4: Kiến trúc tự động trạng thái hữu hạn cho hộp thoại dựa khung 15 Hình 2.5: Ví dụ mơ hình dialogue dựa Frame 15 Hình 2.6: Ví dụ mơ hình VoiceXML 17 Hình 3.1: Sơ đồ phát triển toán 20 Hình 3.2: Sơ đồ hoạt động Api.ai 21 Hình 3.3: Giao diện Api.ai intents 22 Hình 3.4: Giao diện Api.ai contexts 23 Hình 3.5: Giao diện Api.ai webhook 23 Hình 3.6: Mơ hình xây dựng giao diện 24 Hình 3.7: Giao diện Chatbot 25 Hình 3.8: Mơ hình hội thoại 29 Hình 3.9: Dữ liệu đồ uống 30 Hình 3.10: Dữ liệu thức ăn 30 Hình 3.11: Dữ liệu địa điểm 31 Hình 3.12: Dữ liệu thời tiết 31 Hình 3.13: Dữ liệu truy vấn phiên làm việc 32 Hình 3.14: Dữ liệu phân tích tương tác 32 Hình 3.15: Dữ liệu intents 32 ii DANH MỤC BẢNG BIỂU Bảng 3.1: Kết thử nghiệm 33 Bảng 3.2: Dữ liệu câu hỏi 33 iii MỞ ĐẦU Ngày nay, trí tuệ nhân tạo ngày phát triển mạnh mẽ Các hãng lớn Apple, Microsoft, Google đưa công nghệ tương tác trực tiếp với người dùng Trí tuệ nhân tạo ngày nâng cấp hoàn thiện giúp người dùng dễ dàng tương tác, dễ sử dụng giảm q trình thực Trí tuệ nhân tạo lĩnh vực mẻ quan tâm lớn từ hãng công nghệ hàng đầu Với công nghệ ngày áp dụng đời sống giúp người làm việc hiệu tiết kiệm thời gian sức lực, trí tuệ nhân tạo hệ thống xây dựng để phục vụ cho điều Hệ thống trợ lý ảo hệ thống giúp người giao tiếp với máy thực yêu cầu ý muốn người dùng Hiện giới hệ thống trợ lý ảo nghiên cứu phát triển mạnh mẽ hãng công nghệ hàng đầu giới Với mong muốn hiểu sâu trí tuệ nhân tạo, em định chọn đề tài “Nghiên cứu hệ thống trợ lý thông minh ảo” làm đề tài luận văn thạc sĩ Qua đề tài em muốn nâng cao hiểu biết trí tuệ nhân tạo đồng thời nghiên cứu để áp dụng thực tiễn Việt Nam Nội dung luận văn chia làm phần sau: Chương 1: Giới thiệu tổng quan hệ thống trợ lý ảo, cấu trúc hệ thống trợ lý ảo, trình bày xử lý ngơn ngữ tự nhiên NLP ứng dụng NLP chatbot Chương 2: Nghiên cứu số kĩ thuật sử dụng chatbot, tìm hiểu quản lý hội thoại, mơ hình sinh hội thoại Chương 3: Trình bày trình thực nghiệm đánh giá, kết thực nghiệm xây dựng chatbot CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG TRỢ LÝ ẢO 1.1 Giới thiệu hệ thống trợ lý ảo Siri Apple [1], Google Now Google [2] Cortana Microsoft [3] đại diện cho lớp dịch vụ web gọi Ứng dụng Hỗ trợ Cá nhân Thông minh (Intelligent Personal Assistants - IPA) IPA ứng dụng sử dụng yếu tố đầu vào tiếng nói, hình ảnh thơng tin theo ngữ cảnh người dùng để hỗ trợ cách trả lời câu hỏi ngôn ngữ tự nhiên, đưa khuyến nghị hành động Các IPA lên dịch vụ Internet phát triển nhanh gần họ triển khai tảng tiếng iOS, Android Windows Phone, làm cho chúng phổ biến thiết bị di động toàn giới Sử dụng IPAs gia tăng nhanh chóng với sản phẩm cơng nghệ đeo đồng hồ thơng minh kính thơng minh Sự tăng trưởng thị phần này, với việc thiết kế sản phẩm đeo phụ thuộc nhiều vào đầu vào hình ảnh giọng nói, cho thấy nhu cầu sử dụng dịch vụ IPA tăng lên nhanh chóng IPA khác với nhiều khối lượng cơng việc dịch vụ web có máy tính có quy mơ lớn (WSCs) Ngược lại với truy vấn dịch vụ trung tâm duyệt web, luồng truy vấn IPA thông qua thành phần phần mềm thúc đẩy tiến gần nhận dạng giọng nói, xử lý ngơn ngữ tự nhiên tầm nhìn máy tính để cung cấp cho người dùng câu hỏi dựa câu hỏi hệ thống trả lời Do cường độ tính tốn thành phần mơ hình liệu dựa mơ hình mà họ sử dụng, nhà cung cấp dịch vụ u cầu tính tốn tảng trung tâm liệu lớn thay cho việc tính toán thiết bị di động Cách tiếp cận giảm tải sử dụng Siri Apple lẫn Google Now Google họ gửi ghi nén lệnh truy vấn giọng nói tới trung tâm liệu để nhận dạng tiếng nói khai thác ngữ nghĩa Sự tương tác thiết bị thơng minh với người khơng nằm việc gõ văn mà hình ảnh lẫn giọng nói, để đáp ứng nhu cầu ngày cao trải nghiệm người dùng, hãng công nghệ thông tin lớn ngày đầu tư mạnh vào hệ thống trợ lý thơng minh ảo Hình 3.9: Dữ liệu đồ uống Hình 3.10: Dữ liệu thức ăn 30 Hình 3.11: Dữ liệu địa điểm Hình 3.12: Dữ liệu thời tiết 31 3.5 Dữ liệu phân tích Dựa liệu lấy 30 ngày gần Biểu đồ Sessions cho thấy tương tác người dùng với Abot Hình 3.13: Dữ liệu truy vấn phiên làm việc Hình 3.14: Dữ liệu phân tích tương tác Dựa liệu lấy 30 ngày gần Biểu đồ Intents cho thấy liệu Abot sử dụng frame Greeting, Foodyescompose… để lấy giá trị từ có câu trả lời phù hợp đáp ứng người dùng Hình 3.15: Dữ liệu intents 32 Tiến hành thử nghiệm chat ngẫu nghiên với ABot lần 50 câu lấy kết Bảng kết đánh giá: Bảng 3.1: Kết thử nghiệm Thử nghiệm Số câu Số câu sai Độ xác 28/50 22/50 56% 31/50 19/50 62% 24/50 26/50 48% 39/50 11/50 78% 41/50 9/50 82% Đánh giá kết thử nghiệm Dựa bảng kết thấy độ xác tăng dần Có thể giải thích vì: Lần 1: chat với bot có câu bot chưa huấn luyện nên dẫn tới khơng hiểu trả lời sai Vì độ xác thấp Lần 2: câu trả lời huấn luyện lại cho bot hiểu, nên lần sau gặp câu trả lời ý người dùng Vì độ xác tăng thêm Lần 3: chat nội dung khác nhau, huấn luyện chưa có nội dung nên trả lời sai độ xác thấp Lần 4, 5: huấn luyện tiếp, độ xác tăng người dùng nói nội dung bot huấn luyện 3.6 Dữ liệu câu hỏi Trong trình thử nghiệm liệu câu hỏi lần thử nghiệm 50 câu Và bảng lần thứ thử nghiệm ABot với độ xác 78% có số câu trả lời 39/50, số câu trả lời sai 11/50 Bảng 3.2: Dữ liệu câu hỏi STT Người dùng ABot Đánh giá Chào bạn, tơi giúp Xin chào cho bạn Ok! Bạn có muốn thêm Tơi muốn mua bia? khơng? Có Bạn muốn gọi thêm Ok Bạn vừa đặt suất Tơi muốn mua suất Bún Bạn có muốn thêm bún không? Cửa hàng chuyển tới cho Không cảm ơn bạn Bạn tốn nhận hang Cảm ơn ABot chưa rõ Bạn Dữ liệu chưa Tối ăn gì? nói lại không? huấn luyện 33 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Bún tới phở 10 Lý Quốc Sư Thời tiết hôm Thời tiết chắn tuyệt vời Thời tiết Hà Nội Cũng không lạnh Phở đâu ngon Cũng khơng lạnh Trả lời sai Phở tới phở 10 Lý Ăn phở đâu Quốc Sư Câu hỏi chưa Ok Bạn muốn thêm Tơi muốn chơi huấn luyện nên trả không? lời sai ABot chưa rõ Bạn Dữ liệu chưa Nhiệt độ Hà nội nói lại khơng? huấn luyện Tơi muốn đồ uống Bạn muốn gọi thêm gì? Nội dung khơng rõ ABot chưa rõ Bạn bia ràng nên Abot nói lại khơng? khơng hiểu Nội dung rõ ràng OK! Bạn có muốn thêm Tơi muốn cốc bia nên ABot trả lời khơng? Dữ liệu chưa Đi ăn đâu Cũng không lạnh huấn luyện OK Bạn vừa đặt suất thịt Cho suất thịt bò xào Bạn có muốn thêm khơng? Tơi muốn mua đồ cho OK Bạn có muốn thêm sinh nhật khơng? Bánh ga tơ Bạn muốn gọi thêm gì? Cửa hàng chuyển tới cho Tơi muốn ăn bún bạn Bạn tốn nhận hang Cảm ơn Thời tiết Cũng khơng lạnh OK! Bạn có muốn thêm Tơi muốn ăn bít tết khơng? Đã đặt Tơi gợi ý thêm cho bạn số đồ Không ăn cho dịp khác Bạn cần đồ ăn cho dịp nào? Đám cưới Vâng Tôi nghĩ bạn cần Bún đâu ngon? 34 nước 26 Không 27 Cho cốc bia 28 Sinh nhật 29 Bánh ga tô mua đâu 30 Mua bánh ga tô đâu 31 32 33 34 35 36 37 38 39 40 41 42 Do không kịch ABot chưa rõ Bạn bản, ABot khơng nói lại khơng? hiểu liệu OK Bạn có muốn thêm khơng Vâng bạn cần bánh gato Trả lời sai chưa Cũng không lạnh huấn luyện tình Trả lời khơng OK Bạn muốn thêm xác khơng? Tối ăn bún đâu Bún tới phở 10 Lý ngon? quốc sư Đặt đồ ăn Bạn muốn gọi thêm Nội dung Abot chưa rõ Bạn Thịt xào khơng rõ ràng nên nói lại khơng? ABot khơng hiểu Đã xong Bạn đặt them suất bún suất thịt bò suất Bún Thịt bò Bạn có muốn thêm khơng? Cửa hàng chuyển tới cho Khơng bạn Bạn tốn nhận hang Cảm ơn OK Bạn muốn thêm Cho tơi cà phê đen không? OK Bạn vừa đặt suất thịt Suất thịt bò xào Bạn có muốn thêm khơng? OK Bạn muốn thêm Đặt bánh ga tơ khơng? OK Bạn vừa đặt cốc cốc kem kem Bạn có muốn them khơng? Nước trái Bạn muốn gọi thêm gì? Bia với pepsi Bia ngon pepsi ngon hơn? ABot nghĩ Thịt bò với bún Bún ngon thịt bò 35 ngon hơn? 43 Bia với pepsi 44 Bia với nước lọc 45 thịt bò xào 46 Bia 47 Bia với thịt bò xào 48 bia 49 Hai bát phở 50 Cảm ơn bot Bạn có muốn thử khơng? Bia ngon pepsi Bạn muốn đặt gì? Bia ngon nước Bạn muốn đặt gì? Abot chưa rõ Bạn nói lại khơng? Bạn muốn gọi thêm gì? OK! Bạn có muốn thêm khơng? OK bia đặt Bạn muốn khơng? Cửa hàng chuyển tới cho bạn Bạn tốn nhận hang Cảm ơn Cảm ơn 3.7 Nhận xét kết Sau thực thử nghiệm Abot mobile kết thu đặt câu hỏi tỷ lệ đáp án chấp nhận thấp, nghiên giải số vấn đề: - Vấn đề phát sinh câu hỏi nằm vùng tập liệu huấn luyện, phần câu hỏi đặt hoàn toàn mang tính chất khách quan Abot tự đưa số câu trả lời khách quan có độ phù hợp với câu hỏi người dùng - Xây dựng mơ hình hiểu ngơn ngữ tiếng việt API.AI Google không hỗ trợ tiếng việt trả lời câu trả lời tiếng việt - Với câu hỏi dài phức tạp, tùy theo tham số độ dài huấn luyện tùy theo tham số truyền vào Abot có khả đưa câu trả lời phù hợp - Độ tự động trả lời Abot có thời gian huấn luyện chưa lâu nên việc trả lời khía cạnh nên đưa câu trả lời khách quan Với vấn đề kết đạt Abot chưa đạt tới mức áp dụng rộng rãi cần thêm thời gian để phát triển thêm ý tưởng tập liệu Ý tưởng phát triển cho Abot: - Nâng cấp giao diện để sử dụng Abot cửa hàng, nhà hàng thực phẩm có sử dụng mạng để quảng cáo thức ăn - Bổ xung thêm liệu huấn luyện nhiều mảng địa chỉ, thời tiết, thời gian, thực đơn, toán… - Xây dựng framwork riêng cho dự án không phụ thuộc vào google - Nâng cấp huấn luyện để Abot trợ lý ảo thực Siri 36 Kết thu sau trình nghiên cứu hồn thành luận văn - Tìm hiểu cấu trúc hệ thống trợ lý ảo - Hiểu mô đun cấu trúc cấu tạo, vận hành thuật tốn ứng dụng để dựng riêng framwork - Hiểu cách huấn luyện chatbot để ứng dụng nhiều lĩnh vực công việc đời sống 37 KẾT LUẬN Hệ thống trợ lý ảo lĩnh vực mà công ty công nghệ tập trung đầu tư nghiên cứu mạnh mẽ ngày phát triển Ứng dụng hệ thống trợ lý ảo dần đưa vào đời sống, tích hợp từ hệ thống chatbot tích hợp vào hệ thống phức tạp y tế, dạy học Qua luận văn, em đạt kết định Đầu tiên tìm hiểu mơ hình hệ thống trợ lý ảo, cấu trúc hệ thống Từ mơ hình hệ thống trợ lý ảo giúp em hiểu cấu tạo, thuật toán ứng dụng mơ hình Từ giúp em sâu nghiên cứu mơ đun hệ thống ứng dụng thực tiễn xây dựng hệ thống trợ lý ảo phù hợp với mục đích Thứ hai từ việc huấn luyện chatbot giúp em có kiến thức, độ hiểu biết sâu mạng học sâu, cách xây dựng mơ hình hộp thoại, xây dựng liệu huấn luyện Từ đúc kết kiến thức để ứng dựng thực tế công việc mục đích huấn luyện hệ thống trợ lý ảo Thứ ba từ việc xây dựng mơ hình chatbot, em xây dựng nhiều mơ hình chatbot với nhiều mục đích khác ví dụ chatbot cho hệ thống thực phẩm, cho y tế hay dạy học…Tuỳ theo u cầu mục đích thực tiễn xây dựng hệ thống trợ lý ảo đáp ứng yêu cầu người dùng Qua kết đạt được ban đầu, em nhận thấy nhiều việc phải làm, cần phải tối ưu Nhưng cách tiếp cận ban đầu cho kết tích cực đắn, giải được vấn đề xây dựng tính tốn hệ thống đối thoại Định hướng nghiên cứu tiếp theo, em tiếp tục làm mượt liệu, để tạo mơ hình có khả năn g trả lời sát với ngữ cảnh, đạt chất lượng cao hơn , giảm khả năng lảng tránh đưa tính cá nhân vào đoạn hội thoại Từ áp dụng cho nhiều hệ thống trợ lý ảo với yêu cầu mục đích xây dựng khác 38 TÀI LIỆU THAM KHẢO [1] Apple’s Siri https://www.apple.com/ios/siri/ [2] Google’s Google Now http://www.google.com/landing/now/ [3] Microsoft’s Cortana http://www.windowsphone.com/enus/features [4] https://web.stanford.edu/~jurafsky/slp3/ [5] Google’s https://api.ai/docs/getting-started/basics D.Liddy “Natural Language Processing”,papers 1-15, Syracuse University 2001 [7] Johann Hauswald, Michael A Laurenzano, Yunqi Zhang, Cheng Li, Austin Rovinski, Arjun Khurana, Ronald G Dreslinski, Trevor Mudge, Vinicius Petrucci1, Lingjia Tang, Jason Mars “Sirius: An Open End-to-End Voice and Vision Personal Assistant and Its Implications for Future Warehouse Scale Computers.”,papers 1-16 [8] Daniel Jurafsky & James H Martin.papers “Speech and Language Processing” chapter 29, papers 1-25, August 7, 2017 [9] Oriol Vinyals, Quoc V Le “A Neural Conversational Model”, papers 1-8, Jul 22, 2015 [10] Ilya Sutskever, Oriol Vinyals, Quoc V Le, Montreal, Canada, “Sequence to Sequence Learning with Neural Networks”,paper 1-9, December 08 - 13, 2014 [6] Elizabeth 39 PHỤ LỤC M ã nguồn ứng dụng Kết nối API.AI #pragma mark - APIAI -(void)sendMessageText:(NSString *)text { if ([Util boolForKey:IS_AI]) { [MBProgressHUD showHUDAddedTo:self.view animated:YES]; ApiAI *apiai = [ApiAI sharedApiAI]; AITextRequest *request = [apiai textRequest]; request.query = @[text?:@""]; weak typeof(self) selfWeak = self; [request setMappedCompletionBlockSuccess:^(AIRequest *request, AIResponse *response) { strong typeof(selfWeak) selfStrong = selfWeak; [MBProgressHUD hideHUDForView:selfStrong.view animated:YES]; NSString *str = response.result.fulfillment.speech; NSLog(@"%@",str); [self addMessageForAPIAIwithText:str]; [self.messageTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:self.demoData.messages.count-1 inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; } failure:^(AIRequest *request, NSError *error) { strong typeof(selfWeak) selfStrong = selfWeak; UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Alert" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; [MBProgressHUD hideHUDForView:selfStrong.view animated:YES]; [self.messageTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:self.demoData.messages.count-1 inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; }]; [apiai enqueue:request]; }else{ } } 40 Thêm liệu Api.ai vào giao diện -(void)addMessageForAPIAIwithText:(NSString *)text{ if (text.length>0) { [self textToSpeed:text]; ZHCMessage *message = [[ZHCMessage alloc] initWithSenderId:kIDAbot senderDisplayName:kChatABot date:[NSDate date] text:text]; [self.demoData.messages addObject:message]; [self finishSendingMessageAnimated:NO]; }else{ text = @"ABot chưa rõ Bạn nói lại không?"; [self textToSpeed:text]; ZHCMessage *message = [[ZHCMessage alloc] initWithSenderId:kIDAbot senderDisplayName:kChatABot date:[NSDate date] text:text]; [self.demoData.messages addObject:message]; [self finishSendingMessageAnimated:NO]; } } Thêm liệu người dùng vào giao diện -(void)addMessageForPerson:(NSString *)text senderId:(NSString *)senderId senderDisplayName:(NSString *)senderDisplayName date:(NSDate *)date{ ZHCMessage *message = [[ZHCMessage alloc] initWithSenderId:senderId senderDisplayName:senderDisplayName date:date text:text]; [self.demoData.messages addObject:message]; [self finishSendingMessageAnimated:YES]; [self sendMessageText:text]; } -(void)addMVoiceForPerson:(NSString*)text{ if (text.length>0) { 41 ZHCMessage *message = [[ZHCMessage alloc] initWithSenderId:kIDUser senderDisplayName:kChatUser date:[NSDate date] text:text]; [self.demoData.messages addObject:message]; [self finishSendingMessageAnimated:YES]; [self sendMessageText:text]; } } Chuyển giọng nói sang vă n bả n Hàm khởi tạo chu yển âm sang văn /*! * @brief Starts listening and recognizing user input through the * phone's microphone */ - (void)startListening { // Initialize the AVAudioEngine audioEngine = [[AVAudioEngine alloc] init]; // Make sure there's not a recognition task already running if (recognitionTask) { [recognitionTask cancel]; recognitionTask = nil; } // Starts an AVAudio Session NSError *error; AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryRecord error:&error]; [audioSession setActive:YES withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error]; // Starts a recognition process, in the block it logs the input or stops the audio // process if there's an error recognitionRequest = [[SFSpeechAudioBufferRecognitionRequest alloc] init]; AVAudioInputNode *inputNode = audioEngine.inputNode; recognitionRequest.shouldReportPartialResults = YES; recognitionTask = [speechRecognizer recognitionTaskWithRequest:recognitionRequest 42 resultHandler:^(SFSpeechRecognitionResult * _Nullable result, NSError * _Nullable error) { BOOL isFinal = NO; if (result) { // Whatever you say in the microphone after pressing the button should be being logged // in the console NSLog(@"RESULT:%@",result.bestTranscription.formattedString); [MBProgressHUD hideHUDForView:self.view animated:YES]; lastString = result.bestTranscription.formattedString; [ZHCMessagesAudioProgressHUD zhc_changeSubTitle:lastString]; isFinal = !result.isFinal; } if (error) { NSLog(@"error:%@",result.bestTranscription.formattedString); [audioEngine stop]; [recognitionRequest endAudio]; recognitionRequest = nil; recognitionTask = nil; } }]; // Sets the recording format AVAudioFormat *recordingFormat = [inputNode outputFormatForBus:0]; [inputNode installTapOnBus:0 bufferSize:1024 format:recordingFormat block:^(AVAudioPCMBuffer * _Nonnull buffer, AVAudioTime * _Nonnull when) { [recognitionRequest appendAudioPCMBuffer:buffer]; }]; // Starts the audio engine, i.e it starts listening [audioEngine prepare]; [audioEngine startAndReturnError:&error]; } Hàm bắt tín hiệu người dùng nói -(void)microPhoneTapped:(id)sender { if (audioEngine.isRunning) { [audioEngine stop]; [recognitionRequest endAudio]; } else { [self startListening]; 43 } } #pragma mark - SFSpeechRecognizerDelegate Delegate Methods (void)speechRecognizer:(SFSpeechRecognizer *)speechRecognizer availabilityDidChange:(BOOL)available { NSLog(@"Availability:%d",available); } 44 ... minh ảo 1.2 Cấu trúc hệ thống trợ lý ảo Để hiểu hệ thống trợ lý ảo hoạt động nào, cần phải hiểu cấu trúc cấu tạo hệ thống trợ lý ảo Sơ đồ hệ thống trợ lý ảo: Hình 1.1: Sơ đồ hệ thống trợ lý ảo. .. HỌC CÔNG NGHỆ NGUYỄN HỮU CƯỜNG NGHIÊN CỨU HỆ THỐNG TRỢ LÝ THƠNG MINH ẢO Chun ngành: Hệ thống thơng tin Mã số: 60480104 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Người hướng dẫn khoa học: TS Nguyễn Văn. .. Hiện giới hệ thống trợ lý ảo nghiên cứu phát triển mạnh mẽ hãng công nghệ hàng đầu giới Với mong muốn hiểu sâu trí tuệ nhân tạo, em định chọn đề tài Nghiên cứu hệ thống trợ lý thông minh ảo làm