Logo Zephyrnet

Bật chatbot trò chuyện cho điện thoại bằng Amazon Lex và Amazon Chime SDK

Ngày:

AI hội thoại có thể mang đến trải nghiệm tương tác mạnh mẽ, tự động thông qua giọng nói và văn bản. Amazon là một dịch vụ kết hợp công nghệ nhận dạng giọng nói tự động và hiểu ngôn ngữ tự nhiên, vì vậy bạn có thể xây dựng những trải nghiệm trò chuyện phức tạp này. Một ứng dụng phổ biến của AI đàm thoại được tìm thấy trong các trung tâm liên lạc: đại lý ảo tự phục vụ. Chúng tôi vui mừng thông báo rằng bạn hiện có thể sử dụng SDK Amazon Chime Âm thanh của Mạng Điện thoại Chuyển mạch Công cộng (PSTN) để cho phép các ứng dụng tự phục vụ đàm thoại nhằm giảm thời gian giải quyết cuộc gọi và tự động hóa các phản hồi thông tin.

Amazon Chime SDK là một tập hợp các thành phần giao tiếp thời gian thực mà nhà phát triển có thể sử dụng để thêm âm thanh, nhắn tin, video và chia sẻ màn hình vào web và ứng dụng di động của bạn. Tích hợp âm thanh Amazon Chime SDK PSTN với Amazon Lex cho phép các nhà xây dựng phát triển các giao diện trò chuyện cho các cuộc gọi đến hoặc từ mạng điện thoại công cộng. Giờ đây, bạn có thể xây dựng các ứng dụng tự phục vụ do AI hỗ trợ, chẳng hạn như trò chuyện hệ thống phản hồi giọng nói tương tác (IVR), tác nhân ảo và các ứng dụng điện thoại khác sử dụng Giao thức khởi tạo phiên (SIP) cho liên lạc thoại.

Ngoài ra, chúng tôi đã đưa ra một số tính năng mới. Lấy nét bằng giọng nói của Amazon cho PSTN cung cấp khả năng khử tiếng ồn dựa trên học tập sâu để giảm tiếng ồn không mong muốn trong cuộc gọi. Giờ đây, bạn cũng có thể sử dụng công nghệ máy học (ML) -driven chuyển văn bản thành giọng nói trong ứng dụng của mình thông qua tích hợp gốc của chúng tôi để Amazon Polly. Tất cả các tính năng hiện được tích hợp trực tiếp với âm thanh Amazon Chime SDK PSTN.

Trong bài đăng này, chúng tôi hướng dẫn bạn cách xây dựng hệ thống IVR đàm thoại cho một dịch vụ du lịch hư cấu chấp nhận đặt chỗ qua điện thoại bằng Amazon Lex.

Tổng quan về giải pháp

Âm thanh Amazon Chime SDK PSTN giúp các nhà phát triển dễ dàng xây dựng các ứng dụng điện thoại tùy chỉnh bằng cách sử dụng sự nhanh nhẹn và đơn giản trong hoạt động của serverless AWS Lambda chức năng.

Đối với giải pháp này, chúng tôi sử dụng các thành phần sau:

  • Âm thanh Amazon Chime SDK PSTN
  • AWS Lambda
  • Amazon
  • Amazon Polly

Amazon Lex tích hợp nguyên bản với Amazon Polly để cung cấp khả năng chuyển văn bản thành giọng nói. Trong bài đăng này, chúng tôi cũng bật tính năng Lấy nét bằng giọng nói của Amazon để giảm tiếng ồn xung quanh khi gọi điện thoại. Trong một trước bài, chúng tôi đã chỉ ra cách tích hợp với Amazon Lex v1 bằng giao diện API. Điều đó không còn cần thiết nữa. Công việc nặng nhọc với Amazon Lex và Amazon Polly giờ đây đã được thay thế bằng một vài lệnh gọi hàm đơn giản.

Sơ đồ sau minh họa thiết kế cấp cao của hệ thống chatbot Amazon Chime SDK Amazon Lex.

