发明内容
针对目前景区智能导游服务系统在移动环境下的语音导航的准确性和自然度不足等问题,尤其是用户运动速度较快的情况下,POI播报触发时刻的位置信息与播报时刻的位置信息不一致的现象,本发明提供了一种能够模拟人的空间认知思维模式、改进现有位置信息播报模型、获取更为准确的位置信息的POI相对位置信息语音播报方法,主要包括如下步骤:
(1)将用户行经的路段集合记为Path,将POI播报路段记为Part,则Path表示为Path{PartN0,PartN1,...,PartNn-1},Ni是Part对应的POI的编号;利用GPS获取用户当前位置的经纬度坐标P(L,B),将其转换为地理坐标表示形式P(X,Y),计算位置点到各路段的距离,综合所有距离得到值最小的作为计算结果,即Dis(P,Path)=Min(Dis(P,Parti)),i=0,1,...,n,i是Part的序号,n是Path数组的长度;令得到的最近路段序号为ID,则Path[ID]即认为是用户当前位置所关联的POI播报路段,记为PartT={Pi=(Xi,Yi)|i=0,1,...,n},Pi是Part上有序点集的点元素,i为序号;
(2)当POI播报路段的ID改变,记录此时用户位置坐标,作为相应POI的播报触发点,记为PS(XS,YS),此时对应的POI位置坐标记为PP(XP,YP);确定路段PartT上紧邻触发点PS的下一点,记为PSN;
(3)获取用户的运动速度v,结合语音合成引擎合成频率n以及采用的相对位置信息自然语言描述的句法规则下产生的播报词长l,计算延时播报距离s=lvn;
(4)令位于P
S之后的点坐标集合为{P
S,P
SN…,P
n-1},累加从播报触发点P
S开始的路段Part
T上剩余点集中两两之间的距离,点点之间的距离累加计算公式为
i是上述点集合中的点序号;从P
S开始计算累加距离,直到累加的距离值与延时距离之间符合|P
S,P
m|<s<|P
S,P
m+1|为止,确定目标延时播报点相邻的两个点P
m、P
m+1;
(5)采用向量定比分点公式内插得到延时播报点的位置P
D(X
D,Y
D),比例
则P
D的X坐标
即P的坐标为
如果计算结果超过播报路段的长度,则将下一播报路段添加到上一段的数据末端,继续参与距离计算;
(6)计算POI点位置PP与延时播报点PD之间的相对位置关系,包括方向关系及距离关系,并用自然语言对其进行描述;
(7)将含有相对位置信息的POI相关文本输入到语音合成引擎中,进行语音输出与播报。
其中,步骤(2)中所述紧邻触发点PS的下一点PSN的计算流程为:
(1)计算PS与PartT上各点之间的距离,综合所有距离得到值最小的作为计算结果,即Dis(PS,PartT)=Min(Dis(PS,Pi)),令得到的最近点序号为Index,则P[Index]为最近点;
(2)确定PS位于哪两个点之间:计算PS到线段的垂足,如果垂足存在,则PS位于该线段上或者附近;如果Index>0,则P[Index-1]、P[Index+1]分别是最近点P[Index]的上一点与下一点;如果PS位于线段P[Index-1]P[Index]上或者附近,则PSN为P[Index];如果PS位于线段P[Index]P[Index+1]上或者附近,则PSN为P[Index+1];如果Index=0,则PSN也为P[Index+1]。
其中,步骤(6)中所述PP与PD之间相对位置关系的计算过程如下:
(1)计算方向关系
直角坐标系内的两点A(XA,YA),B(XB,YB),之间的向量角是以直角坐标系的X正轴为方向起算线,令ΔX=XB-XA,ΔY=YB-YA,向量角的计算公式为
以用户位置坐标为方向计算的起点记为P
S,以POI为终点,记为P
p,两者之间的方向角表示为A
A=Angle(P
S,P
P);选择用户的前进方向A
F为锥形模型的中心方向,构建角度区间分别为
的“前”、“左前”、“左”、“左后”、“后”、“右后”、“右”、“右前”八个象限,A
F是用户在路径上的上一位置到当前位置的方向角,即A
F=Angle(P
DP,P
D),P
DP为Part
T上P
D紧邻的上一点;因此相对方向角为A
R=A
A-A
F,将其规范化到[0,2π],再根据所属象限对应到方向文字,再添加方位副词,如“边”、“方”,构成方向信息文本;
(2)计算距离关系
计算两者的直线距离作为位置信息描述参数之一,两点之间的直线距离计算公式为
计算得到的数值精确到个位,添加“米”,作为距离信息文本。
本发明方法结合移动GIS技术、GPS定位技术、空间分析技术及语音合成技术等相关技术,针对景区道路附近的POI与用户之间的相对位置关系随着用户位置变化也会产生较大变化的情况,改变原有探测到POI位置便计算相对位置关系并播报的做法,而将该过程延迟到位置信息实际播报时用户所在位置,计算此时两者的相对位置关系并播报。应用本技术方案,可以使景区的信息播报服务更为准确、自然。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。
本发明将景区内用户感兴趣的地物称为POI,如碑亭、戏台、茶馆等。POI的播报范围是以POI为中心形成的多边形,位于该多边形内的任意位置都可以进行该POI的信息播报。POI的播报路段是POI播报范围多边形约束下的路径片段,代表POI信息播报的起始位置与结束位置之间的路段。
POI的播报内容包括两部分,其中固定的部分是介绍性内容,如碑亭的历史典故、建筑风格等,经过预处理存储为文本或者音频,以备后续调用;另一部分是实时的空间信息,主要是POI的相对位置信息,即以用户为参考物描述空间方向关系及距离关系的位置信息。相对位置信息自然语言描述根据用户的应用方式的不同可分为两种形式:第一种方式主要应用于导游功能中,是一种主动告知的信息播报方式,一般的描述句法规则为“位于您”+方位词+距离词+“的是”+POI名称;第二种方式主要应用于查询功能中,是一种被动的信息播报方式,一般的描述句法规则为POI名称+“位于您”+方位词+距离词+“处”。播报POI相关信息时,一般先播报相对位置信息,让用户对POI有个直观印象,在看到POI的同时知道自己与POI之间的相互关系;再播报介绍性内容,对POI进一步进行了解。由于相对位置信息的播报遵循句法规则,因此其播报词长也是固定的。
本发明的主要原理如图1所示:通过获取GPS信号,得到用户实时位置坐标及用户的运动速度;利用移动GIS空间分析功能实现相对位置信息的延时预测纠正方法,其一是根据播报触发点预测延时播报点位置,其中播报触发点是用户实时位置,该位置是用户首个被监测到位于POI播报路段上的位置;延时播报点是信息实际播报的位置;其二是纠正得到新的相对位置信息。语音合成引擎用以将POI的播报文本合成为音频进行播报,输出给用户。
本发明方法的主要流程如图2所示:
(1)获取用户当前位置坐标,确定用户关联的POI播报路段;
(2)当POI播报路段的ID改变,记录此时用户位置坐标,作为相应POI的播报触发点PS,对应的POI位置坐标记为PP,并确定PartT上紧邻PS的下一点PSN;
(3)获取用户的运动速度v,结合语音合成引擎合成频率n以及采用的相对位置信息自然语言描述的句法规则下产生的播报词长l,计算延时播报距离s=lvn;
(4)累加从PS开始的PartT上剩余点集中两两之间的距离,直到累加值超过延时播报距离s,确定目标延时播报点相邻的两个点Pm、Pm+1;
(5)在线段PmPm+1上内插得到延时播报点的位置坐标,表示为PD(XD,YD);
(6)计算POI点位置PP与延时播报点PD之间的相对位置关系,包括方向关系及距离关系,并用自然语言对其进行描述;
(7)将含有相对位置信息的POI相关文本输入到语音合成引擎中,进行语音输出与播报。
用户在POI播报路段上的播报触发点位置确定的具体过程如图3所示:
(1)确定用户当前关联的POI播报路段。用户行经的路段集合可以用POI播报路段表示为Path{PartN0,PartN1,…,PartNn-1},Ni是Part对应的POI的编号。获取GPS信号确定用户当前位置的经纬度坐标P(L,B),将其转换为地理坐标表示形式P(X,Y)。考虑到GPS信号的误差,即使用户位于规划路径的路段上,也可能出现偏离线路的情况;同时考虑到用户游览的随意性,允许用户行走在路径两边的平地上的情况出现。因此,计算位置点到各路段的距离,综合所有距离得到值最小的作为计算结果,即Dis(P,Path)=Min(Dis(P,Parti)),i=0,1,...,n,i是Part的序号,n是Path数组的长度。令得到的最近路段序号为ID,则Path[ID]即认为是用户当前位置所关联的POI播报路段,记为PartT={Pi=(Xi,Yi)|i=0,1,...,n},Pi是Part上有序点集的点元素,i为序号;
(2)由于GPS信号获取存在周期性,因此GPS定位信息不一定是PartT的端点,需不断监测用户的实时位置坐标,当其关联路段ID改变时,记录此时的位置坐标,作为对应POI的播报触发点PS(XS,YS),此时对应的POI位置坐标记为PP(XP,YP)。
(3)确定PartT上紧邻PS的下一个点PSN。首先计算PS与PartT上各点之间的距离,综合所有距离得到值最小的作为计算结果,即Dis(PS,PartT)=Min(Dis(PS,Pi)),令得到的最近点序号为Index,则P[Index]为最近点。再进一步确定PS位于哪两个点之间。计算PS到线段的垂足,如果垂足存在,则PS位于该线段上或者附近。如果Index>0,则P[Index-1]、P[Index+1]分别是最近点P[Index]的上一点与下一点。如果PS位于线段P[Index-1]P[Index]上或者附近,则PSN为P[Index];如果PS位于线段P[Index]P[Index+1]上或者附近,则PSN为P[Index+1]。如果Index=0,则PSN也为P[Index+1]。
用户在POI播报路段上的延时播报点位置确定的具体过程如图4所示:
(1)令位于P
S之后的点坐标集合为{P
S,P
SN…,P
n-1},点点之间的距离累加计算公式为
i是上述点集合中的点序号;
(2)从PS开始计算累加距离,直到累加的距离值与延时距离之间符合|PS,Pm|<s<|PS,Pm+1|为止;
(3)采用向量定比分点公式内插得到延时播报点的位置P
D(X
D,Y
D),比例
则P
D的X坐标
即P的坐标为
如果计算结果超过播报路段的长度,则将下一播报路段添加到上一段的数据末端,继续参与距离计算。
步骤(6)中POI点位置PP与延时播报点PD之间的相对位置关系计算过程如下:
①计算方向关系
直角坐标系内的两点A(XA,YA),B(XB,YB),之间的向量角是以直角坐标系的X正轴为方向起算线,令ΔX=XB-XA,ΔY=YB-YA,向量角的计算公式为 (公式1)
以用户位置坐标为方向计算的起点记为P
S,POI为终点,记为P
p,两者之间的方向角表示为A
A=Angle(P
S,P
P)。由于导航时是以用户的视角来描述转向信息的,因此选择用户的前进方向A
F为锥形模型的中心方向,构建角度区间分别为
的“前”、“左前”、“左”、“左后”、“后”、“右后”、“右”、“右前”八个象限,A
F是用户在路径上的上一位置到当前位置的方向角,即A
F=Angle(P
DP,P
D),P
DP为Part
T上P
D紧邻的上一点。因此相对方向角为A
R=A
A-A
F,将其规范化到[0,2π],[0,2π]再根据所属象限对应到方向文字,再添加“边”、“方”等副词,构成方向信息文本。
②计算距离关系:由于POI与用户之间的距离较近,故计算两者的直线距离,作为位置信息描述参数之一,两点之间的直线距离计算公式为
(公式2)
计算得到的数值精确到个位即可,添加“米”,作为距离信息文本。
最后利用语音合成引擎将延时预测纠正方法获取得到的位置信息自然语言描述转换为用户可以收听的语音信息。
本发明旨在解决旅游景区道路沿途POI相对位置信息语音播报延时问题,区分开POI播报触发点及延时播报点,该方法能够有效解决播报路段及用户运动状态对POI位置信息语音播报准确性的影响。具体实施案例:
下面以江苏省常熟市尚湖风景区智能导游服务系统的移动端语音导游过程中的应用为例,该移动端基于ESRI公司的ArcGIS Mobile软件进行二次开发完成。GPS设备为智能手机中自带的设备,使用ESRI公司的ArcGIS Mobile软件中的GPS接口驱动此设备,从而获取用户实时信息。语音合成引擎使用捷通华声公司的语音合成引擎及其接口。
经过预处理的数据存储到移动端,即利用POI的播报范围多边形切分用户指定的规划路径,得到POI播报路段集合Path[8]={Part8,Part14,Part27,Part42,Part57,Part76,Part83,Part102},下标为POI的ID号。接着,获取用户当前位置坐标,并求取其所在的路段,计算当前位置到路段集合上各路段的距离,同时利用移动GIS将球面距离转换为平面直线距离,得到距离集合,其中最短距离对应的路段即为所求路段。当所在路段发生变化,记录用户的实时位置坐标为PS,该点为用户进入当前路段的首个点,即该路段对应的POI信息播报触发点。此外,假设游览过程中的讲解方式为主动式,即采用的句法规则为:“位于您”+方位词+距离词+“的是”+POI名称。在此,令播报结束相对位置信息前的字数为10字,设定语音合成引擎的频率为0.3s/字,因此可得延时时间为3s。
下面结合路段的形态及用户的运动速度,选取弧形、成角度两种形态的路段,电瓶车、步行两种不同运动速度演示延时播报的预测与纠正的关键步骤:
1.弧形路段的延时预测纠正结果
牡丹花游览路线中,Part57为弧形路段,其坐标集合CoordinateArray {P1992,P2068,P2069,P2070,P2071,P2072,P2073,P2074,P2075,P2076,P2077,P2078,P2079,P2080,P2081,P2082,P2083,P2084,P2085,P2086}={(120.682441408,31.6439749950001),(120.682446003,31.6439798),(120.682455537,31.6439904600001),(120.682462838,31.6440019810002),(120.682468105,31.6440144950001),(120.682471186,31.6440276420001),(120.682471995,31.6440410360001),(120.682470507,31.6440542970001),(120.682466761,31.644067039),(120.682460871,31.6440788960001),(120.682453004,31.644089524),(120.682448832,31.6440934690001),(120.682443377,31.6440986270002),(120.682441677,31.644099746),(120.682435853,31.6441035750001),(120.6824323,31.6441059130001),(120.682420059,31.6441112020001),(120.68240702,31.644114329),(120.682393559,31.644115206),(120.682379682,31.6441137670002)}。
第一步:监测用户的实时位置,当用户的实时位置坐标为PS(120.682452,31.643984)时,进入该弧形路段。此外,该路段对应的POI编号为57,则对应的POI坐标为PP(120.682493,31.644131)。
第二步:获取用户的实时速度,在此选取两种不同的运动速度:
(1)用户乘坐电瓶车,运动速度为5m/s,因此延时距离应为15m。通过累加计算位于PS之后各点之间的距离,得到延时播报点坐标。计算过程为:
①获取播报路段上与用户位置PS相邻的两个点,即求取紧邻用户位置的弧段上的下一点。具体做法是分别计算PS到播报路段上各点坐标的距离,取其中最小值对应的点编号及其坐标,即P2068(120.682446003,31.6439798)。由于存在PS到线段P2068P2069的垂足,因此PS 距离P2068P2069最近,即下一点为P2069(120.682455537,31.6439904600001)。
②计算线段PS P2069的长度为0.818941,接着P2069开始,分别计算邻近两点组成的线段长度,并进行累加,直到累加值超过15m为止,累加值15.216515,对应的点为P2081(120.682435853,31.6441035750001)。
③因此,所求的延时播报点应该位于P2081与其上一点P2080之间,采用向量定比分点公式内插得到该点。此时的定比 因此PD的横坐标 纵坐标 即PD坐标为(120.682436,31.644104)。
(2)游客步行,运动速度为1m/s,因此延时距离为3m。通过累加计算位于PS之后各点之间的距离,得到延时播报点坐标。计算过程如下:
①同(1)中的步骤①
②计算线段PS P2069的长度为0.818941,接着P2069开始,分别计算邻近两点组成的线段长度,并进行累加,直到累加值超过3m为止,累加值3.845311,对应的点为P2071(120.682468105,31.6440144950001)。
③因此,所求的延时播报点应该位于P2071与其上一点P2070之间,采用向量定比分点公式内插得到该点。此时的定比 因此PD的横坐标 纵坐标 即PD(120.682466,31.644010)。
第三步,计算延时播报点与POI之间的相对位置关系。
(1)用户乘坐电瓶车
方向关系计算:
①计算沿路前进的方向角度值,即求向量
与X正轴的夹角A
F=2.559997;
②计算延时播报点PD指向POI坐标PP的方向角,即求向量
与X正轴的夹角A
A=0.448855;
③计算以
为起算方向的方向值,A
A-A
F=-2.111142,规范化到[0,2π]后的值为
因此对应的八方向角度区间的方向值为“右后”。
距离关系计算:
①将经纬度坐标转换为以米为单位的地理坐标,结果为PD(13419268.043850046,3518662.0472255819),PP(13419274.388594227,3518665.1031282614);
②采用两点距离计算公式进行计算,即 播报精度达到个位即可,因此四舍五入的结果为7米。
(2)用户步行
方向关系计算:
①计算沿路前进的方向角度值,即求向量
与X正轴的夹角A
F=1.172413;
②计算延时播报点PD指向POI坐标PP的方向角,即求向量与X正轴的夹角AA=1.352877;
③计算以
为起算方向的方向值,
因此对应的八方向角度区间的方向值为“前”。
距离关系计算:
①将经纬度坐标转换为以米为单位的地理坐标,结果为PD(13419271.408431087,3518651.6447523474),PP(13419274.388594227,3518665.1031282614);
②采用两点距离计算公式进行计算,即 播报精度达到个位即可,因此四舍五入的结果为14米。
(3)按照此方法计算不经过纠正的位置信息,即采用用户进入弧形路段的首个位置点PS计算其与POI点坐标PP之间的方向关系及距离关系。得到的方向关系为“左前”,距离关系为17米。
第五步,将相对位置信息文本转换为语音,进行语音播报输出。
2.成角度路段的延时预测及纠正结果
牡丹花游览路线中,Part42为成角度路段,其坐标集合CoordinateArray{P2883,P2884,P2847,P2965,P2966,P2967,P2968,P2954}={(120.682324917122,31.6441034327157),(120.682240650562,31.6440967298088),(120.682222981028,31.6440953238272),(120.682164580281,31.6440906779868),(120.682136643362,31.6441127223388),(120.68201713278,31.6442070343638),(120.682012436395,31.6442107400767),(120.682004682403,31.6442168602132)},其中P2965(120.682164580281,31.6440906779868)是拐点。对应的POI为PP(120.682207,31.644190)
当播报触发点PS坐标为(120.682284,31.644100)的计算结果如表2所示,而采用原始方法计算得到的结果分别是“右前”,“13米”。