2021年8月8日

基于iOS平台的语音导览系统的设计与实现

作者 讲解员

国内经济的蓬勃发展,带来旅游产业发展的新机遇,自助旅游人数占比不断提升。但景区内导游服务却主要以人工导游为主,服务质量参差不齐,不能提供个性化的导览方案。 语音导览系统作为一个智能的语音导游应用,能够在旅游过程中提供多样的导览和交互方式,增加旅游过程的趣味性和多样性。 在对比分析了目前市场上主流的景区导游服务模式后 , 本文设计并实现了基于iOS平台的语音导览移动客户端应用 。 并且围绕语音导览系统的实现 , 介绍了系统整体框架的设计和使用到的众多技术方案,包括iOS 系统的简介、MVC编码思想的使用 、 百度地图提供的API接口、地图POI点 的多种标注算法、路线规划算法、EasyAR的云识别技术等。根据旅游导览的业务需求,详细描述了系统整体架构、功能模块划分、各个模块的需求分析与设计。在系统整体的需求分析和 设计 的基础之上,主要阐述了语音导览系统的 “ 听 ” 功能模块、 “ 寻 ” 功能模块 、 “ 藏 ” 功能模块 、 “ 留 ” 功能模块 、 “ 扫 ” 功能模块的实现。最后,根据前期制定的测试用例对系统的各功能模块进行了有效且全面的测试分析。测试环节的结果表明系统各模块功能能够正常、稳健的工作,说明系统代码的架构是可行且有效的。在AppStroe已上线的第一版本和发布到Hr、蒲公英等内测平台的内测版本,供用户使用反馈后,也得到了一致的好评,证明了语音导览系统全面考虑了用户在实际旅游过程中的多种需求,不仅能提供完整的导览体验,还能满足一般趣味性的个性化需求。

一、绪论

1.1研究目的与意义

我国经济的迅猛发展,带给人们物资上的极大丰富。国民已不仅仅追求吃穿住行的满足,对于旅游等精神方面的热情也在不断高涨,在旅游方面的消费投入也节节攀升。而且随着汽车,高铁等交通方式的普及,自助旅游市场渐渐升温,仅2017年国内自驾游在旅游人数占比70%以上,这一比例还在继续增长。虽然各种在线旅游应用层出不穷,但这类应用主要面向景区外市场,主要是做景区的导流,即通过为景区导入游客、通过票务合作、酒店合作来获利。景区内的服务市场目前基本是空白的,这主要是因为:景区内线路和服务设施的标定工作量大,目前主流导航应用进入景区后基本无法使用,相关方面的应用又少之甚少,而自助游客又迫切的需要景区内的导航导览服务。并且长期以来,景区内导游服务主要以人工导游为主,服务质量参差不齐,不能提供个性化的导览方案。因此,本系统旨在填补目前市场的这一空白,更好地满足用户不同的导览需求。语音导览系统在设计与实现时,全面考虑了用户在实际旅游过程中的多种需求,不仅能提供完整的导览体验,还能满足一般趣味性的个性化需求,如藏宝寻宝游戏、定向越野等。并能随时随地留下当前的游览感怀,通过技术手段推送给故地重游的自己或者家人朋友等。考虑到户外移动网络较差时,影响语音上传功能,设计了草稿箱本地暂存功能,用户上传的音频经过审核后可供其他用户正常使用聆听,满足了音频的多样性及更好的导览交互体验。相信伴随着第五代移动通信( 5G )技术的到来 , 移动互联网的未来会更好。语音导览应用搭乘移动互联网时代发展的快车,将会带给用户更加流畅,清晰和趣味性的游览体验。景点音频倾听将会更加流畅清晰,附近探索将会更加简便快捷,用户语音上传将不再受限于户外移动网络较弱等问题。

1.2国内外研究现状

移动通信技术的快速发展为智能导览系统的研宄与开发创造了很多有利的条件。国内外在该方面的研宄与应用的发展不尽相同,总体上说国外在智能导览终端的研宄要早于国内,技术层面较为先进。国内的景点智能导览应用市场较大,发展规模与应用场景较多。

1.2.1国外研究现状

国外的智能语音导览技术以及相关算法的应用要领先国内很多,专家学者的不断研宄与创新成果使得基于智能终端的导览系统在实际的旅游场景的应用趋于成熟,尤其以欧美等国家为例,大部分的展馆类景点均已大规模使用这类智能导览系统为游客提供服务。从国外室内展品识别,室内定位等相关技术的发展和普及程度来看,智能导览系统的应用现状主要以下几个方面:

(1)以室内游览指南地图为主,提供室内展品的布局方位图,可以进行简单的物体识别,自动进行展品的展示和讲解功能。

