查看类别

语音识别 – Scratch 的语音控制

🎤 语音识别 – Scratch 的语音控制 #

语音识别扩展程序为 Scratch 带来了真正的语音控制功能。
它能捕捉语音并将其转换为文本,从而实现语音命令、听写、语言学习项目和交互式语音控制游戏 — 所有操作均可在浏览器中实时完成。它既
简单易用,适合初学者,又功能强大,足以满足创意课堂的需求。


🌟 概述 #

  • 语音转文字: 捕捉语音并将其用于 Scratch 项目中。
  • 支持多种语言: 可识别 25 种以上语言的语音,包括英语、西班牙语、法语、德语、阿拉伯语、波斯语、中文、日语、韩语等。
  • 实时识别: 即时转录语音。
  • 轻松集成: 使用简单的模块即可开始监听并检索识别出的文本。
  • 数字转换: 将波斯语/阿拉伯语数字转换为英语数字,以便于处理。
  • 基于浏览器: 可在 Chrome、Microsoft Edge 以及大多数支持 Web Speech API 的 Chromium 内核浏览器中使用。

✨ 主要特点 #

  • 支持 25 种以上语言,每种语言均有多个区域变体。
  • 内置浏览器语音识别 API(Web Speech API)。
  • 用于同步语音捕获的简单监听等待命令。
  • 为多语言项目提供即时语言切换功能。
  • 直接通过浏览器运行 - 快速响应。
  • 无需设置或 API 密钥 – 可与浏览器内置 API 自动配合使用。

🚀 如何使用 #

  1. 前往: pishi.ai/play
  2. 打开扩展程序部分。
  3. 选择语音识别扩展程序。
  4. 当浏览器提示时,请允许访问麦克风。
  5. 设置语言: 使用“设置语言为 [LANGUAGE]”块选择您想要的语言(默认为英语)。
  6. 开始监听: 使用“监听并等待”模块 - 该扩展程序将开始监听您的麦克风并等待您说话。
  7. 检索语音: 说话后,识别出的文本将被存储,并可以使用“语音”报告器模块进行检索。
  8. 项目应用: 与其他模块组合,创建语音控制游戏、听写工具、语言学习活动等等!

尖端

  • 为了获得最佳识别准确率,请清晰、正常语速地说话。
  • 使用安静的环境以最大程度地减少背景噪音干扰。
  • 对于使用非英语数字的语言(阿拉伯语/波斯语),请使用“将波斯语/阿拉伯语数字转换为英语”模块来规范数字。
  • 在 Chrome、Edge 和其他支持 Web Speech API 的基于 Chromium 的浏览器中效果最佳。

🧱 积木和函数 #

 

🎤 语音采集 #

听候语音输入

开始监听麦克风并等待识别语音输入。
这是一个阻塞命令 - 脚本将暂停,直到检测到语音并进行转录,或直到发生超时/错误(大约 60 秒)。

工作原理:

  • 当此代码块运行时,浏览器将开始通过麦克风监听。
  • 请清晰地说话- 识别系统会将您说的话转录下来。
  • 语音识别完成后,文本将被保存,该模块即完成。
  • 如果没有检测到语音或发生错误,该代码块将以空结果完成。

重要提示: 请确保已在浏览器设置中启用麦克风权限。

语音输入

报告“监听并等待”模块捕获到的最后一个识别出的语音文本。
返回转录文本字符串,如果未识别出语音或发生错误,则返回空字符串。

例如:

  • 如果你说“hello scratch”,这个模块就会报告“hello scratch”。
  • 使用此模块可以显示识别的语音、比较单词、触发操作或将语音存储在变量中。
置信度

报告语音识别系统对上次识别结果的置信度,数值介于 0 和 1 之间(1 表示 100% 置信度)。
如果尚未识别出任何结果,或者结果没有置信度,则返回空字符串。

注意: 并非所有浏览器都会显示置信度值。谷歌浏览器会稳定返回置信度值;其他浏览器即使识别成功,也可能始终显示空字符串。

