开源语音助手_开源语音助手软件入门

开源语音助手

上一篇文章中 ,我介绍了Mycroft,并分享了有关开源语音助手项目的一些信息。 本文将帮助您开始了解有关关键术语,安装以及将Mycroft与设备配对的详细信息。 我的目的是增加官方文件 ; 虽然这些文档确实很棒,但是当我刚开始学习Mycroft时,我发现它们很难遵循,因此我希望能为您弥补其中的一些空白。

这个怎么运作

在进行安装和设置之前,我想介绍一些基础知识,以确保您在阅读文档时保持清晰。 Mycroft团队的这张图片在总结流程方面做得很好。

How Mycroft works

单击图像可缩放视图。 (©Mycroft AI,Inc.)

关键术语

以下是您在Mycroft生态系统中经常看到的一些术语。 其中一些信息来自Mycroft的白皮书“语音堆栈简介”

唤醒词

唤醒词是触发器,语音助理经过训练后会在您要发出命令时听到。 这也可以称为“热门词”。 唤醒词的常见示例是Hey SiriOK GoogleAlexa等。 语音助手一直在听其唤醒词。

Mycroft对于唤醒单词侦听器有两个选项:

  • Pocket Sphinx目前仅接受英语语言培训。 它使用CMU Flite声音词典来了解唤醒词。 这意味着您的唤醒词应使用英语以达到最佳效率。 这种方法的好处是它灵活且易于使用。 您可以选择在词典中找到的单词和声音的任意组合。 以我的经验,不利的一面是使触发器无法正常工作太容易或非常困难。 您可以使用一些选项来调整阈值或灵敏度,这会有所帮助。
  • 另一方面, 精确度被描述为对音频数据进行训练的神经网络。 此方法仅针对声音进行训练。 此选项最适合非英语母语人士。 这可能会有点费力,因为您必须对自己(可能还有其他人)进行大量录音,说出所选的唤醒词。 您还应该建立大量环境噪声,这些噪声对于您的环境是常见的,并且其中没有唤醒声音(单词)。 这样,Precise引擎可以更准确地确定什么是唤醒声音,什么不是唤醒声音。

发声

一旦设备“收听”命令,用户就会说出话语 。 这可能类似于“天气预报是什么?” 或“今天的比特币价格是多少?” 语音助手会记录语音内容。

语音到文本(STT)和文本到语音(TTS)

语音助手记录了语音后,便通过语音到文本(STT)处理器运行语音,以将音频转换为单词。 您可以想象,这是最关键的部分之一。 如果Mycroft对您的理解不正确,它将不会选择正确的技能 ,因此对于最终用户而言,它似乎是“愚蠢的”。

理想情况下,我希望能够在自己的网络上运行类似的操作,但是目前看来这是不切实际的。 尽管我可能会研究其他后端服务,例如来自IBM的那些后端服务,但现在代理我的数据已足够。

最终,语音助手响应用户的语音。 该层称为文本语音转换(TTS) ,本质上是STT层的反面,它将文本转换为语音。 有一个称为Mimic的本地选项。 如果Mycroft遇到问题,它既是主要选择,也是后备选择。

Mimic具有很强的机械感,但我在开发机器上使用它,因为它的响应速度比其他选项更快。 当我开发一项新技能时,速度对我而言比令人愉悦的声音更重要。

意向解析器

音频记录转换为文本后, 意图分析器将梳理文本以识别用户的意图,即用户希望语音助手执行什么命令。 Mycroft有两种不同类型的意图解析器:一种用于话语中标识的关键字,另一种基于神经网络对用户的意图进行“最佳猜测”。

意图分析器的工作是尝试使用可用于传递那些结果的技能来排列用户想要的内容。 Mycroft使用的两个解析器是Adapt和Padatious。

  • Adapt解析器是一种轻量级的解析器,可轻松用于嵌入式设备或资源有限的设备中。 它尝试解析STT输出并创建JSON或机器可读的数据结构。 它适用于必须处理少量话语的应用程序。 如果互联网连接受到限制或不可用,这是一个很好的选择。
  • Padatious在其网站上的描述相当不错:

Padatious是一种基于机器学习,基于神经网络的意图解析器。 与Adapt(使用少量独特词组)不同,Padatious在整个句子上受过训练。

Padatious与其他意图解析技术相比,具有许多关键优势。

  • 使用Padatious,可以轻松创建意图。
  • Padatious中的机器学习模型需要相对少量的数据。
  • 机器学习模型需要训练。 Padatious使用的模型易于训练。
  • 意图彼此独立运行。 这样可以快速安装新技能,而无需重新培训所有其他技能意图。
  • 使用Padatious,您可以轻松提取实体,然后将其用于技能。 例如,“查找最近的加油站”-> { "place":"gas station"}