(2)通过识别算法比较图像上色值,亮度的差异可以对展馆中的绘画等艺术品进行识别,基于视觉识别算法的导览系统诞生。

(3)随着神经网算法在物品识别方向的应用,大幅度提高了识别的准确度和速度,一大批有代表性的室内导览移动应用不断涌现,如2007年Bruns设计的“PhoneGuide”、2010年美国自然历史博物馆推出的美国自然历史博物馆探索者等,均获得用户的广泛关注与极大好评。

(4)景区导览定位设备的便携性,准确性给用户带来更好的游览体验。这一阶段伴随着AR,VR等技术的发展与应用场景的不断成熟,不少景区都推出了自己的虚拟景区导览系统,功能完备,趣味性较高。新一代人工智能的发展,又出现了很多智能导游专业性质的机器人系统。国外的这些智能导游的发展历程带给项目很多的思考和可以借鉴的地方。可以看到,人们生活某一方面的发展,不仅需要技术的注入,还要有不断更新的用户需求。将前沿的技术应用到解决现实的问题,就会不断有新的问题需要去解决,怎么去解决这些新的问题,如何更好的解决这些问题,这就是科学发展的动力。更好的提升用户的导览体验,就能更好的完善智能导览系统的不足。

1.2.2国内研究现状

国内旅游产业的快速发展,也给智能导览系统的发展提出很多新的需求。虽然导览系统的发展程度与国内相比仍有一些差距,但国内旅游产业的巨大需求也给同行业专家学者们提出了探索和创新的动力。目前国内导览系统的应用现状主要有以下几个方面:

(1)国内景区,尤其是博物馆,校史馆等室内旅游场馆,以导游人工讲解为主。这种导览方式较为人性化、服务质量参差不齐。

(2)随着室内定位技术(WIFI、蓝牙等)的发展,出现了讲解机语音导游方式,这种方式导游过程全自动。系统会自动确定您所在位置并进行相应的导游讲解,解说词与游客眼前景物一致;操作简便,只需打开电源开关,使用过程中不需任何人工操作干预;需要租赁,携带导览设备,给游客带来负担。

(3)近几年二维码的应用场景不断普及,为景区每一个景点生成一个二维码,只需用户使用手机,打开导览类应用扫一扫,即可方便,快捷地获取该景点的音频等信息。但是二维码的可靠性不高,容易损坏,对文物,景区的美观产生一定影响。

(4)电子地图的定位精度不断提高,结合AR的识别技术,大数据处理技术,新一代的语音导览产品孕育而生,不仅能在导览方面给予用户满足,在路线规划,景点留言等经典旅游场景中,也带来了更加趣味,丰富的游览体验。通过对比分析国内这几种应用场景和遇到的问题,更加明确了智能语音导览系统发展的方向和用户的真实诉求,语音导览系统需要提供给用户路线规划、附近语音探索、智能语音推荐、用户语音上传等旅游方式的新体验,并兼顾室内、室外导览以满足多种语音导览的使用场景。以用户的需求为导向,以最前沿的研宄技术为动力,语音导览系统发展将会迎来一个更好的未来。

1.3 关键技术概述

在语音导览系统的实现过程中,使用了不少优秀且具有代表性的技术方案和第三方技术框架,主要有MVC设计模式、三种POI点标注算法(线性避让、分组避让、聚合)、路线规划算法、EasyARCRS技术等。为节省篇幅,该章节主要讲解iOS系统框架、MVC设计模式等,其他技术方案将在系统设计章节根据功能模块的需要分步阐述。

1.3.1iOS系统架构

iOS操作系统是目前最流行,最流畅的操作系统之一,编程语言0C先天兼容C和C++,可以在IDE上进行代码单元的混编,也可以进行分模块的编译。其在系统性能及语言设计上有着非常大的优势。在安全性,软硬件整合度上都是极好的。系统的实现过程中,各功能模块的具体类需要引用CoreServices中Foundation静态库中的头文件用以处理基本的逻辑。

1.3.2MVC设计模式

MVC设计模式已被广泛使用,在此进行简单阐述一下。MVC是一种经典的设计模式,根据代码模块的功能可分为模型层、视图层、控制层三层。主要内容如下:

(1)模型层,管理着系统的数据,可以进行存取数据操作。一般抽象成具体的数据Model,也就是数据类,如语音导览系统实现过程中用到的VGSAnnotation类等。

(2)视图层,管理系统控件的基本属性如宽高、色值、位置、大小等,用于展示系统的数据,提供给用户友好的交互体验,如语音导览系统实现过程中用到的VGSAnnotationView类等。

(3)控制层,是MVC模式的指挥中枢,管理数据的传输、代码模块之间的通信、控件的生命周期、界面的展示逻辑、用户交互的反馈效果等,如语音导览系统实现过程中用到的VGSMapLocationVC类等。