工作原理:

  • “监听并等待”完成后,该模块会返回一个十进制数,例如 0.92(表示 92% 的置信度)。
  • 数值越高,表示浏览器对听到的内容越有把握。
  • 较低的置信度评分可能暗示您应该要求用户重复一遍或说得更清楚一些。

例如:

  • 使用“if”块进行检查:如果(置信度)> 0.8,则接受答案;否则,要求用户重试。
  • 在构建和测试项目时,在屏幕上显示置信度值,以了解识别质量。
实时语音输入

在语音识别仍在进行中时(最终结果尚未确定),系统会报告当前的临时转录文本。它
会随着您的语音持续更新,让您实时预览浏览器正在识别的内容。

工作原理:

  • 当“监听并等待”功能运行且您正在说话时,此代码块反映了浏览器目前为止的最佳猜测。
  • 随着识别过程处理每个音节或单词,该值会迅速变化。
  • 识别完成后,“语音”保存最终确认的文本,“实时语音”保存最后的临时文本。

例如:

  • 在你的角色精灵的对话框里显示“实时语音”,这样观众就可以在你说话的时候实时看到文字出现。
  • 使用它可以为您的项目构建实时字幕或提词器式效果。

提示 - 使用“下一个词”功能处理语音命令: 对于需要对单个语音词做出反应的项目(例如,玩家说出“跳”、“左”或“开火”),“下一个词”模块比直接轮询“实时语音”更实用。请参见下文。

下一个词 [MODE|rect]

从选定的队列中出队并返回下一个单词,如果队列为空,则返回空字符串。
MODE选择实时(临时、实时)或最终(已确认的笔录)。

工作原理:

  • 在“监听并等待”期间,浏览器每次更新的转录文本都会与之前统计的字数进行比较;任何新添加的字数都会被添加到实时队列中。当浏览器提交最终结果时,最终转录文本中的所有字数会一次性添加到最终队列中。
  • 每次脚本读取此代码块时,都会从选定的队列中原子地移除并返回最旧的等待字。
  • 如果在你的脚本读取之前有多个单词到达,它们都会在队列中等待 - 不会丢失任何单词。
  • 实时队列: 不会自动清空。之前“监听并等待”会话中的单词会一直保留,直到您的脚本读取它们为止。队列最多可容纳 200 个单词;如果队列已满,则会删除最早的未读取单词,以便为新单词腾出空间。
  • 最终队列: 每次开始新的“监听和等待”时都会自动清除,因此只会返回当前会话中的单词。
  • 当所选队列为空时,返回空队列。

实时数据与最终数据 - 应该使用哪个?

  • 实时 - 单词响应速度更快(在你说话的同时),更适合实时游戏和快速指令。由于浏览器会在单词输入过程中不断调整猜测,因此偶尔会出现一些修正痕迹。
  • 最终文本 - 只有在浏览器的语言模型完成完整的转录后,单词才会被提交。这种方式更准确,但到达时间较晚(在你停止说话之后)。每次新的“监听并等待”操作都会重置最终队列,因此不会有来自先前会话的过时单词延续到下一次。

典型用途 - 语音控制游戏:

  • 在一个脚本中运行“监听并等待”(在用户说话时保持活动状态)。
  • 在一个单独的无限循环中,每帧读取“下一个词[live]”,并按顺序对每个命令做出反应。

注意 - 重复的词语可能会被多计数: Chrome 的最终识别过程会使用语言模型重新分析完整的音频,而对于重复的相同词语,其声学边界并不明确 - 模型有时会额外添加一个实例(例如,说三次“everybody”可能会产生四次)。这是浏览器本身的行为,扩展程序无法纠正。为了避免这种情况:请使用简短且发音清晰的命令词(例如“jump”、“left”、“fire”)。


🌍 语言设置 #

将朗读语言设置为 [LANGUAGE]

设置语音识别语言。
LANGUAGE:从下拉菜单中选择 25 种以上受支持的语言和地区变体。

