ROS机器人上基于智能手机的在线和离线语音识别系统外文翻译资料

 2022-08-09 09:08

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


ROS机器人上基于智能手机的在线和离线语音识别系统

Safdar Zaman, Wolfgang Slany

奥地利格拉茨理工大学软件技术研究所

巴基斯坦阿伯塔巴德通信卫星信息技术研究所计算机科学系

摘要:当今,语音识别是全自主机器人系统的基本要求之一。本文的目标是为基于机器人操作系统ROS的自动机器人系统提供一个基于智能手机的语音识别系统。语音识别的过程有三个步骤,即采集、预处理和结果提取。在研究中,我们也对在线和离线语音识别服务器进行了对比。在线方法使用谷歌语音服务器,离线方法使用Simon语音服务器。语音识别与机器人控制系统工作在服务器-客户端架构下。在对在线语音识别进行测试的过程中,我们使用了一台安卓智能手机,一个 Pioneer-3DX机器人以及谷歌语音服务器。对于离线语音识别的测试,我们使用了一台安卓智能手机,一个Pioneer-3AT机器人以及一个独立的Simon语音服务器。在智能手机上运行的应用作为客户端,与语音服务器和机器人系统进行通信。本文的研究有两方面:一方面使用离线语音识别服务器Simon和智能手机,另一方面,在ROS平台上的机器人导航中利用Simon语音识别功能。

关键词:Android智能手机;Simon语音服务器;机器人操作系统(ROS);语音识别

1.介绍

自动语音识别系统在许多实时应用中很有用。其中一个典型的例子就是在残疾人使用智能手机说出特定指令的基础上进行残疾人轮椅自动导航。智能手机正迅速成为我们生活的一部分,因此变得越来越重要。对研究人员来说,智能手机的感知能力一直是一个热门话题[1-3]

本文的工作也是尝试做出一个能够识别人声的完整的导航机器人系统。这项工作也是对我们在3轮Pioneer-3DX机器人上使用基于ROS的地图、定位和导航[4]以及在4轮Pioneer-3AT机器人上通过语音命令在室内导航[5]等方面的工作的拓展。在室内环境中,机器人系统的重要性与日俱增。Paola等人[6]还提出了一个室内智能监视目标的机器人系统。他们使用了装有激光传感器、RFID和摄像头的先锋机器人。Marder等人完全实现了室内机器人的自动导航[7]。Quigley等人在他的基础上提出了机器人操作系统(ROS)的完整概述[8]。我们在地图生成和机器人自动导航方面使用与这些概述相似的方法。House等人介绍了一种叫做VoiceBot的语音控制机械臂,并且在实施时使用了语音操纵杆推理机[9]。他们在二维模拟系统中操作物体,并且使用一个真正的三维机械臂来操纵环境中的物体。我们不使用语音操纵杆,而是使用在残疾人群中也能广泛使用的多功能智能手机。Ahasan等人也提出了一个语音识别系统[10]。他们使用微软的语音SDK对一些人的声音命令进行语音识别,并且使用三个步进电机来配置可操作机械臂。我们不使用微软的语音SDK,而是使用开源的,可公开获取的Simon语音系统。 Valin等人在基于试听系统的带有嵌入式麦克风的机器人上使用几何源分离(GSS)和多通道后滤波器以识别现实世界中的实时语音[11]。他们在带有八个麦克风的阵列的先锋2号机器人上测试了他们的系统。在进行了一些修改工作之后[12],Yamamoto等人[13]提出了一种基于FlowDesigner的架构,用于集成声源定位(SSL)、声源分离(SSS)与自动语音识别(ASR)。他们对两个同时发出的语音信号进行了实验,并正确识别出了其中一个。Pires[14]提出了工业机器人的人声识别系统。他进行了两个工业机器人实验,一个用于拾取和放置物体,另一个用于焊接用途。他使用基于微软语音SDK的PC音频系统进行语音识别,并操作工业机器人。Moulton等人[15]展示了基于GPS和在线谷歌地图的“寻路”助手。该助手可通过语音识别技术引导视障人士。为了记录像大幅加速,急刹车,左右转弯以及急转弯这样的驾驶行为,文献[16]的研究工作介绍了一个使用智能手机传感器的满载系统。此外,它还使用动态时间规划算法来处理传感器数据,以便识别驾驶行为。Song等人[17]提出了基于智能手机的可视化语音识别(VSR)。它使用相机捕捉图像并找到眼睛的位置,然后尝试在图像帧序列中跟踪嘴唇以识别口语。Dai等人[18]使用安卓手机加速度传感器和方位传感器,以警告危险的酒后驾车。Hamm等人[19]提出了一个基于智能手机的系统。该系统收集并自动解释来自智能手机多个传感器的信息流的日常数据。在文献[20]中,一个关于智能手机的广泛调查被进行。除了讨论智能手机的感知能力,他还讨论了智能手机的性能和实用性在人类生活的不同领域有许多不断增长的方面。Birk等人[21]介绍了一种商业监视设备——RoboGuard,它是由面向行为的机器人技术和理念发展起来的。与传统的机器人不同,它不依赖于详细的模型和精确的力学过程,而是使用运行软件模块的行为。