1.3.3EasyARCRS技术

视辰科技推出的云识别服务(CloudRecognitionService),简称CRS。可以在云识别库中快速识别视图样本,同时在线处理百万级识别图。其架构主要分为两大部分,第一部分是云识别服务,包括在线图片特征值提取,云识别库图片筛选,第二部分是云端图库的管理,对外APIs的管理。语音导览系统在实现“扫”模块相关功能时,需要集成EasyARCRS提供的SDK,用以处理室内展品视图的扫描识别功能。在建设室内展馆的云识别图库时,需要根据场馆的内部建设结构图,分块标记展品图片,将图片的编码ID与对应的展品ID建立映射表,处理完展馆内所有展品的映射表后,将其保存在移动客户端后台。语音导览系统的后台也需要建立起展品ID与其语音导览信息的对应表结构,当用户在室内展馆通过客户端扫描某一个展品图片时,EasyAR会将识别的展品特征值传入对应的云识别库,将识别成功后获取到对应的展品的ID返回给移动客户端,此时,客户端需要通过此展品的ID传至系统后台,将该展品的语音导览等信息返回到用户的界面上,用户便可以在详情页聆听该展点的语音导览音频。详细讲解了语音导览系统的使用EasyARCRS技术进行室内展品的识别方案后,项目还需要搞清楚云识别库对样本图片的管理流程,首先EasyAR已经提供给使用者界面化的后台管理入口,项目可以直接在管理平台进行增删改查的处理,也可以在语音导览系统的后台或者移动客户端进行管理操作。

1.4主要研究内容

本文重点对语音导览系统的iOS客户端的功能需求与设计做了深入的研宄,并对各个功能模块的相关实现做了细致的阐述。语音导览系统主要分为室内,室外导览两个大部分。由“听”,“寻”,“藏”,“留”,“扫”五大功能模块组成,前四个部分应用场景是室外导览,“扫”定位室内导览场景。还深入探讨了项目中所涉及到的相关算法和技术,包括电子地图POI点标注的三种算法:线性避让、分组避让、聚合,路线规划算法,EasyARCRS技术等。围绕语音导览系统的设计与实现,本文主要研宄了如下内容:

(1)对比分析了语音导览服务的国内外发展概况,深入研宄了在项目的实现过程中使用到的技术方案与整体框架设计,包括i〇S系统的简介、MVC编码思想的使用、百度地图提供的API接口、地图POI点的多种标注算法、路线规划算法、EasyAR的云识别技术等。

(2)根据旅游导览的业务需求,确定了系统具体的功能需求,研宄了系统整体架构设计、功能模块划分、各个模块的需求分析与设计。

(3)在系统整体的需求分析和设计的基础之上,研宄制定了测试方案和测试用例,并对测试的结果进行了细致分析,记录了当前系统存在的问题,确定了解决方案和系统的应用前景。

二、系统需求分析

分析系统的需求时,首先需要确定系统的目标用户,本系统的目标用户就是游客中自助旅游的人群。通过一些调研和分析方法,将目标用户在游览过程的实际需求具体化,便可确定系统的功能需求。本章将使用用例图来说明自助旅游的游客具体的导览需求,分析系统的功能需求,依据应用场景将系统的功能需求进行模块划分。

2.1用户需求

在确定系统的目标用户后,需要进行调研分析用户的需求。自助旅游的游客在游览过程中主要有以下几个方面的需求:景区景点的音频等信息的播报、个性化游览规划方案、游览心情和日志的存留、趣味性游览体验、附近景点信息探索、室内景点导览等。景区景点的音频等信息的播报,用户在游览过程中可以聆听到的景点音频等信息,这些音频信息是系统管理员官方上传的专业导游音频和部分用户自己上传的公共音频。个性化游览规划方案,用户在游览行程前可以根据自己的喜好制定景区的游览路线,在游览过程中就可以根据自己提前制定好的路线进行有规划的游玩。游览心情和日志的存留,用户在游览的过程中可能需要随时记录心情和日志,并且能与其他用户进行分享。趣味性游览体验,用户在游览过程中,进行一些如藏宝、挖宝等趣味性的游戏活动。附近景点信息探索,在自己制定的路线景点附近探索更多的相关景点信息、历史文物等。室内景点导览,用户在博物馆、校史馆等室内类型的景点游览时,需要进行室内定位,获取室内文物的历史典故信息,对自己感兴趣的展点需要了解更多的信息等。系统管理员需要管理数据库里的景点语音,文案介绍等数据信息、用户的基本信息、系统的维护等工作。普通用户上传的景点音频等信息也需要系统管理员进行审核,只有审核通过后,普通用户才能正常使用。