支持的语言:

  • 阿拉伯 (العربية)
  • 波斯语 (فارسی)
  • 英语(English)
  • 英语 – 美式英语 (en-US)
  • 英语 – 英国英语 (en-GB)
  • 德语(Deutsch)
  • 西班牙语 – 西班牙 (Español)
  • 西班牙语 – 拉丁美洲 (Español Latinoamericano)
  • 法语(Français)
  • 意大利语(Italiano)
  • 葡萄牙语(Português)
  • 葡萄牙语 – 巴西 (Português Brasileiro)
  • 俄语(Русский)
  • 土耳其语(Türkçe)
  • 乌克兰语 (Українська)
  • 韩语 (한국어)
  • 日语(日本语)
  • 简体中文 (简体中文)
  • 繁体中文(繁体中文)
  • 印地语(हिंदी)
  • 孟加拉语 (বাংলা)
  • 印尼语(Bahasa Indonesia)
  • 阿塞拜疆语 (Azəri)
  • 哈萨克语 (Қазақша)
  • 乌兹别克语(Oʻzbekcha)

注意: 部分语言可能在 Chrome 浏览器中受支持,但在其他浏览器中不受支持。
例如,波斯语 (فارسی) 目前在 Google Chrome 浏览器中可以正常使用,但在 Microsoft Edge 浏览器中可能会显示“网络”错误。
如果某种语言无法识别语音,请先尝试在 Chrome 浏览器中进行测试。

 

示例用法:

  • 创建可在不同语言间切换的多语言项目。
  • 开发能够识别不同语言单词的语言学习工具。
  • 让多种语言使用者都能玩语音控制游戏。

🔢 数字转换 #

将波斯语/阿拉伯数字转换为英文数字

将识别出的语音文本中的波斯语 (۰-۹) 或阿拉伯语 (٠-٩) 数字转换为英语数字 (0-9)。
这对于需要处理波斯语或阿拉伯语数字的项目非常有用,使这些数字更易于在数学运算或比较中使用。

工作原理:

  • 自动检测波斯数字(۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹)并将其转换为(0 1 2 3 4 5 6 7 8 9)。
  • 自动检测阿拉伯-印度数字(٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩)并将其转换为(0 1 2 3 4 5 6 7 8 9)。
  • 转换后的文本将替换原始语音文本 - 如果需要,请在“监听并等待”之后调用此代码块。

例如:
如果识别出的语音是“شماره ۱۲۳”(波斯语数字 123),转换后语音文本变为“شماره 123”(英文数字)。

提示: 在处理波斯语或阿拉伯语语音时,请使用此模块以确保数字格式便于 Scratch 进行计算。


🎓 教育用途 #

  • 语言学习: 创建发音练习工具 - 学生说出单词,系统检查他们的发音。
  • 构建能够对口语回答做出反应的词汇测验。
  • 开发多语言故事讲述项目,让角色对不同语言的语音指令做出反应。
  • 教授无障碍概念 - 展示语音控制如何帮助残障人士与技术互动。
  • 探索自然语言处理 - 学生将学习机器如何理解人类语言。
  • 创建语音控制游戏和模拟场景,以便在实际情境中练习语言技能。
  • 构建用于写作练习和创意故事创作的语音输入工具。

🎮 示例项目 #

  • 语音指令游戏: 说“左”、“右”、“跳”来控制角色。
  • 魔法8号球: 大声提出问题 - 精灵会给出答案。
  • 语音计算器: 说出数学问题,例如“5加3等于多少” - 小精灵会显示答案。
  • 语言测验: Sprite 问“西班牙语怎么说你好?” - 学生用语音回答。
  • 故事创作器: 口述故事,即可在屏幕上观看故事的呈现。
  • 颜色选择器: 说出颜色名称,精灵就会变成该颜色。
  • 多语言迎宾员: 向虚拟宠物发出“坐下”、“玩耍”、“睡觉”等语音指令。
  • 多语言迎宾员: 使用不同的语言进行交流 - 精灵会检测语言并做出相应的回应。

🧩 自己试试: pishi.ai/play


🔧 提示和故障排除 #

 

🎤 语音识别具体技巧 #

  • 麦克风无法工作? 请检查浏览器权限 - 确保该网站拥有麦克风访问权限。
  • 语音识别不准确? 请清晰说话并降低背景噪音。使用耳机或外接麦克风可获得更佳音质。
  • 检测到语言错误? 请确保在收听前使用“set language to [LANGUAGE]”设置正确的语言。
  • 出现“不支持语音识别”错误? 此扩展程序需要 Chrome、Edge 或其他基于 Chromium 内核且支持 Web Speech API 的浏览器。Safari 和 Firefox 的支持有限或完全不支持。
  • 浏览器中语言显示不正常? 某些语言(例如波斯语)可能在 Edge 或其他浏览器中不受支持。为了获得最佳兼容性,请尝试使用 Chrome 浏览器。
  • 超时还是未检测到语音? 系统会等待大约 60 秒以检测语音 - 如果未检测到任何语音,则会超时并返回空文本。
  • 数字显示不正确? 对于波斯语或阿拉伯语语音,请使用数字转换模块对数字进行规范化处理。
  • 识别质量会有差异吗? 语音识别准确率取决于口音、发音和语音清晰度 - 不同用户的识别结果可能有所不同。
  • 重复出现的词语出现次数超过实际发音次数? 这是浏览器的已知行为。Chrome 的最终识别过程会使用语言模型重新分析完整的音频,而对于重复出现的相同词语,声学边界并不清晰 - 模型有时会额外添加一个实例。请使用简短、清晰的指令词,并避免在游戏中重复使用同一个词。
  • 互联网连接: Web Speech API 使用 Google 的云服务来支持大多数语言 - 需要互联网连接才能进行识别。
  • 您可以随时通过停止脚本或重新加载项目来停止识别。

🔒 隐私与安全 #

  • 此扩展程序使用浏览器的内置 Web Speech API,可能会将音频发送到 Google 服务器进行处理(取决于浏览器的实现方式)。
  • 音频仅用于转录 - 语音文本将返回到您的浏览器,而不会被此扩展程序存储。
  • 音频由您的浏览器使用 Web Speech API 进行处理 - Pishi.ai 和 Scratch 绝不会接收或存储任何数据。
  • Pishi.ai 或 Scratch 不会保存或传输任何个人数据或语音录音。
  • 请务必检查浏览器的隐私设置和麦克风访问权限。

🧪 技术信息 #

  • API: Web Speech API (SpeechRecognition / webkitSpeechRecognition)
  • 支持的浏览器: Chrome、Edge 以及大多数支持 Web Speech API 的基于 Chromium 的浏览器
  • 语言: 25种以上语言及地区变体
  • 超时时间: 每次“监听并等待”呼叫大约需要 60 秒的监听时间
  • 识别模式: 单次识别(每次监听通话识别一个语音;不支持连续模式)
  • 中期结果: 已启用 - 在语音输入过程中实时更新“实时语音”功能
  • 置信度评分: 由浏览器提供,数值为 0 到 1 之间的十进制数;识别结束后可通过“置信度”报告器查看。
  • 需要联网: 是 - Web Speech API 通常使用基于云的处理进行转录。
  • 数字转换: 支持波斯语(۰-۹)和阿拉伯语-印度语(٠-٩)到英语(0-9)的转换
  • 隐私: 音频由浏览器 API 处理 - Pishi.ai Scratch 绝不会存储您的语音。

🔗 相关扩展 #

  • 🔊 文字朗读 - 将文本转换为语音
  • 💬 ChatGPT - 生成智能回复、进行对话或构建能够理解并回应您声音的聊天机器人。
  • 🌐 翻译 - 将识别出的语音翻译成其他语言,用于多语言项目或实时口译。
  • 🏫 Google 可训练机器 - 使用您自己的训练模型来识别在 Google Teachable Machine 中创建的声音、图像或姿势。

📚 了解更多 #


滚动至顶部