Để giúp bạn tìm hiểu cách xây dựng bằng cách sử dụng dịch vụ âm thanh Amazon Chime SDK PSTN, chúng tôi đã xuất bản kho mã nguồn và tài liệu giải thích cách thức hoạt động của mã nguồn. Mã nguồn ở dạng hội thảo, với mỗi chương trình ví dụ được xây dựng dựa trên bài học trước. Bài học cuối cùng là cách xây dựng một chatbot điều khiển Amazon Lex hoàn chỉnh qua điện thoại. Đó là bài học mà chúng tôi tập trung vào trong bài đăng này.

Là một phần của giải pháp này, bạn tạo các tài nguyên sau:

  • Ứng dụng phương tiện SIP - Một đối tượng được quản lý chỉ định một hàm Lambda để gọi.
  • Quy tắc SIP - Một đối tượng được quản lý chỉ định số điện thoại để kích hoạt và đối tượng được quản lý ứng dụng phương tiện SIP nào sẽ sử dụng để gọi một hàm Lambda.
  • Số điện thoại - Số điện thoại Amazon Chime SDK PSTN được cấp phép để nhận cuộc gọi.
  • Hàm Lambda - Một chức năng được viết bằng Typescript được tích hợp với dịch vụ âm thanh PSTN. Nó nhận lệnh gọi từ ứng dụng phương tiện SIP và gửi lại các hành động hướng dẫn ứng dụng phương tiện SIP thực hiện các tác vụ Amazon Polly và Amazon Lex.

Mã demo được triển khai thành hai phần. Ví dụ về chatbot Amazon Lex là một trong loạt các ví dụ hội thảo hướng dẫn cách sử dụng âm thanh Amazon Chime SDK PSTN. Đối với bài đăng này, bạn hoàn thành các bước cấp cao sau để triển khai chatbot:

  1. Định cấu hình chatbot Amazon Lex.
  2. Sao chép mã từ kho lưu trữ GitHub.
  3. Triển khai các tài nguyên chung cho hội thảo (bao gồm cả số điện thoại).
  4. Triển khai chức năng Lambda kết nối Amazon Lex với số điện thoại.

Chúng tôi đi qua từng bước một cách chi tiết.

Điều kiện tiên quyết

Bạn phải có các điều kiện tiên quyết sau:

  • đã cài đặt nút V12 + / npm
  • Đã cài đặt Giao diện dòng lệnh AWS (AWS CLI)
  • Trình quản lý phiên bản nút (nvm) đã được cài đặt
  • Đã cài đặt phiên bản mô-đun nút aws-sdk (sử dụng nvm)
  • Thông tin đăng nhập AWS được định cấu hình cho tài khoản và Khu vực mà bạn sử dụng cho bản trình diễn này
  • Quyền tạo các ứng dụng phương tiện Amazon Chime SIP và số điện thoại (đảm bảo hạn ngạch dịch vụ của bạn trong us-east-1 or us-west-2 đối với số điện thoại, trình kết nối thoại, ứng dụng phương tiện SIP và quy tắc SIP chưa đạt được)
  • Việc triển khai phải được thực hiện trong us-east-1 or us-west-2 để phù hợp với tài nguyên âm thanh PSTN

Để biết hướng dẫn cài đặt chi tiết, bao gồm tập lệnh có thể tự động hóa quá trình cài đặt và dự án AWS Cloud Development Kit (AWS CDK) để dễ dàng tạo môi trường phát triển Amazon Elastic Compute Cloud (Amazon EC2), hãy xem phần hướng dẫn hội thảo.

Định cấu hình chatbot Amazon Lex

Bạn có thể xây dựng một bot đàm thoại hoàn chỉnh bằng Amazon Lex. Trong ví dụ này, bạn sử dụng bảng điều khiển Amazon Lex để tạo bot. Chúng tôi bỏ qua các bước mà bạn xây dựng hàm Lambda cho Amazon Lex. Trọng tâm ở đây là cách kết nối âm thanh Amazon Chime PSTN với Amazon Lex. Để biết hướng dẫn về cách xây dựng các bot Amazon Lex tùy chỉnh, hãy tham khảo Amazon Lex: Cách thức hoạt động. Trong ví dụ này, chúng tôi sử dụng ví dụ "chuyến đi đặt trước" được tạo sẵn.

