1. Trang chủ
  2. » Thể loại khác

Nghiên cứu hệ thống trợ lý thông minh ảo : Luận văn ThS. Máy tính: 604801

52 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

ĐẠ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 sự hướng dẫn của TS Nguyễn Văn Vinh Luận văn không phải sự chép từ tài li ệu, cơng trình nghiên cứu của người khác mà khơng ghi rõ tài liệu tham khảo Tôi xin chiụ trách nhiệm về 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 o ̛n tới thầy cô Trường Đại học Công nghệ, Đa ̣i học Quốc Gia Hà Nội tận tình giảng da ̣y truyề n đa ̣t kiế n thức ś t khóa ho c̣ cao ho ̣c v ừa qua Tôi cũng xin đu ̛ợc gửi lời cảm ơn đến thầ y cô B ộ môn Hệ thống thông tin cũng như khoa công nghệ thông tin mang la ̣i cho những kiế n thức vô quý giá bở ích q trình ho ̣c tập ta ̣i 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 chỉ bảo tơi ś t q trình nghiên cứu, xây dựng hồn thiện luận văn Tơi cũng xin được cảm ơn tới gia đình, những người thân, đồ ng nghiệp ba ̣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 ho ̣c tập, nghiên cứu cũng 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 về 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) .3 1.4 Xử lý hình ảnh IMM (Image Matching) .4 1.5 Quản lý câu hỏi trả lời QA (Question-Answering) .5 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 Từ chuẩn Diễn giải Artificial Intelligence Trí tuệ nhân ta ̣o Máy ho ̣c, máy móc có khả năng học tập Machine Learning Recurrent Neural Network Mạng nơ ron tái phát NLP Natural Languague Processing Mạng cải tiến để giải quyết vấn đề phụ thuộc dài Xử lý ngôn ngữ tự nhiên SDK Support Development Kit Bộ công cu ̣ hỗ trơ ̣ phát triể n API Application Programming Interface Giao diện lập trình ứng du ̣ng QA Question Answering IPA Intelligent Personal Assistants ASR Automatic Speech Recognition Các cặp câu hỏi đáp Ứng dụng Hỗ trợ Cá nhân Thông minh Xử lý giọng nói QC HMM GMM IMM SURF QA NLU CRF Query Classifier Hidden Markov Gaussian Image Matching Speeded up robust features Question-Answering Natural language understanding Conditional Random Fields Phân loại truy vấn Mơ hình Hidden Markov 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 Mơ hình CRF LSTM Long short-term memory A-FSM Acceptor Finite State Machine Mơ hình dựa máy trạng thái hữu hạn 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 WFST Weighted Finite State Transducer Máy chuyển đổi trạng thái hữu hạn có trọng số DNN Deep Neural Networks Mơ hình ho ̣c máy FSA Finite State Automata FSM Finite State Machine FST Finite State Transducer 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 .4 Hình 1.3: Sơ đồ xử lý hình ảnh Hình 1.4: Quản lý câu hỏi trả lời .6 Hình 1.5: Mơ hình hệ thống chatbot .8 Hình 1.6: Cấu trúc hộp thoại chatbot .8 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ụ về mơ hình dialogue dựa Frame 15 Hình 2.6: Ví dụ về mơ hình VoiceXML 17 Hình 3.1: Sơ đồ phát triển tố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 đều đư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ới mẻ sự quan tâm rất 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 thế 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 thế giới Với mong muốn hiểu sâu về trí tuệ nhân tạo, em quyết đị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 sự hiểu biết về 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 về hệ thống trợ lý ảo, cấu trúc hệ thống trợ lý ảo, trình bày về 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 về 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 mới 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 nhất gần họ triển khai nền tảng tiếng iOS, Android Windows Phone, làm cho chúng phổ biến thiết bị di động toàn thế giới Sử dụng IPAs gia tăng nhanh chóng với sản phẩm mới nhất 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 nền tảng trung tâm liệu lớn thay cho việc tính tố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 cịn 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 nhất 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 nhất 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ì thế độ xác thấp Lần 2: câu trả lời mớ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ì thế độ 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 thế độ xác cũng 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 dưới 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 śt Tơi muốn mua ś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ế 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 nhất 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? h́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 ś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 toá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 ngọt 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 Ś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 quyết 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ố trù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 mọi khía cạnh khơng thể nên đưa câu trả lời khách quan Với vấn đề kết đạt Abot vẫn 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 về ý 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 về 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 sự Siri 36 Kết thu sau trình nghiên cứu hồn thành luận văn - Tìm hiểu về cấu trúc hệ thống trợ lý ảo - Hiểu mô đun cấu trúc về 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 cho tới 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ất định Đầu tiên tìm hiểu về mơ hình hệ thống trợ lý ảo, về 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 tốn ứng dụng từng mơ hình Từ giúp em sâu nghiên cứu từng 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 h́n luyện chatbot giúp em có kiến thức, độ hiểu biết sâu về 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 yê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 rất 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 những kế t quả rấ t tích cực đắ n, có thể giải quyế t được vấn đề xây dựng tính tốn hệ thống đối thoại Đinh ̣ hướng nghiên cứu tiế p theo, em tiế p tu ̣c làm mượt liệu, để tạo mơ hình mới có khả na ̆ng trả lời sát với ngữ cảnh, đạt chất lượng cao hơn, giảm khả na ̆ng lảng tránh đưa tính cá nhân vào đoạn hội thoa ̣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 [6] Elizabeth 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 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 chuyể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

Ngày đăng: 23/09/2020, 21:58

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w