技能专长

在意图分析器尝试识别出用户正在尝试实现的目标之后,下一步就是在了解这一点的基础上做一些事情。 如果理解正确,则意图分析器将尝试使用特定技能来匹配用户想要的内容。 技能是执行以实现所需结果的代码的集合。 例如,如果我告诉Mycroft将面包“添加到我的杂货店清单”,则将执行OurGroceries技能中的相应代码来处理该任务(如果意图已正确解析)。 该技能获取关键字“ 面包杂货店列表” ,并将其用作函数的参数,这些函数将名为“ 面包”的条目添加到名为“ 杂货店列表”的列表中

如果意图分析器找不到与话语匹配的技能,则语音助手通常会调用后备 。 当语音助手无法从发声中解释意图时,这是一项被称为“全面”的技能。 例如,它可以搜索互联网,而不是在本地运行代码。

安装Mycroft

很多方法可以启动和运行Mycroft。 Mycroft支持Docker和Linux,具有Raspberry Pi的映像(称为Picroft ),甚至还可以在Android上运行Mycroft。 对于开发,我发现遵循Linux安装路径是最容易的。 我目前正在多种设备上运行Mycroft:一台Raspberry Pi 4,一台拥有10年历史的Asus ROG笔记本电脑,原始的System76 Galago Pro和我的新款(戴尔)Dell Inspiron 5775(大约2017年)。 因此,如果您有硬件,Mycroft可能会在其上运行。

您的系统将需要在CPU中支持Advanced Vector Extensions 。 您的处理器可能会支持它,但是如果要确保运行此命令,请运行grep avx /proc/cpuinfo

为简单起见,我建议使用Ubuntu,Fedora或Arch Linux作为您的操作系统,因为它们是安装过程中最佳支持的版本。 首先,只需克隆Git存储库并启动dev_setup.sh脚本。 我将我的文件夹放在一个子文件夹中,其中存储了所有与Git相关的项目:


   
mkdir ~ / git_projects
cd ~ / git_projects
git clone https: // github.com / MycroftAI / mycroft-core.git
cd mycroft-core
bash dev_setup.sh

该脚本还将安装和配置virtualenv (用于创建隔离的Python环境的工具)。 这是将Mycroft与其他应用程序隔离的一种方法,有助于更好地管理依赖关系和安全性。 在此处此处了解有关虚拟环境的更多信息。

下载和构建所有依赖项可能需要一些时间。 在此过程中, pip软件包管理器和某些构建过程将安装Mycroft起作用所需的依赖项。 它还会提示您构建Mimic。 这不是严格必要的,但我强烈建议您这样做。

在设置过程中,请转到Mycroft帐户页面并注册一个帐户。 我知道你在想什么 我也注视着创建另一个帐户。 但是,我发现它很有用,特别是因为某些应用程序从此门户网站上从用户那里获取信息。 例如,在这里配置Home Assistant连接信息:

Mycroft Home Assistant configuration

(史蒂夫烤箱, CC BY-SA 4.0

该过程完成后,可以使用start-mycroft.sh脚本启动Mycroft服务:


   
./start-mycroft. sh all
Starting all mycroft-core services
Initializing...
Starting background service bus
Starting background service skills
Starting background service audio
Starting background service voice

日志文件位于/var/log/mycroft ,可用于调试。 Mycroft命令行界面(CLI)也非常有用,它可以进行一些实时调试以及键入输入而不是讲话。 要启动CLI,请运行mycroft-cli-client

配对设备

Mycroft完全启动后,您会听到读取配对代码的声音。 转到设备页面 并添加新设备。 在这里,您将能够输入配对代码,并选择设备的名称,设备在房屋中的位置,地理位置,要使用的语音以及内置的唤醒词之一:

Mycroft device configuration

(史蒂夫烤箱, CC BY-SA 4.0

如果您听不到配对代码,只需说“ 嘿Mycroft”,将我的设备配对 ,然后您就会在mycroft-client-cli看到输出,并听到它说的代码。

有很多高级的选项可以很好地处理代理和其他要求,但是我在这里不做介绍。

结语

现在,您可以使用可以运行其内置技能的Mycroft实例启动并运行。 乐于与Mycroft交谈,看看已有哪些技能以及默认情况下安装了哪些技能 。 探索生态系统是确定缺少什么并开始考虑如何解决它们的好方法。

翻译自: https://opensource.com/article/20/6/mycroft

开源语音助手