Mục lục:

Trợ lý kích hoạt bằng giọng nói - TỐI ĐA: 10 bước
Trợ lý kích hoạt bằng giọng nói - TỐI ĐA: 10 bước

Video: Trợ lý kích hoạt bằng giọng nói - TỐI ĐA: 10 bước

Video: Trợ lý kích hoạt bằng giọng nói - TỐI ĐA: 10 bước
Video: Hướng dẫn khắp phục khi cập nhật trợ lý giọng nói của sam sung 100% ok .Sam sung 2021 dòng TU 2024, Tháng bảy
Anonim
Trợ lý kích hoạt bằng giọng nói - MAX
Trợ lý kích hoạt bằng giọng nói - MAX

Này, trong phần Có thể hướng dẫn này, tôi sẽ nói về cách tạo ra một trò chuyện-bot MAX (tự đặt tên cho tôi !!!)

Với một số cách triển khai, bạn có thể làm cho chatbot này được điều khiển bằng giọng nói hoặc với việc sử dụng các phần mềm khác nhau, bạn có thể biến nó thành trợ lý giọng nói. Tôi ở đây sẽ không nói về nó vì mọi người thực sự có thể thực hiện việc triển khai này một cách dễ dàng.

Vì vậy mọi người hãy ủng hộ mình nhé …….

Có thể giảng dạy đầu tiên của tôi !!!!!!!

Cảm thấy lo lắng về những gì sẽ xảy ra …………….

Bước 1: Biết về Cuộc thi

Biết về cuộc thi
Biết về cuộc thi
Biết về cuộc thi
Biết về cuộc thi

Chào các Kỹ sư và Nhà thiết kế ……..

Bản thân tôi là một sinh viên Khoa học Máy tính rất thích chơi game và luôn có cảm hứng trên máy tính, nói một cách ngắn gọn là tôi muốn biết tất cả những thứ hiện tại hoạt động như thế nào. !!!) để tìm kiếm và học hỏi những điều.

Vì vậy, một ngày nọ tôi đến trước màn hình của Những người dạy dỗ. Tôi thực sự thích thú với những dự án khác nhau với nhiều ý tưởng đa dạng về các khía cạnh khác nhau. thế giới.

VOICE KÍCH HOẠT THỬ THÁCH là nền tảng đầu tiên của tôi liên quan đến việc viết một cuốn sách Có thể hướng dẫn.

Giải thưởng làm tôi thích thú rất nhiều (Yeah !!! Quá nhiều ……..).

Ngoài ra, tôi muốn chia sẻ kiến thức của mình trong lĩnh vực Máy tính và công nghệ đó cho những người khác về cách thức hoạt động của nhiều thứ khác nhau.

Trong phần Có thể hướng dẫn này, tôi chỉ cho bạn cách Tạo trợ lý kích hoạt bằng giọng nói của riêng bạn.

Vì đây là Sách hướng dẫn đầu tiên của tôi nên có thể có rất nhiều sai sót (mặc dù tôi nghĩ rằng tất cả những điều này đã được sửa), vì vậy hãy tha thứ cho điều đó.

VÌ THẾ….

Chúng ta hãy bắt đầu cuộc hành trình ………………

Bước 2: Tôi Đã Biết Về Những Điều Ở Đâu?

Tôi Đã Biết Về Những Điều Ở Đâu?
Tôi Đã Biết Về Những Điều Ở Đâu?
Tôi Đã Biết Về Những Điều Ở Đâu?
Tôi Đã Biết Về Những Điều Ở Đâu?
Tôi Đã Biết Về Những Điều Ở Đâu?
Tôi Đã Biết Về Những Điều Ở Đâu?

Đây sẽ là một câu hỏi chính mà tôi nghĩ hầu hết các bạn có thể đã trải qua ………

Tôi có rất nhiều niềm đam mê với Trí tuệ nhân tạo [AI] từ khi còn đi học, từ đó tôi đã tìm kiếm rất nhiều tài nguyên để nghiên cứu và phát triển một mô hình của riêng mình.