本文分为以下几个部分:序言和基本概念进一步扩展了当前的第1部分,算法的方法细节在第2部分给出,第3部分重点介绍了我们考虑的三个不同的方式,第4部分讨论了测试的实验结果。

1.1安卓智能手机

安卓是移动智能手机的操作系统,它是由谷歌领导的开放手机联盟开发的。安卓的内核是基于Linux内核的,并且它的应用程序运行在包含Java兼容库的应用框架上。因为其公认的易于编程的特性,本文提出的方法使用Android智能手机。

1.2 Pioneer机器人

本书使用Pionner-3AT(四个轮子)和Pioneer-3DX(三个轮子)机器人,分别如图1和图11所示。Pioneer机器人由于有平衡适度的尺寸和合理的硬件,成为最受欢迎的研究机器人之一。 Pioneer-3DX是一种对于室内环境很合适的Pioneer机器人。就其运动而言,它是一种差动驱动机器人。在前期工作中,我们使用了带有激光测距仪(SICK LMS 200)和夹持器的Pioneer-3DX机器人,以完成在线语音识别测试任务。Pioneer-3AT机器人也是一款多功能的四车轮驱动机器人平台。它是一个很受欢迎的团队型执行机器人,尤其是在户外或崎岖的地形上。在本文中,这种机器人由于其四轮驱动的特性被用于室内导航。这个机器人使用激光测距仪(SICK)创建称为地图的二维网格。在整个自动导航过程中,机器人使用激光传感器躲避障碍物[15]。并且,该机器人上也装配了能帮忙抓取物体和运送货物的智能机械臂。

图1 机器人使用基于智能手机的语音识别系统实现语音任务,Pionner-3AT机器人装备有激光传感器和机械臂

1.3 机器人操作系统(ROS)

机器人操作系统(ROS)是一种在Liunx操作系统下运行的机器人软件框架。包、节点、主题、消息和服务是基于软件程序的ROS的构建单元。可执行程序是可通过称为主题的特殊端口交换信息的节点[8]。消息发布节点称为发布者,消息接收节点称为订阅者。这个包是所有相关软件节点的集合。

1.4 语音识别系统

语音识别系统(例如,文献[22]和文献[23]中提出的系统)接收语音输入,然后识别它,并且以文本形式生成输出。图2描绘了一种语音识别系统的整体结构。语音信号首先进行一个特征提取过程,语音识别器在词汇模型中使用提取的特征,以便将语音信号识别为文字。 通常,语音识别系统分为语音客户端和语音服务器。语音客户端用于采集语音信号并提取信号特征,语音服务器进行语音信号的识别。

图2 语音识别系统整体结构

语音服务器

语音服务器是语音识别系统的一部分,它把语音客户端获取的语音信号作为输入,然后把信号转换为数字化的文本作为输出。语音服务器使用语音模型,以便识别出输入的语音信号。在本文提出的方案中,使用谷歌语音服务进行在线语音识别系统的构建,使用Simon语音服务进行离线语音识别系统的构建。

(1)基于谷歌的语音服务:它是一个基于互联网的语音服务。它能够被用在任何基于互联网的语音识别客户端应用上,以达到语音识别的目的。在本文中,安卓智能手机作为谷歌语音客户端工作。我们为安卓手机开发了一个基于Java的谷歌-安卓客户端应用作为谷歌客户端,以便向谷歌服务端发送信号,并接收来自服务端的数据。