Tạo một bot

Để tạo chatbot của bạn, hãy hoàn thành các bước sau:

  1. Đăng nhập vào bảng điều khiển Amazon Lex trong cùng Khu vực mà bạn đã triển khai tài nguyên Amazon Chime SDK tại đó.

Điều này phải có trong một trong hai us-east-1 or us-west-2, tùy thuộc vào nơi bạn triển khai tài nguyên Amazon Chime SDK bằng AWS CDK.

  1. Trong ngăn dẫn hướng, chọn Bots.
  2. Chọn Tạo bot.
  3. Chọn Bắt đầu với một ví dụ.

  4. Trong Tên bot, nhập tên (ví dụ: BookTrip).
  5. Trong Mô tả, nhập một mô tả tùy chọn.
  6. Theo Quyền IAM, lựa chọn Tạo vai trò với các quyền cơ bản của Amazon Lex.
  7. Theo Đạo luật bảo vệ quyền riêng tư của trẻ em trên mạng, lựa chọn Không.

Ví dụ này không cần sự bảo vệ đó, nhưng để tạo bot của riêng bạn, bạn nên chọn tùy chọn này cho phù hợp.

  1. Theo Thời gian chờ của phiên không hoạt động¸ đặt Thời gian chờ phiên thành 1 phút.
  2. Bạn có thể bỏ qua Cài đặt nâng cao phần.
  3. Chọn Sau.

  1. Trong Chọn ngôn ngữ, chọn ngôn ngữ ưa thích của bạn (đối với bài đăng này, chúng tôi chọn tiếng Anh (Mỹ)).
  2. Trong Tương tác bằng giọng nói, chọn giọng nói bạn muốn sử dụng.
  3. Bạn có thể nhập mẫu giọng nói và chọn Play để kiểm tra cụm từ và xác nhận giọng nói theo sở thích của bạn.
  4. Để các cài đặt khác ở chế độ mặc định.
  5. Chọn Thực hiện.

  1. Trong tạp chí Hoàn thành , hãy nhập văn bản sau cho Khi thực hiện thành công:
Thank you!  We'll see you on {CheckInDate}.

  1. Theo Chốt câu trả lời, hãy nhập văn bản sau cho Tin nhắn:

Goodbye!

  1. Chọn Lưu ý định.
  2. Chọn Xây dựng.

Quá trình xây dựng mất một vài phút để hoàn thành. Khi hoàn tất, bạn có thể kiểm tra bot trên bảng điều khiển Amazon Lex.

Tạo một phiên bản

Bây giờ bạn đã xây dựng bot. Tiếp theo, chúng tôi tạo một phiên bản.

  1. Điều hướng đến Các phiên bản trang bot của bạn (dưới tên bot trong ngăn điều hướng).
  2. Chọn Tạo phiên bản.
  3. Chấp nhận tất cả các giá trị mặc định và chọn Tạo.

Phiên bản mới của bạn hiện đã được liệt kê trên Các phiên bản .

Tạo bí danh

Tiếp theo, chúng tôi tạo một bí danh.

  1. Trong ngăn dẫn hướng, chọn bí danh.
  2. Chọn Tạo bí danh.
  3. Trong tên giả tên, nhập tên (ví dụ: sản xuất).
  4. Theo Liên kết với một phiên bản, hãy chọn Phiên bản 1 trên menu thả xuống.

Nếu bạn có nhiều phiên bản bot, bạn có thể chọn phiên bản thích hợp tại đây.

  1. Chọn Tạo.