Ban đầu nó rất khó khăn (điều kiện thực sự) vì tôi hiểu rằng đây là một chủ đề rất rộng lớn và không hề dễ dàng để xử lý.

Những cuốn sách được tra cứu bao gồm:

  1. Trí tuệ nhân tạo Một phương pháp tiếp cận hiện đại
  2. Artificial. Intelligence.in.the.21st. Century.2nd. Edition
  3. Học kĩ càng

Đây là những cuốn sách rất hay (vâng chắc chắn) nhưng không dễ hiểu chút nào về những điều đã được viết trên đó. nó thực sự đại diện và cách để tiếp cận nó.

Sau kỳ nghỉ sau khi đi học, tôi bắt đầu tìm hiểu sâu hơn về nó.

Lúc đó tôi cũng học được nhiều ngôn ngữ lập trình khác nhau (C ++, C, Python, Java….), Rất thú vị.

Khi đọc thêm về chủ đề này, tôi đã hiểu một Điều quan trọng ………………..

Các ngôn ngữ lập trình LÀ CĂN BẢN CHO MỌI QUÁ TRÌNH HỌC TẬP MÁY

Học máy là quá trình ứng dụng AI

Với sự hiểu biết sâu rộng về ngôn ngữ lập trình và nhiều thứ khác nhau có thể được thực hiện tùy thuộc vào lập trình viên để tạo ra một chiếc máy tính có thể làm bất cứ điều gì cho chúng ta.

Vì vậy, tôi quyết định tạo ra một cơ sở tốt dựa trên các ngôn ngữ giúp tôi hiểu các khái niệm được cung cấp trong cuốn sách mà tôi đã đề cập

Bạn cũng có thể làm điều đó …….

Có rất nhiều trang web hiện diện trên mạng để dạy các ngôn ngữ lập trình một cách miễn phí

Vì vậy, bạn có thể lướt internet để hiểu thêm về nó nếu bạn muốn ………

Bước 3: Hãy để chúng tôi bắt đầu

Tôi trước khi bắt đầu viết cuốn Sách có thể hướng dẫn, tôi đã nghĩ đến việc viết một cái gì đó mà đại loại là:

  1. Những người có kinh nghiệm viết mã
  2. Những người không có bất kỳ nền tảng mã hóa nào

Vì vậy, tôi nghĩ rằng tôi đã làm điều mà không có bất kỳ sai lầm (hy vọng).

Vì vậy, tôi đã quyết định xây dựng một bot trò chuyện có thể nói chuyện với người dùng và có thể trả lời theo cuộc nói chuyện của chúng tôi.

Chương trình (tập hợp các hướng dẫn) không thể tự suy nghĩ. Nó có một cơ sở dữ liệu (nơi lưu trữ dữ liệu) về các dữ kiện và quy tắc, được tìm kiếm tại thời điểm nói chuyện để đưa ra phản hồi tốt nhất có thể liên quan đến người dùng.

Nó hoạt động theo quy trình đối sánh tùy thuộc vào những thứ đã nhập, chỉ trong một số trường hợp hiếm hoi, toàn bộ câu được ghép với một câu hoàn chỉnh.

Bước 4: Nó thực sự hoạt động như thế nào?

Bước 1:

MAX tìm xem người dùng đã đưa ra bất kỳ đầu vào rỗng nào hay chưa. Nếu người dùng khi được cung cấp thông tin đầu vào theo cách như vậy, thì thực tế từ cơ sở dữ liệu tĩnh để phản hồi.

Ồ xin lỗi …….

Tôi quên nói,

Cơ sở dữ liệu tĩnh: Nơi lưu trữ các phản hồi tích hợp sẵn. Các câu trả lời như:

1. Khi MAX không hiểu người dùng đang nói về cái gì.

2. Khi người dùng tự lặp lại.

3. Đối với câu chào.

4. Khi người dùng không gõ bất cứ thứ gì và chỉ tiếp tục nhấn Enter.

Từ khóa: những từ có ý nghĩa đặc biệt.