(2)Simon语音服务:Simon是一个开放源代码的语音识别方案。Simon语音识别系统的体系结构包括一个称为simond的服务器,一个称为simon的客户端和一个用于simond的称为ksimod的图形用户界面(GUI)。Simon平台遵循这样的一个事实,即口语是由个人声音组成的,就像文字是由字母组成的。它使用语言模型(LM)识别词汇,使用声学模型(AM)识别个人声音。Simon语音识别服务具有以下特征:

  1. 语音模型:一个语音模型包含两个基本模型,即语言模型(LM)和声学模型(AM)。语言模型给出词汇,声学模型给出可处理格式的发音。
  2. 训练:它提供了一种包含新词进行词汇训练的方法,以便改进声学模型。
  3. 语法:这个特性允许simon的用户定义他们自己的语法,例如名词动词。

2. 使用的方法

本文所采用的方法包括两个主要贡献。首先,它提出了一种实现基于Simon语音服务和安卓智能手机的离线语音识别系统的方法。这个功能可以被用到很多应用上,例如供有特殊需要的人使用的自动化轮椅。其次,它给了人们对机器人软件框架ROS和基于智能手机的在线或离线语音识别系统一种广泛的认知融合。

本文的方法是基于客户端-服务器架构的,就像图3描绘的那样。作为语音识别客户端的安卓手机从用户获取输入信号,并在经过预处理过程后将信号送到Simon语音服务器。语音服务器使用语音模型识别语音信号,并向安卓手机应用返回一系列匹配的文本字符串。运行在安卓智能手机上的应用从预设的词汇中寻找匹配命令,而不是从来自语音服务器的结果中寻找。随后,它向机器人系统发送命令。机器人系统上的服务应用接收命令,并生成ROS兼容的命令,以便让机器人做出相应行为。

音频输入是用户通过安卓智能手机说出的话,而语音服务器是单独的离线Simon语音服务器。离线语音服务器意味着它不需要连接到互联网,因此可以单独部署在室内环境中的个人电脑上。这种方法有三个部分组成,即Simon_AndroidClient, ROS_AndroidClient, and ROS_AndroidServer。对他们的描述说明如下:

图3 系统组成部分的高层次视图

2.1 Simon_AndroidClient

安卓应用程序Simon_AndroidClient作为Simon语音服务的语音识别客户端,如图4所示。这个客户端在于服务器经过一些协商后登陆到Simon服务器,并启动识别过程。在Simon服务器发送识别就绪信号后,安卓应用程序Simon_AndroidClient准备获取用户音频输入。这个Simon服务器遵循的协议需要具有特定参数列表的4位命令ID。如图4所示,安卓应用程序Simon_AndroidClient通过4444端口与Simon服务器建立TCP连接,然后使用1001命令登陆。在成功登陆后,Simon服务器返回以代码4001开头的1005代码,以告知识别就绪状态。此后4002命令被送到Simon服务器以准备识别,并且服务器返回4006。之后,另一个4021命令被发送以初始化数据的传输。安卓智能手机采集48KHz频率的音频数据,而Simon服务器需要可以适应快速处理的16KHz频率的数据。

图4 Simon_AndroidClient应用程序的工作流程

下采样技术在输入数据上使用,以使频率从48KHz降到16KHz。这些下采样数据打包在一个包中发送到Simon服务器,该服务器返回一些列可能的识别字符串。基于这个功能,这一部分又被分为三个子部分,即采集,预处理和结果提取。这些部分如下所述:

2.1.1采集

在这个部分,智能手机与Simon服务器在4444端口建立连接后准备接收用户音频输入。每个音频位的强度是一个0到5000之间的值。音量越高,音频位值越大。当输入的声音值超过700的门限值时,音频开始输入。就像算法1描述的那样。门限值时可以调整的,这取决于环境中的声音和噪声水平。当音频位值小于阈值超过150毫秒是,输入结束命令激活。然后输入的信号的被缓存下来,并准备进行预处理过程。

算法1 查找音频流命令

2.1.2预处理

在获得了音频输入信号之后,我们需要进行修整和下采样等预处理过程。修整是移除输入音频中的开头和结尾处的静音部分的过程。这有助于得到输入音频中的重要部分,以此提高识别系统的效率。下采样技术用于使频率从48000Hz下降到16000Hz。使用下采样过程的原因是智能手机以48KHz的频率采集音频输入信号,而Simon服务器需要16KHz频率的音频数据用于处理。下采样过程每三个采样音频数据提取一个数据以降低频率到16KHz,就像算法2描述的那样。这样获得的信号与原始信号几乎相同,但比原输入信号的数据更少。在整个识别过程中,下采样有助于克服识别中的困难。

算法2 缓冲信号的下采样

2.1.3结果提取

在这个子步骤中,智能手机使用Simon_AndroidClient

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[239801],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。