Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • CreatiCode
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

CreatiCode Scratch Forum

  1. CreatiCode Forum
  2. 知识库
  3. 小教程
  4. AI - 会看和说的AI助手(难度:2)

AI - 会看和说的AI助手(难度:2)

Scheduled Pinned Locked Moved 小教程
1 Posts 1 Posters 995 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • CreatiCodeI Offline
    CreatiCodeI Offline
    CreatiCode
    wrote on last edited by admin
    #1

    简介

    像 ChatGPT 这样的大型语言模型通常是“多模态”的,这意味着它们不仅可以用文字与我们聊天,还可以理解图像。这非常有用,因为在许多情况下,用图片描述我们的需求比用文字更容易。

    在本教程中,你将构建一个能看能说的 AI 助手。要使用它,用户只需使用相机拍照,然后就可以向 AI 助手询问有关该图片的任何问题。

    448b6d33-2ead-4e45-8773-cc0881336bd5-image.png

     
     

    步骤 1 - 创建一个新项目

     

    在 CreatiCode.com 上,登录并创建一个新项目。删除小狗角色,并将项目重命名为“AI 助手”。

     
     

    步骤 2 - 搜索或生成一个背景

     

    当项目开始时,我们将向用户展示一个漂亮的背景,以表明这是一个 AI 助手。

    切换到舞台并尝试添加一个新的背景。例如,如果你搜索“一个乐于助人的 AI 助手”,你可以找到许多有趣的背景可供选择:

    b2b538a9-48e3-480c-b4f4-e8e4db00b7d7-image.png

     
    你还可以根据自己的想法生成一个新的背景。例如,假设我们希望这个助手被用作导游,那么我们可以使用一个详细的描述来生成背景,例如:

    一个机器人导游面向观众,双臂张开,站在一个历史遗迹前,卡通风格
    

    我们将得到一个像这样的新背景:

    alt text

     
     

    步骤 3 - 当绿旗被点击时显示 2 个按钮

     

    现在切换到空的角色并添加代码以显示 2 个按钮,这将允许用户选择一个摄像头。前置摄像头通常在触摸板或 Chromebook 上可用,而后置摄像头通常在 iPad 或智能手机上可用。

    6b93ef86-699b-4461-93d8-9dc7dbfb28b9-image.png

     
    你可以使用以下代码:

    92fe6a32-0f07-4d2c-9ced-bdab9f8d1879-image.png

     
     

    步骤 4 - 显示摄像头预览

     

    当任一按钮被点击时,我们需要显示来自摄像头的视图,以便用户可以瞄准物体或地点。唯一的区别是显示“前置”还是“后置”摄像头。由于只会点击其中一个按钮,因此在两种情况下我们都可以将摄像头小组件称为“camera1”。

    0ede859c-0d0f-49c5-8093-825d2e2a97d4-image.png

     
     

    步骤 5 - 准备拍照

     

    除了显示摄像头预览之外,我们还需要做一些其他工作来准备拍照。由于无论使用哪个摄像头,工作都是相同的,因此我们可以在一个新的自定义积木“准备拍照”中定义常见的工作:

    8deb6639-60a8-497a-b4f7-fe4897bd642b-image.png

     
    在该新积木的定义中,我们将添加更多积木来删除现有的按钮(button1 和 button2),并添加第三个按钮来拍照:

    ce8bd9ac-6500-4a4c-88ec-2d9649616ecf-image.png

     
    它将看起来像这样(假设我们要拍一张 U 盘的照片):

    6cbf3772-ae0f-41b7-a5ed-47722983390d-image.png

     
     

    步骤 6 - 拍照并显示它

     

    当用户点击“拍照”按钮时,我们将把当前的摄像头视图保存为名为“c”的造型图像并将其显示给用户:

    500a1014-6d75-4f29-bb07-0248f5b5ad1a-image.png

    31dd923b-69e8-4462-a8d1-dc8fbe0f545d-image.png

    这样,摄像头预览和 button3 都将被删除,我们将只显示新捕获的造型图像。

     
     

    步骤 7 - 为用户提问做准备

     

    接下来,在下面添加更多的新积木。它们将添加一个新按钮,该按钮将启用语音识别,以便用户可以提问。这比要求用户输入问题要方便得多,尤其是在移动设备上。我们还将添加一个文本框来显示我们识别的问题。文本框的背景透明度为 30%,以便用户仍然可以看到他们拍摄的照片。

    3e36e3a2-82c6-4334-8ce3-4deb6a98d7e4-image.png

    例如,它将看起来像这样:

    6d2508ce-6e56-479b-ad1d-ea953ee611cb-image.png

     
     

    步骤 8 - 识别用户问题

     

    当用户点击“提问”时,我们将启用语音识别并允许用户说话最多 8 秒钟。这对于大多数问题来说应该足够长了,但你可以将时间长度更改为更短或更长。然后,我们将在文本框中将识别的文本显示为一个问题:

    3249a6ef-db5c-49fe-b819-dd234954bd6b-image.png

     
    你还可以使用“连续语音识别”,并在用户说完一整句话时停止识别。为了简单起见,我们将只使用基于时间的截止时间。

    要测试它,请点击“提问”按钮,然后说出你的问题,例如“这是什么?”,然后它将被识别并显示在文本框中:

    9e6a4111-0c02-42e2-bcd6-ba9155e7e12c-image.png

     
     

    步骤 9 - 向 ChatGPT 询问有关此图片的问题

     

    现在我们终于准备好让 ChatGPT 根据图片回答用户的问题了。它实际上需要 2 个协同工作的积木:

    fca5b179-ca34-4296-8ff6-13d546c30698-image.png

    1. 将造型图像附加到聊天:此步骤不会将图像发送到 ChatGPT。它只将图像存储为聊天的一部分。你可以将多个图像附加到一个聊天会话,但对于这个项目,我们只需要附加一个图像。

    2. 向 ChatGPT 发送聊天消息:此积木会将提示与上面附加的图像一起发送出去。我们将使用一个简单的提示:“口头回答,50 字以内:\n”。关键字“口头”确保 ChatGPT 的回答是对话式的,而不是太正式。我们还将它限制在 50 字以内,以避免冗长的回答。

    在这 2 个积木运行后,ChatGPT 的回答将存储在变量“结果”中。

     
     

    步骤 10 - 显示并说出答案

     

    我们不仅会在文本框中显示答案,还会将其转换为语音。这样,用户大部分时间都可以听答案,如果他们错过了一些细节,他们只需要阅读文本。

    12782a50-c239-45ec-82e4-0dff8ee2d06c-image.png

     
    答案将看起来像这样:

    b3ee2f44-e4e1-4720-a50a-622a83a559dd-image.png

     
     

    额外挑战

     

    这个项目演示了如何将许多有用的 AI 工具组合到一个简单的应用程序中,但它被有意地保持简单。以下是一些你可以探索以进一步增强此工具的想法:

    • 处理后续问题:允许用户提出更多问题。你需要确保每次都不会再次添加造型图像。此外,请确保 ChatGPT 处于“继续”模式,以便它具有之前问题的上下文。

    • 避免固定的等待时间:你可以自动检测用户是否已完成提问,而不是总是等待 8 秒钟。或者,你也可以使用 2 个按钮:点击一个按钮开始语音识别,点击另一个按钮停止它。

    • 将其翻译成另一种语言:如果你的母语不是英语,你可以将该工具更改为你的母语。

    • 自定义提示:当前的提示非常简短且通用。假设你想将此工具更改为“家庭作业助手”,那么你可能需要在提示中添加更多说明。例如,你可能想告诉 ChatGPT 它应该只提供提示,而绝不直接透露答案。

    1 Reply Last reply
    0
    • CreatiCodeI CreatiCode pinned this topic on

    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

    With your input, this post could be even better 💗

    Register Login
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • CreatiCode