Bước 2:

Có một số câu trả lời được tạo sẵn mà MAX có thể nhận ra một cách dễ dàng và dễ dàng. Nó tìm thấy sự hiện diện của bất kỳ câu nào như vậy sau khi xác định người dùng nhập và ghi nhớ từ khóa liên quan.

Bước 3:

Nếu không tìm thấy câu dựng sẵn nào ngay cả sau khi phân đoạn câu đã cho, thì MAX sẽ tìm kiếm từ khóa cụ thể để xác định ngữ cảnh. Nếu không tìm thấy ngữ cảnh nào thì mục tiêu tiếp theo là khiến người dùng nói về chủ đề một cách có chủ ý hơn theo một cách cụ thể.

Bước 4:

Từ Cơ sở dữ liệu tĩnh mà chúng ta đã đề cập, nó sẽ chọn phản hồi phụ thuộc vào những gì người dùng đã nói về.

Bước 5:

Tôi có nhu cầu thay đổi các từ nó sẽ tự thực hiện (chẳng hạn như Chuyển đổi CỦA TÔI thành CỦA BẠN, v.v.)

Bước 5: Hãy để chúng tôi Mã …………

Tôi đang sử dụng Turbo C IDE 3.0 vì đây là IDE [Môi trường phát triển tích hợp]

Trước khi viết mã, chúng ta hãy xem cấu trúc của một Tệp dữ liệu mẫu.

MAX nhận ra các từ khóa nhất định.

Nếu những từ khóa này được tìm thấy trong đầu vào do người dùng cung cấp, thì phản hồi tương ứng sẽ được chọn từ tệp dữ liệu và được chọn và hiển thị trên màn hình.

Từ khóa được phân tách trong tệp dữ liệu khỏi các phản hồi bằng mã thông báo @ KWD @.

Token là một phần nhỏ nhất của mọi khía cạnh lập trình.

Mã thông báo này biểu thị dòng tiếp theo là một từ khóa và không phải là một phản hồi.

@ KWD @ HELLO

CHÀO! BẠN KHỎE KHÔNG

CHÀO CƯNG !

TÔI ỔN

NGHỀ NGHIỆP CỦA BẠN THẾ NÀO?

BẠN BAO NHIÊU TUỔI?

@ KWD @

TÔI SẼ

BẠN SẼ LÀM ĐƯỢC. TÔI TIN LÀ QUÁ…

BẠN CÓ THỂ LÀM ĐƯỢC NHƯ VẬY?

BẠN SẼ TIN TƯỞNG TÔI?

@ KWD @

ĐÚNG

BẠN CÓ CHẮC KHÔNG ?

LÀM THẾ NÀO BẠN CÓ THỂ CHẮC CHẮN NHƯ VẬY ?

@ KWD @

KHÔNG

BẠN RẤT ĐÁNG YÊU.

KHÔNG BAO GIỜ NÓI KHÔNG…

KHÔNG BAO GIỜ NÓI KHÔNG BAO GIỜ

KHÔNG BAO GIỜ ĐƯỢC RUDE

KHÔNG BAO GIỜ ĐƯỢC SẮP XẾP !!!!

KHÔNG BAO GIỜ NÓI TÔI KHÔNG THỂ LÀM VIỆC NÀY

KHÔNG BAO GIỜ LÀ TỐI ƯU

@ KWD @

MÁY VI TÍNH

TÔI BIẾT CÁCH LÀM VIỆC TRÊN MÁY TÍNH.

HIỆN TẠI BẠN ĐANG DÙNG MÁY TÍNH. ĐÚNG ?

Ví dụ: 'Xin chào', từ từ điển trên, MAX sẽ đưa ra một trong các câu trả lời sau:

CHÀO BẠN XIN LỖI!

TÔI ỔN

NGHỀ NGHIỆP CỦA BẠN THẾ NÀO?

BẠN BAO NHIÊU TUỔI?

Bước 6: Lớp học

