自然语言处理Live Transcribe Speech Engine、柏拉图(Plato)介绍

以下为你介绍的自然语言处理软件都可用在Linux系统上:Live Transcribe Speech Engine(实时语音转录引擎)、Plato Research Dialogue System(柏拉图Plato,创建、训练和部署会话 AI 代理)。

1、Live Transcribe Speech Engine(实时语音转录引擎)

自然语言处理Live Transcribe Speech Engine、柏拉图(Plato)介绍

Live Transcribe 是一款 Android 应用程序,可为失聪或有听力障碍的人提供实时字幕。此存储库包含用于与 Live Transcribe 中使用的 Google Cloud Speech API 进行通信的 Android 客户端库。

自动语音识别(ASR)模块具有以下功能:

1]、无限流媒体。

2]、支持 70 多种语言。

3]、文字不会丢失,只会延迟。

4]、即使网络已经停电数小时,也会重新连接。当然,没有连接就不能进行语音识别。

5]、可以轻松启用和配置 Opus、AMR-WB、FLAC 编码。

6]、包含文本格式库,用于可视化 ASR 置信度、发言人 ID 等。

7]、可离线模型扩展。

8]、内置支持语音检测器,可在延长静音期间用于停止 ASR 以节省资金和数据(请注意,未提供语音检测器实现)。

9]、内置支持扬声器识别,可根据扬声器编号标记或着色文本(请注意,未提供扬声器识别实现)。

提供的库几乎与生产应用程序 Live Transcribe 中运行的库相同。它们经过了广泛的现场测试和单元测试。但是,测试本身目前尚未开源。

要使用我们的示例Android应用程序试用该库,请按照以下说明进行操作。这些说明假定主机操作系统是Linux。

我们还提供了APK,以便您无需构建任何代码即可试用该库。

无论您使用的是我们的代码还是示例APK,都需要一个API密钥。在示例APK中,您可以将API密钥复制/粘贴到弹出对话框中。

要求:CMake,Gradle,Android SDK/NDK

(1)导出您的Android SDK的路径,NDK假定位于:

$ANDROID_SDK_PATH/ndk-bundle [Android NDK](https://developer.android.com/ndk/guides)

export ANDROID_SDK_PATH="/wherever/your/sdk/is"

(2)构建APK(位置为app/build/outputs/apk/):

./build_all.sh

下载地址:https://github.com/google/live-transcribe-speech-engine

2、Plato Research Dialogue System(柏拉图Plato,创建、训练和部署会话 AI 代理)

自然语言处理Live Transcribe Speech Engine、柏拉图(Plato)介绍

柏拉图(Plato)研究对话系统是一个灵活的框架,可用于在各种环境中创建、训练和测试会话 AI 代理。它支持通过语音、文本或对话行为进行交互,每个会话代理可以与数据、人类用户或其他会话代理进行交互(在多代理设置中)。每个代理商的每个组成部分都可以在线或离线独立培训,只要遵守 Plato 的界面,Plato 就可以轻松地绕过几乎任何现有的模型。

柏拉图(Plato)研究对话系统如何运作?

从概念上讲,会话代理需要经过各种步骤才能处理它作为输入接收的信息(例如,“今天天气如何?”)并产生适当的输出(“有风但不太冷”。)。与标准体系结构的主要组件(参见下图)相对应的主要步骤是:

语音识别(将语音转录为文本)。

语言理解(从该文本中提取意义)。

状态跟踪(到目前为止已经说过和完成的内容的汇总信息)。

API 调用(搜索数据库,查询 API 等)。

对话策略(生成代理人回应的抽象含义)。

语言生成(将抽象意义转换为文本)。

语音合成(将文本转换为语音)。

Plato 的设计尽可能模块化和灵活,它支持传统和自定义会话 AI 架构,重要的是,支持多方交互,其中多个代理可能具有不同的角色,可以相互交互,同时训练和解决分布式问题。

下面的图描述了与人类用户和模拟用户交互时的示例 Plato 对话代理体系结构。与模拟用户交互是研究社区中用于快速开始学习的常见做法(即,在与人类交互之前学习一些基本行为)。每个单独的组件都可以使用任何机器学习库(例如,Ludwig、 TensorFlow、PyTorch、用户自己的实现)在线或离线进行培训,因为 Plato 是一个通用框架。Uber 的开源深度学习工具箱 Ludwig 是一个很好的选择,因为它不需要编写代码并且与 Plato 完全兼容。

自然语言处理Live Transcribe Speech Engine、柏拉图(Plato)介绍

Plato 的模块化架构意味着任何组件都可以在线或离线进行培训,可以通过自定义或预先训练的模型进行替换。(此图中的灰色组件不是核心 Plato 组件。)

自然语言处理Live Transcribe Speech Engine、柏拉图(Plato)介绍

使用模拟用户而不是人类用户,如上面的图所示(上上面的截图,右下边有Human User标识的图),我们可以预先训练 Plato 各种组件的统计模型。然后,这些可以用于创建原型会话代理,该代理可以与人类用户交互以收集更多自然数据,这些数据随后可用于训练更好的统计模型。(此图中的灰色组件不是 Plato 核心组件。)

除了单代理交互之外,Plato 还支持多代理对话,其中多个 Plato 代理可以相互交互并相互学习。具体来说,Plato 将产生会话代理,确保输入和输出(每个代理听到和说出的内容)被适当地传递给每个代理,并跟踪对话。

这种设置可以促进多代理学习的研究,其中代理需要学习如何生成语言以执行任务,以及研究多方交互的子领域(对话状态跟踪,轮流等)。 对话原则定义了每个代理可以理解的内容(实体或含义的本体,例如:价格,位置,偏好,烹饪类型等)以及它可以做什么(询问更多信息,提供一些信息,调用 API)等)。代理可以通过语音,文本或结构化信息(对话行为)进行通信,并且每个代理都有自己的配置。下面的图描述了这种架构,概述了两个代理和各种组件之间的通信:

自然语言处理Live Transcribe Speech Engine、柏拉图(Plato)介绍

Plato 的架构允许对多个代理进行并发培训,每个代理具有可能不同的角色和目标,并且可以促进多方交互和多代理学习等领域的研究。(此图中的灰色组件不是核心 Plato 组件。)

最后,Plato 通过下图所示的通用代理体系结构支持自定义体系结构(例如,将 NLU 分成多个独立组件)和联合训练的组件(例如,文本到对话状态,文本到文本或任何其他组合)。此模式远离标准会话代理体系结构并支持任何类型的体系结构(例如,使用联合组件,文本到文本或语音到语音组件,或任何其他设置)并允许加载现有或预先训练有素的模型进入 Plato。

自然语言处理Live Transcribe Speech Engine、柏拉图(Plato)介绍

Plato 的通用代理体系结构支持广泛的自定义,包括联合组件,语音到语音组件和文本到文本组件,所有这些组件都可以串行或并行执行。

用户可以通过简单地提供该类模块的 Python 类名和包路径以及模型的初始化参数来定义自己的体系结构和/或将自己的组件插入到 Plato 中。用户需要做的就是按照应该执行的顺序列出模块,Plato 负责其余部分,包括包装输入/输出,链接模块和处理对话。Plato 支持模块的串行和并行执行。

Plato 还通过组合结构的贝叶斯优化(BOCS)为对话 AI 架构或单个模块参数的贝叶斯优化提供支持。

安装:

1]、克隆此存储库:

git clone git@github.com:uber-research/plato-research-dialogue-system.git

2]、安装要求:

对于 MacOS:

brew install portaudio

pip install -r requirements.txt

对于 Ubuntu/Debian:

sudo apt-get install python3-pyaudio

pip install -r requirements.txt

对于 Windows:

pip install -r requirements.txt

3]、运行

有关配置文件以及如何运行第一个 Plato 代理的快速介绍,请参见项目文档。

为了支持语音,有必要安装 PyAudio,它具有许多开发人员机器上可能不存在的依赖项。

下载地址:https://github.com/uber-research/plato-research-dialogue-system

注明

以上就是自然语言处理Live Transcribe Speech Engine、柏拉图(Plato)的介绍内容,这些自然语言处理软件都能使用在Linux操作系统中。

栏目相关文章