Bí danh hiện được liệt kê trên bí danh .

  1. trên bí danh trang, chọn bí danh bạn vừa tạo.
  2. Theo Chính sách dựa trên tài nguyên, chọn Chỉnh sửa.
  3. Thêm chính sách sau để cho phép âm thanh Amazon Chime SDK PSTN gọi Amazon Lex cho bạn:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMALexAccess", "Effect": "Allow", "Principal": { "Service": "voiceconnector.chime.amazonaws.com" }, "Action": "lex:StartConversation", "Resource": "<Resource-ARN-for-the-Alias>", "Condition": { "StringEquals": { "AWS:SourceAccount": "<account-num>" }, "ArnEquals": { "AWS:SourceArn": "arn:aws:voiceconnector:<region>:<account-num>:*" } } } ]
}

Trong mã trước đó, hãy cung cấp ARN tài nguyên (nằm ngay phía trên hộp văn bản), là ARN cho bí danh bot. Đồng thời cung cấp số tài khoản của bạn và chỉ định Khu vực bạn đang triển khai (us-east-1 or us-west-2). Điều đó xác định ARN của mặt phẳng điều khiển âm thanh PSTN trong tài khoản của bạn.

  1. Chọn Lưu để lưu trữ các chính sách.
  2. Chọn Sao chép bên cạnh ARN tài nguyên để sử dụng ở bước sau.

Chúc mừng! Bạn đã định cấu hình một bot Amazon Lex!

Trong một ứng dụng chatbot thực, bạn gần như chắc chắn sẽ triển khai một hàm Lambda để xử lý các ý định. Chương trình demo này tập trung vào việc giải thích cách kết nối với âm thanh Amazon Chime SDK PSTN, vì vậy chúng tôi không đi sâu vào mức độ chi tiết đó. Để biết thêm thông tin, tham khảo Thêm hàm Lambda làm Móc mã.

Sao chép kho lưu trữ GitHub

Bạn có thể lấy mã cho toàn bộ hội thảo bằng cách sao chép kho lưu trữ:

git clone https://github.com/aws-samples/amazon-chime-sdk-pstn-audio-workshop
cd amazon-chime-sdk-pstn-audio-workshop

Triển khai các nguồn lực chung cho hội thảo

Hội thảo này sử dụng AWS CDK để tự động hóa việc triển khai tất cả các tài nguyên cần thiết (ngoại trừ bot Amazon Lex mà bạn đã sử dụng). Để triển khai, hãy chạy mã sau từ thiết bị đầu cuối của bạn:

cdk bootstrap
yarn deploy

AWS CDK triển khai các tài nguyên. Chúng tôi thực hiện bước khởi động để đảm bảo rằng AWS CDK được khởi tạo đúng cách trong Vùng mà bạn đang triển khai. Lưu ý rằng các ví dụ này sử dụng AWS CDK phiên bản 2.

Kho lưu trữ có một loạt các bài học được thiết kế để giải thích cách phát triển các ứng dụng âm thanh PSTN. Chúng tôi khuyên bạn nên xem lại các tài liệu này để hiểu những điều cơ bản bằng cách sử dụng một số chương trình mẫu đầu tiên. Sau đó, bạn có thể xem lại thư mục chương trình mẫu Lambda. Cuối cùng, hãy làm theo các bước để định cấu hình và sau đó triển khai mã của bạn. Trong terminal, nhập lệnh sau:

cd lambdas/call-lex-bot

Định cấu hình chức năng Lambda của bạn để sử dụng ARN của bot Amazon Lex

Mở src/index.ts tệp mã nguồn cho hàm Lambda và chỉnh sửa biến botAlias gần đầu tệp (cung cấp ARN bạn đã sao chép trước đó):

const botAlias = "<Resource-ARN-for-the-Alias>";

Giờ đây, bạn có thể triển khai bot với triển khai sợi và hoán đổi chức năng Lambda mới thành âm thanh PSTN với hoán đổi sợi. Bạn cũng có thể lưu ý văn bản chào mừng trong startBotConversationAction vật:

const startBotConversationAction = { Type: "StartBotConversation", Parameters: { BotAliasArn: "none", LocaleId: "en_US", Configuration: { SessionState: { DialogAction: { Type: "ElicitIntent" } }, WelcomeMessages: [ { ContentType: "PlainText", Content: "Welcome to AWS Chime SDK Voice Service. Please say what you would like to do. For example: I'd like to book a room, or, I'd like to rent a car." }, ] } }
}

Amazon Lex khởi động bot và sử dụng Amazon Polly để đọc văn bản đó. Điều này mang đến cho người gọi một lời chào và cho họ biết họ nên làm gì tiếp theo.

Cách thức thực hiện

Ví dụ sau đây bổ sung thêm các hành động cho những gì chúng ta đã học được trong Bài học về Cuộc gọi và Cầu nối. Các NEW_INBOUND_CALL sự kiện đến và được xử lý theo cùng một cách. Chúng tôi bật tính năng Lấy nét bằng giọng nói của Amazon (giúp tăng cường khả năng hiểu từ của Amazon Lex) và sau đó chuyển ngay cuộc gọi đến cho bot bằng StartBotConversation hoạt động. Ví dụ về hành động đó trông giống như đối tượng sau:

{ "SchemaVersion": "1.0", "Actions": [ { "Type": "Pause", "Parameters": { "DurationInMilliseconds": "1000" } }, { "Type": "VoiceFocus", "Parameters": { "Enable": true, "CallId": "2947dfba-0748-46fc-abc5-a2c21c7569eb" } }, { "Type": "StartBotConversation", "Parameters": { "BotAliasArn": "arn:aws:lex:us-east-1:<account-num>:bot-alias/RQXM74UXC7/ZYXLOINIJL", "LocaleId": "en_US", "Configuration": { "SessionState": { "DialogAction": { "Type": "ElicitIntent" } }, "WelcomeMessages": [ { "ContentType": "PlainText", "Content": "Welcome to AWS Chime SDK Voice Service. Please say what you would like to do. For example: I'd like to order flowers." } ] } } } ]
}

Khi bot trả về một ACTION_SUCCESSFUL sự kiện, dữ liệu được thu thập bởi bot Amazon Lex được đưa vào sự kiện. Dữ liệu thu thập từ bot được bao gồm và chức năng Lambda của bạn có thể sử dụng dữ liệu đó nếu cần. Tuy nhiên, một thực tế phổ biến để xây dựng các ứng dụng Amazon Lex là xử lý dữ liệu với chức năng được liên kết với bot Amazon Lex. Ví dụ về sự kiện và hành động trả về được cung cấp trong tài liệu hội thảo cho phiên này.

Biểu đồ trình tự

Biểu đồ sau đây cho thấy trình tự các lệnh gọi được thực hiện giữa âm thanh PSTN và hàm Lambda:

Để có giải thích chi tiết hơn về hoạt động, hãy tham khảo tài liệu hội thảo.

Làm sạch

Để dọn dẹp tài nguyên được sử dụng trong bản demo này và tránh phát sinh thêm phí, hãy hoàn thành các bước sau:

  1. Trong thiết bị đầu cuối, nhập mã sau:
yarn destroy

  1. Quay lại thư mục hội thảo (cd ../../) và nhập mã sau:
yarn destroy

Ngăn xếp AWS CloudFormation được tạo bởi AWS CDK bị phá hủy, loại bỏ tất cả các tài nguyên được phân bổ.

Kết luận

Trong bài đăng này, bạn đã học cách xây dựng phản hồi bằng giọng nói tương tác đàm thoại (IVR) sử dụng âm thanh Amazon Lex và Amazon Chime SDK PSTN. Bạn có thể sử dụng các kỹ thuật này để xây dựng hệ thống của riêng mình nhằm giảm thời gian giải quyết cuộc gọi của khách hàng và tự động hóa phản hồi thông tin về cuộc gọi của khách hàng.

Để biết thêm thông tin, xem kho dự án GitHubSử dụng dịch vụ Âm thanh Amazon Chime SDK PSTN.


Lưu ý

Greg Herlein đã lãnh đạo các nhóm phần mềm trong hơn 25 năm tại các công ty lớn và nhỏ, bao gồm một số công ty khởi nghiệp. Anh ấy hiện là Người truyền bá chính cho dịch vụ Amazon Chime SDK, nơi anh ấy có đam mê về cách giúp khách hàng xây dựng phần mềm truyền thông nâng cao.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?