Khi điều này đã rõ ràng, bây giờ chúng ta hãy xác định Cấu trúc dữ liệu mà chúng ta sẽ sử dụng.

Chúng tôi tạo hai lớp:

progstr - Điều này được sử dụng để lưu trữ thông tin liên quan đến đầu vào của người dùng.

resp - Nó được sử dụng để lưu trữ thông tin về các phản hồi khác nhau

lớp progstr {

công cộng:

char userip [MAX_USER_INPUT];

từ khóa char [30];

int keyfound;

int keyno;

int nullip;

// constructor

progstr () {keyno = -1; nullip = 0; keyfound = 0;

}

} ip;

lớp học

{

int tot_resp;

int last_resp;

char trả lời [MAX_RESP_NO] [MAX_RESP_LEN];

từ char [MAX_KWD_LEN];

công cộng:

// constructor

resp ()

{

tot_resp = 0;

last_resp = -1;

}

int getcount ()

{

trả về last_resp;

}

void addword (char str [MAX_KWD_LEN])

{

strcpy (từ, str);

}

char * getword ()

{

từ trở lại;

}

void addresp (char str [MAX_RESP_LEN])

{

strcpy (trả lời [++ last_resp], str);

}

// định nghĩa sau

void display_resp (int num);

void drop_display_resp (int num);

};

Nhìn vào hạng nhất, Userip mảng ký tự được sử dụng để lưu trữ câu do người dùng cung cấp.

Một từ khóa mảng khác được sử dụng để lưu trữ từ khóa, nếu có, được tìm thấy trong đầu vào đó. Nếu một từ khóa được tìm thấy, chúng tôi thực hiện int keyfound thành 1 else, nó vẫn là 0, vì nó được khởi tạo thành 0 trong Constructor.

keyno lưu trữ số khóa tương ứng của từ khóa tương ứng.

nullip cho biết liệu người dùng có cung cấp bất kỳ đầu vào Null nào hay không, tức là anh ta chỉ nhấn enter mà không làm bất cứ điều gì khác.

Bây giờ chúng ta hãy đến với lớp thứ hai, tương ứng.

Thành viên dữ liệu đầu tiên, tot_resp cho biết tổng số phản hồi cho một từ khóa nhất định.

Các câu trả lời thực sự được lưu trữ trong các câu trả lời [MAX_RESP_NO] [MAX_RESP_LEN] và từ khóa tương ứng được lưu trữ trong từ mảng.

Constructor: Điều này được sử dụng để khởi tạo tổng số phản hồi bằng 0. Tại sao last_resp được khởi tạo thành -1 sẽ rõ ràng khi bạn nhìn vào hàm add_resp.

int getcount ():

Hàm này được sử dụng để đếm xem có bao nhiêu phản hồi cho một từ khóa nhất định.

void addword (char str [MAX_KWD_LEN]):

Điều này được sử dụng để thêm một từ khóa.

char * getword ():

Được sử dụng để trả về từ khóa cho một đối tượng cụ thể của lớp resp.

void addresp (…):

Điều này được sử dụng để thêm một phản hồi tương ứng với một từ khóa nhất định.

void display_resp (int):

Điều này được sử dụng để hiển thị phản hồi cho người dùng tương ứng với một số chỉ mục nhất định cho các phản hồi. (thực sự nó còn làm được nhiều hơn thế!).

void drop_display_resp (int):

Sự khác biệt giữa chức năng này và chức năng trên là nó được sử dụng cuối cùng khi người dùng đang thoát. Vì vậy, nó không trả lại lời nhắc cho người dùng.

Bước 7: Chức năng

void khởi tạo_global ()