2.2功能需求

对业务需求进行调研分析后,将用户需求具体化,就确定了系统的功能需求。这些功能需求与用户的需求有对应的关系。系统的功能需求有路线规划、附近语音探索、智能语音推荐、用户语音上传等旅游方式的新体验,并兼顾室内、室外导览以满足多种语音导览的使用场景。用户还需要管理自己的在系统数据库中的基本信息和上传及接收到的语音,文字和图片等景点的描述信息等。系统的管理员有权限对用户进行管理,同时还需要处理数据库中官方上传的音频信息,图片信息等,系统管理员还需要维护系统的正常运作,监控系统的性能,安全性等问题。

(1)景点语音,文案管理:后台数据库中的语音,文案等数据是根据景点的分类来存储的,这些数据主要是系统管理员官方上传的,并有权限进行增、删、改、查等操作权限。用户在客户端也可以管理自己上传的数据,这些语音等信息也是根据景点,用户上传的位置等属性存储的。这些景点音频分为公共音频和私信音频,公共音频是用户上传后,用于分享给其他所有的用户使用的,私信音频则是用户在上传时,选择的系统好友用户,只有当这些被选中的好友在触发某些条件时,才能正常使用。

(2)语音导览:用户对语音导览系统最基本的需求就是聆听景点相关的语音和景区内导游。这两块需求的设计主要体现在这个模块中,用户打开应用,首先默认的页面是mapView的底图,底图上标注景点的所有音频信息的POI点,用户在行程前可以根据自己的兴趣规划游览路线,在行程中聆听路线各个点的导游音频或者历史典故等。

(3)附近探索:语音导览是在提供给用户在浏览前景区整体所有的音频POI点的展示,以便规划导览路线。而本模块则是在用户浏览过程中,根据其当前位置的经炜度,用户的偏好等属性,由后台推送给客户端展示的附近音频POI点。所以本模块提供的服务是满足用户伴随导游的需求,通过后台的筛选更加符合用户的兴趣。

(4)留存心情和日志:当前国内旅游景点乱涂乱刻现象严重,对景区景观文物造成了不可恢复的影响。如何避免“到此一游”的现象,本系统在功能设计上考虑到了这一点,设计这个功能是满足了用户在游览之余,抒发感情的需求。可以将此刻的心情和感受快速的记录下来,通过客户端上传致后台,留给自己或者系统的其他亲人、朋友、甚至是陌生人用户。系统也考虑到了户外移动信号不好的情况下,可以先保存至草稿箱,等用户回到家中再进行上传操作。本模块的设计不仅满足了用户旅游的情感抒发的诉求,同时也会在一定程度上减少“到此一游”等损坏景区景观的不道德的行为,这也是一个应用改变一种旅游方式的生动体现。

(5)室内导览:室内定位的问题是目前亟待解决的技术问题,传统的室内定位有WIFI定位,蓝牙硬件,二维码等手段可以实现室内定位的需求。本系统为了满足室内导览的需求,集成了EasyARCRS的技术来实现通过扫描图片,文案等识别信息实现室内定位的基本的需求,通过云识别的方案,将识别后的铭牌的Id上传至后台,然后读取相关的音频等信息,以达到室内导览的目的。系统其他的功能主要是为了满足室外导览的需求,在室外游览时,可以通过百度地图提供的定位API来获取当前用户的位置,这是典型的LBS的应用。但是室内的定位就需要找寻其他方案来处理。所以室内导览使用了云识别的方案来实现室内定位的目的。

2.3其他需求系统

除了有业务和功能的需求,为了保证系统的健壮性、可维护性,还需要其他非功能性的需求如应用的界面和功能设计需要对用户友好、代码架构的设计考虑耦合性问题、考虑两端通信机密机制等,具体的非功能性需求主要有如下几个方面。

(1)技术约束。主要介绍语音导览系统的i〇S端的实现,所以使用0C进行移动端的开发,系统代码构架模式以MVC为主,项目可以在苹果公司的移动终端产品上运行,如iPhone,iPad等。

(2)可拓展性。项目的代码架构在设计时,考虑了后续可能需要实现的其他功能,类之间的逻辑处理严格以MVC的方式来编写,将Model、View和Controller的通信方式固定为通知、代理等方式,遵守“高内聚低耦合”的准则。

(3)安全性。在系统前后端网络通信时,为了保证用户信息的安全性,所有的接口的请求和返回参数均使用了MD5混淆,AES加密技术。

(4)可恢复性。一款应用最重要的是用户的数据,所以后台在设计时数据库会按时进行备份,并定时存储前后台的通信和运行日志。

 

智慧展馆里智慧讲解的标配:导览系统  自动讲解器  分区讲解系统