蘑菇加速器苹果版
  • 3

使用基于生成性 AI 的虚拟助手提升公共演讲技能 机器学习博客

借助 Amazon Bedrock 提升公共演讲技巧

关键要点

公共演讲是一项至关重要的技能,能提升个人信心和沟通能力。借助生成式 AI 技术提供实时演讲分析和改进建议。本文介绍如何构建基于 Amazon Bedrock 的公共演讲辅导 AI 助手,提升演讲沟通能力。

公共演讲在当今社会中至关重要,无论是在专业演示、学术环境还是个人成长方面。通过定期练习,个人可以建立自信,以健康的方式管理焦虑,发展有效的沟通技巧,从而成功开展公共演讲。如今,随着大型语言模型的出现,您可以使用 生成式 AI 驱动的虚拟助手,提供实时的演讲分析,识别改进领域,并给出增强演讲方式的建议。

本文介绍了一个基于 Amazon Bedrock 的虚拟助手,可以将演讲音频转录,并检查语言使用、语法错误、填充词以及单词和句子的重复,为用户提供改进建议,建议演讲的精简版本。该解决方案旨在提升沟通技能,使个人成为更有效、更有影响力的公共演讲者。各行各业的组织,包括公司、教育机构、政府部门和社交媒体名人,都可以利用该解决方案为员工、学生和公共演讲提供自动化辅导。

接下来的部分,我们将指导您使用 Amazon Transcribe 和 AWS Step Functions 构建可扩展的无服务器、端到端的公共演讲导师 AI 助手,使用提供的 示例代码。Amazon Bedrock 是一项完全托管的服务,提供来自领先 AI 公司如 AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon的高性能基础模型FMs,通过统一的 API 进行调用,并提供广泛的功能来构建安全、隐私和负责任的生成式 AI 应用。

蘑菇加速器下载安卓版

解决方案概述

该解决方案由四个主要组件组成:

组件说明Amazon Cognito 用户池用于用户身份验证。经过身份验证的用户可以访问公共演讲导师 AI 助手的网络门户,上传音频和视频录制。Streamlit 网页门户允许用户上传音频和视频录制,上传的文件将存储在 Amazon S3 桶中,便于后续处理和分析。Step Functions 标准工作流负责调用 Amazon Transcribe 将音频转换为文本,并再调用 Amazon Bedrock 生成演讲反馈和重写建议。Amazon Simple Notification Service向用户发送电子邮件通知,包括 Amazon Bedrock 生成的建议。

此解决方案使用 Amazon Transcribe 将语音转换为文本。当上传音频或视频文件后,Amazon Transcribe 会将语音转录成文本。该文本作为输入传递给 Anthropic 的 Claude 35 Sonnet。该解决方案向 Amazon Bedrock 发送两个提示:一个用于生成语言使用、语法、填充词、重复等方面的反馈和建议,另一个则获取原始演讲的精简版本。该工作流将这些输出整合,并显示在用户的网页上,同时通过电子邮件发送结果。

使用 Amazon Bedrock 的生成式 AI 功能有效地处理用户的语音输入。它利用自然语言处理分析语音并提供量身定制的建议。使用在大量数据上训练的 LLM,Amazon Bedrock 生成精简的演讲输出,以增强演讲效果。

以下是我们的解决方案架构图:

接下来,我们将逐步探讨架构:

用户使用 Amazon Cognito 用户池身份验证机制登录公共演讲导师 AI 助手网页门户Streamlit 应用程序托管在用户本地桌面。用户上传音频或视频文件到网页门户,这些文件将保存在经过 Amazon S3 管理密钥SSES3加密的 S3 桶中。S3 服务会对保存到桶中的每个文件触发 s3ObjectCreated 事件。Amazon EventBridge 根据此事件调用 Step Functions 状态机。因为状态机执行可能超过 5 分钟,所以我们使用标准工作流。Step Functions 的执行日志发送到 Amazon CloudWatch 便于记录和故障排除。Step Functions 工作流使用 AWS SDK 集成 调用 Amazon Transcribe,并启动 StartTranscriptionJob,传递 S3 桶、前缀路径和对象名作为 MediaFileUri。工作流等待转录作业完成后,将转录文本保存在另一个 S3 桶前缀路径中。Step Functions 工作流利用 优化集成 调用 Amazon Bedrock 的 InvokeModel API,指定 Anthropic Claude 35 Sonnet 模型,提交系统提示、最大令牌和转录语音文本等输入。系统提示 instructs Anthropic Claude 35 Sonnet 模型提供如何改善演讲的建议,包括识别不引人注目的语法、单词或内容的重复、填充词的使用及其他建议。在从 Amazon Bedrock 接收到响应后,Step Functions 工作流使用提示链将另一个输入构建为 Amazon Bedrock,结合之前转录的讲话和模型的先前响应,请求模型提供重写演讲的建议。工作流结合来自 Amazon Bedrock 的输出,构建显示在已登录用户网页上的信息。Step Functions 工作流调用 Amazon SNS 的 Publish 优化集成功能,向用户发送包含 Amazon Bedrock 生成的消息的电子邮件。Streamlit 应用程序查询 Step Functions,在 Amazon Cognito 用户的网页上显示输出结果。

准备工作

为了实施公共演讲导师 AI 助手解决方案,您需要具备以下准备条件:

拥有充足的 AWS 身份与访问管理 (IAM) 权限的 AWS 帐户,以便部署解决方案并运行 Streamlit 应用程序网页门户:

Amazon Bedrock

AWS CloudFormationAmazon CloudWatchAmazon CognitoAmazon EventBridgeAmazon TranscribeAmazon SNSAmazon S3

AWS Step Functions

在所需的 AWS 区域启用 模型访问,以使用 Anthropic 的 Claude 35 Sonnet。

拥有本地桌面环境,其中安装有 AWS 命令行界面 (AWS CLI) 安装指南、Python 38 或以上版本,以及适用于 Python 的 AWS Cloud Development Kit 和 Git。设置了 AWS CLI,以确保拥有必要的 AWS 凭证和所需的区域。

部署公共演讲导师 AI 助手解决方案

完成以下步骤,在您选择的 AWS 区域部署公共演讲导师 AI 助手的 AWS 基础设施:

使用以下命令将 代码库 克隆到您的本地桌面环境: bash git clone https//githubcom/awssamples/improvepublicspeakingskillsusingagenaibasedvirtualassistantwithamazonbedrockgit

切换到克隆后代码库的 app 目录: bash cd improvepublicspeakingskillsusingagenaibasedvirtualassistantwithamazonbedrock/app

创建 Python 虚拟环境: bash python3 m venv venv

激活虚拟环境: bash source venv/bin/activate

安装所需依赖: bash pip install r requirementstxt

可选地,使用 AWS CDK 合成 CloudFormation 模板: bash cdk synth

您可能需要执行一次性的 AWS CDK 引导,运行以下命令。有关详细信息,请参阅 AWS CDK 引导。

bashcdk bootstrap aws//ltACCOUNTNUMBERgt/ltREGIONgt
在您的 AWS 账户和选择的区域中部署 CloudFormation 模板: bash cdk deploy

成功部署 AWS CDK 后,请按照下一节的步骤创建一个 Amazon Cognito 用户。

创建 Amazon Cognito 用户以进行身份验证

完成以下步骤,在 Amazon Cognito 用户池中创建用户以访问网页门户。创建的用户无需 AWS 权限。

登录到您账户的 AWS 管理控制台,选择您的部署区域。在 Amazon Cognito 控制台中,在导航面板中选择 用户池。选择由 CloudFormation 模板创建的用户池。用户池名称应以 PSMBUserPool 为前缀,后接一串随机字符,连写成一个单词。选择 创建用户。

输入用户名和密码,然后选择 创建用户。

订阅 SNS 主题以获取电子邮件通知

完成以下步骤,订阅 SNS 主题以接收演讲建议的电子邮件通知:

登录到您账户的控制台,选择您的区域。在 Amazon SNS 控制台中,在导航面板中选择 主题。选择由 CloudFormation 模板创建的主题。主题名称应类似 InfraStackPublicSpeakingMentorAIAssistantTopic,后接一串随机字符,连写成一个单词。选择 创建订阅。

在 协议 处,选择 电子邮件。在 终端节点 处,输入您的电子邮件地址。选择 创建订阅。

运行 Streamlit 应用以访问网页门户

完成以下步骤,运行 Streamlit 应用程序以访问公共演讲导师 AI 助手网页门户:

切换到 app 目录中的 webapp 目录: bash cd webapp

在 8080 端口上启动 Streamlit 服务器: bash streamlit run webapppy serverport 8080

记录 Streamlit 应用程序的 URL,以便后续使用。根据您的环境设置,您可以选择从 Streamlit 服务器运行过程提供的三个 URL本地、网络或外部之一。

确保本地计算机的 8080 端口允许传入流量,以访问 Streamlit 应用程序 URL。

使用公共演讲导师 AI 助手

完成以下步骤,使用公共演讲导师 AI 助手提升演讲技巧:

在浏览器中打开您在前面步骤中记录的 Streamlit 应用程序 URL建议使用 Google Chrome。使用之前为身份验证创建的 Amazon Cognito 用户名和密码登录网页门户。

选择 浏览文件 找到并选择您的录音。选择 上传文件 将文件上传至 S3 桶。

一旦文件上传完成,公共演讲导师 AI 助手将处理音频转录和提示工程步骤,以生成演讲建议和重写结果。

处理完成后,您可以在网页上看到 演讲建议 和 演讲重写 部分,同时通过 Amazon SNS 通知收到电子邮件。

在网页的右侧,您可以回顾公共演讲导师 AI 助手所执行的处理步骤,以获取您的演讲结果。

清理

完成以下步骤以清理您的资源:

使用 CtrlC 关闭在环境中运行的 Streamlit 应用程序服务器进程。切换到您代码库的 app 目录。使用 AWS CDK 销毁与 AWS CloudFormation 创建的资源: bash cdk destroy

针对功能、准确性和成本进行优化

让我们对所提出的解决方案架构进行分析,以识别功能增强、准确性改进和成本优化的机会。

首先,在提示工程方面,我们的方案分析用户的演讲,基于多个标准,例如语言使用、语法错误、填充词和句子、单词的重复。个人和组织可以灵活地自定义提示,通过添加额外的分析参数或调整现有参数来使之符合需求和公司政策。同时,您可以设置 推理参数,以控制部署在 Amazon Bedrock 上的 LLM 的响应。

为了创建精简架构,我们主要选择无服务器技术,例如用于提示工程和自然语言生成的 Amazon Bedrock、用于语音转文本转换的 Amazon Transcribe、用于存储的 Amazon S3、用于协调的 Step Functions,以及用于可扩展事件处理的 EventBridge,和用于电子邮件通知的 Amazon SNS。无服务器技术使您可以在不配置或管理服务器的情况下运行解决方案,允许自动扩展和按需计费,从而节约成本并提高灵活性。

在网页门户组件中,我们目前在本地桌面环境中部署 Streamlit 应用程序。您也可以选择使用 Amazon S3 网站托管,这将进一步提升无服务器架构的效果。

为了提高音频到文本转换的准确性,建议您在安静的环境中录制演讲音频,避免噪音和干扰。

如果您的媒体包含特定领域或非标准术语,例如品牌名称、缩略语和技术用词,Amazon Transcribe 可能无法准确捕捉到这些术语的转录输出。为了应对转录的不准确性并根据特定用例自定义您的输出,您可以创建 自定义词汇表 和 自定义语言模型。

使用基于生成性 AI 的虚拟助手提升公共演讲技能 机器学习博客

撰写时,我们的解决方案仅分析音频部分。仅上传音频文件可以优化存储