{

strcpy (wordin [0], "LÀ");

strcpy (lodout [0], "AM");

strcpy (wordin [1], "AM");

strcpy (lodout [1], "LÀ");

strcpy (wordin [2], "WERE");

strcpy (lodout [2], "ĐÃ");

strcpy (wordin [3], "ĐÃ");

strcpy (lodout [3], "WERE");

strcpy (wordin [4], "BẠN");

strcpy (lodout [4], "TÔI");

strcpy (wordin [5], "I");

strcpy (lodout [5], "BẠN");

strcpy (wordin [6], "CỦA BẠN");

strcpy (lodout [6], "MY");

strcpy (wordin [7], "MY");

strcpy (lodout [7], "CỦA BẠN");

strcpy (wordin [8], "I'VE");

strcpy (lodout [8], "BẠN LÀ");

strcpy (wordin [9], "YOU'VE");

strcpy (lodout [9], "I’VE");

strcpy (wordin [10], "I’m");

strcpy (lodout [10], "BẠN ĐANG");

strcpy (wordin [11], "BẠN ĐANG");

strcpy (lodout [11], "I’m");

strcpy (wordin [12], "TÔI");

strcpy (lodout [12], "BẠN");

strcpy (wordin [13], "BẠN");

strcpy (lodout [13], "TÔI");

}

Bây giờ chúng ta hãy viết một hàm để hiển thị phản hồi cho người dùng. Câu lệnh if đầu tiên trong vòng lặp for được sử dụng để tạo ra một lỗi cố ý nhập để làm cho nó trông giống con người hơn;-). Một ký tự được chọn ngẫu nhiên vì lỗi đánh máy. Các trường hợp đặc biệt như Dòng mới và Khoảng lùi được xem xét riêng. (Nghĩ tại sao?). Bây giờ tôi giới thiệu một cái gì đó mới. Một ký tự đặc biệt - *. Biểu đồ * đại diện cho tất cả văn bản được tìm thấy SAU từ khóa được xác định và trước một trong các dấu câu sau.

Ví dụ: hãy xem xét đầu vào của người dùng

AMIT> TÔI CÓ THỂ ĐI ĐẾN INDORE TOMORROW?

TỐI ĐA> NẾU BẠN KHÔNG ĐẾN INDORE TOMORROW?

Phần gạch chân không được lưu trữ trong từ điển, thay vào đó nó được lấy từ đầu vào của người dùng. Trong tệp MAX. Dat, chúng tôi lưu trữ thông tin này dưới dạng

TÔI CÓ THỂ

NẾU BẠN KHÔNG LÀM ĐƯỢC GÌ *

Dấu sao (*) yêu cầu chương trình chỉ cần sao chép bất cứ thứ gì được nhập sau từ khóa (ở đây CÓ THỂ TÔI) trong đầu vào của người dùng, như nó vốn có. Tôi hy vọng rằng bây giờ chức năng của * như một từ khóa đặc biệt đã rõ ràng. Vì vậy, chúng ta hãy xem xét một trường hợp phức tạp hơn.

AMIT> TÔI CÓ THỂ ĐI MUA SẮM ĐƯỢC KHÔNG?

TỐI ĐA> NẾU BẠN KHÔNG ĐI MUA SẮM THÌ SAO?

Chúng ta cũng phải thực hiện một số chuyển đổi. Khi chúng ta nghĩ về sự biến đổi, câu được chia thành 3 phần sau:

  • Văn bản Trước khi Chuyển vị Từ. (tại đây, ĐI ĐẾN MUA SẮM VỚI)
  • Từ khóa Transposed. (ở đây, CỦA BẠN, thay cho CỦA TÔI)
  • Văn bản Sau Từ khoá Chuyển vị. (tôi đây ?)

Bước 8: Các trường hợp có thể được giải quyết bởi ………

Bước 9: Tìm kiếm từ khóa trong đầu vào của người dùng

MAX_KEY cho biết số lượng từ khóa trong tệp DAT.

Chúng tôi ở đây chỉ đơn giản là tìm kiếm xem từ khóa có xuất hiện trong Đầu vào của người dùng hay không.

Bước 10: Kết luận

Đó là tất cả ………

Bạn đã làm xong việc đó !!!!!!!!

Tôi nghĩ mọi người đã hiểu rõ mọi thứ ……

Nếu bất cứ ai có nghi ngờ về bất cứ điều gì bạn có thể thoải mái hỏi

Đề xuất: