java怎么拦截某个对象
264
2022-11-05
基于Raspberry Pi语音助理设计(附代码)
此外,在与每个学科相关的细节工作中,在声学设计、音频工程、基于云的服务方面没有丰富经验的项目可能会面临严重延迟。
本文将介绍如何让每个套件投入运行,并展示每个套件如何随时利用语音助理技术。
快速 AVS 评估
图 1: 开发人员使用 XMOS xCORE VocalFusion 套件开始工作,将提供的麦克风阵列板(最左侧)和 XMOS 处理器板(中间)插入 Raspberry Pi 3 板(右侧)。(图片来源: XMOS)
将 RPi 3 连接到 USB 键盘、鼠标、监视器和互联网服务之后,下一步骤是从 SD 微型卡安装 Raspbian 操作系统,在 RPi 3 上打开端子,并克隆 XMOS VocalFusion 存储库。安装操作系统和存储库之后,只需运行位于克隆的 vocalfusion-avs-setup 目录下的 auto_install.sh。
安装脚本将配置 Raspberry Pi 音频系统及其与 xCORE VocalFusion 套件的连接,并在 Raspberry Pi 上安装和配置 AVS Device SDK。这个安装过程可能需要大约两个小时完成。
参考设计
虽然设置步骤简单,但 XMOS 套件中的硬件和软件组件的功能却非常复杂。该套件为开发人员提供了实现定制设计的全面参考设计。XMOS 套件的核心是 XMOS XVF3000-TQ128 器件,它提供了很高的处理能力(图 2)。
图 2: XMOS XVF3000-TQ128 器件集成了两个 xCORE Tile,每个 Tile 包含八个内核,以提供高性能音频处理。(图片来源: XMOS)
图 3: XMOS 套件的基板包括 XVF3000-TQ128 器件、DAC、缓冲器,以及用于连接 Raspberry Pi 3 板和外部扬声器的针座。(图片来源: XMOS)
图 4: XMOS VocalFusion 套件将基板和 Raspberry Pi 3 板上的 Alexa 功能分开,前者用于音频信号处理,后者用于语音识别和更高级别的 Alexa 服务。(图片来源: XMOS)
软件安装过程配置这些子系统并加载所需的软件包,包括 Sensory 的独立于扬声器的唤醒词引擎,以及 AVS 客户端软件等。
AVS 提供了一系列与高级功能(如语音识别、音频回放和音量控制)相关的接口。操作通过来自 AVS 的消息(指令)和来自客户端的消息(事件)进行。例如,为了响应某些条件,AVS 可能会向客户端发送指示,指示客户端应播放音频、设置闹钟或打开灯光。相反,来自客户端的事件可通知 AVS 发生了某些事件,例如来自用户的新语音请求。
图 5: Amazon AVS Device SDK 将 AVS 的广泛功能组织为单独的功能区域,每个功能区域都有自己的接口和库。(图片来源: AWS)
包含在 AVS Device SDK 中的完整样例应用程序展示了关键设计模式,包括创建设备客户端和唤醒词交互管理器(列表 1)除了全套的样例服务例程之外,该应用还显示了主程序如何只需要实例化样例应用程序对象 sampleApplication,并使用一个简单的命令来启动它: sampleApplication->run().
列表 1: 开发人员可以使用 AVS Device SDK C++ 样例应用程序来扩展设备 AVS 客户端,AVS Device SDK C++ 样例应用程序演示了用于创建 AVS 客户端、唤醒词交互管理器和用户输入管理器等的关键设计模式。(列表来源: AWS)
Google 助理快速原型
图 6: 开发人员可将 Raspberry Pi 3 与 Seeed Technology 的 Google AIY 语音套件配合使用(它提供了构建原型所需的组件),从而快速创建 Google 助理应用。(图片来源: Google)
除了 Seeed Voice HAT 扩展板(图 6 中的 1)、麦克风板 (2) 和扬声器 (4) 之外,套件还包括纸板外壳 (8) 和内部框架 (9),以及一些基本组件,包括支座 (3)、电缆(6 和 7)和按钮 (5)。
开发人员首先将 RPi 3、扬声器电线、麦克风电缆连接到语音 HAT,然后组装套件。与 AVS 套件不同,Google 套件提供了一个简单的外壳和内部框架,用于固定电路板组件和扬声器(图 7)。
图 7: Seeed Google AIY 语音套件包括一个内部纸板框架,开发人员将其折叠成为电路板组件的载体。(图片来源: Seeed Technology)
框架安装在支撑按钮和麦克风阵列的外壳内,完成装配(图 8)。
图 8: 除了固定内部框架和扬声器之外,Seey Google AIY 语音套件的外壳还包括按钮和麦克风(看起来像外壳顶部的两个孔)。(图片来源: Seeed Technology)
定制 Google 助理器件
使用 Seeed Google AIY 语音套件进行自定义开发,可以充分利用 Raspberry Pi 的灵活性。Seeed Voice HAT 引出了多个已经为典型 IO 功能配置的 RPi 3 GPIO(图 9)。
图 9: 开发人员可以使用 Seeed Voice HAT 扩展板上引出的 I/O 端口,快速扩展 Seeed Google AIY 语音套件的硬件功能。(图片来源: Raspberry Pi)
在软件方面,开发人员可以使用 Google 的语音套件 API 软件,轻松扩展套件的基准功能。除了支持软件和实用程序之外,该软件包还包含样例应用程序软件,演示了通过 Google Cloud Speech API 和 Google Assistant SDK 实施语音服务的多种方法。
云语音服务与智能助理方法截然不同,它提供了语音识别功能,将实现特定语音启动操作的任务留给了程序员。对于只需要语音输入功能的设计,该服务提供了一个简单的解决方案。开发人员只需将音频传递到云语音服务,即可将语音转换为文本,并返回识别的文本,如语音套件 API 中包含的样例 Python 脚本所示(列表 2)。
列表 2: 在 Google 语音套件 API 提供的软件例程中,样例程序的这个片段演示了如何使用 Google Cloud Speech 服务,将语音转换为文本,并将实现任何语音指导操作的任务留给了程序员。(列表来源: Google)
对于需要 Google 助理的更广泛功能的开发人员,Google Assistant SDK 提供了两个实施选项: Google Assistant Library 和 Google Assistant Service。
基于 Python 的 Google Assistant Library 提供了一种在原型中快速实施 Google Assistant 的入门方法,例如在 Seeed 语音套件中。使用这种方法,原型可以即时利用基本的 Google 助理服务,包括音频捕获、对话管理和定时器。
与 Cloud Speech 方法相反,Google Assistant Library 通过将每个对话处理为一系列与对话和发声状态相关的事件来管理对话。语音识别完成后,实例化的助理对象将提供事件对象,其中包括了适当的处理结果。如另一个 Google 样例脚本所示,开发人员使用特征事件处理设计模式和一系列的 if/else 语句来处理预期的事件结果(列表 3)。
列表 3: 如 Google Voice 套件中的样例所示,使用 Google Assistant Library 的应用程序中的主循环启动一个助理对象,然后生成一系列事件,由开发人员的代码处理。(图片来源: Google)
在将 Google Assistant SDK 用于自己的设计时,设计人员可以使用 Google 的器件匹配功能,实现特定于硬件的功能。作为器件设置的一部分,开发人员提供关于定制器件的信息,包括功能和特性,称为特质。对于涉及到定制器件的用户语音请求,服务会识别器件的有效特质,并为器件生成适当的响应(图 10)。开发人员只需在器件的事件处理程序中包括与器件特质相关的对应代码(例如列表 3 中的 def power_off_pi())。
图 10: Google Assistant SDK 使用自动语音识别 (ASR) 和自然语言处理 (NLP) 服务,将用户请求与特定设备进行匹配,并发出与定制设备及其认可特质一致的响应。(图片来源: Google)
总结
过去,智能语音助理在很大程度上是主流开发人员无法实现的。随着两个现成套件的推出,开发人员可以在定制设计中快速实施 Amazon Alexa 和 Google 助理。每个套件都允许开发人员在基本原型中快速调用相应的智能助理,或者使用定制的硬件和软件来扩展设计。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~