Page 63 - 智慧地铁建设实践与创新研究
P. 63
第二章 智慧地铁建设技术架构及关键技术
(2)数组:数组是值的有序集合。一个数组以左中括号作为开始标志,以
右中括号作为结束标志。值之间使用逗号分隔。
对图 2-12 的输出结果进行具体说明,输出结果的 JSON 形式都是嵌套结构。
其中“event”表示消息类型,“ASR”代表语音消息,“NLU”代表查询结果
消息;“status”表示查询状态,0 代表解析到正常的查询结果,1 代表没有查询
到结果,-1 代表需要暂停语音服务,除此之外的数值表示错误,需要重新输入语
音等待查询结果;“param”的值是一个对象,这个对象中的“count”表示车票
数量,“price”表示起始站到目的站的票价,“text”显示乘客输入的语音内容,
“station”是一个数组,包括多个对象,表示的是所有可能目的站的信息。“station”
中“code”表示目的站的约定编号,“distance”表示从目的站到最终目的地的距离,
“exit”表示地铁站出口,“path”表示的是起始站、中转站、目的站的阿里编号,
“poi”表示目的地,“poih”表示目的地的经纬度,“time”表示整个行程估计
消耗的时间,“total”表示整条路径途径的总站数。
2. 语音售票模块的接口设计
语音售票模块分布于整个软件架构的业务层和应用层,涵盖了所有的语音售
票业务流程。本部分通过分析这两层的功能接口,来介绍语音售票模块的实现逻辑。
注意此节中的应用层只是涉及界面对象的成员方法,因为和业务层关系联系紧密,
所以在此一同介绍。业务层将涉及语音模组功能的底层逻辑进行封装集成,简化
语音售票的流程逻辑。业务层的接口主要是模块实例的创建与销毁、语音模组的
打开与关闭以及语音模组数据传输时的响应处理。各个接口函数的功能见表 2-2。
应用层满足乘客语音购票时的一切操作,从某种程度上讲,乘客与售票软件
的交互实际就是与接口函数的交互。应用层的接口函数是逻辑集成度最大的接口,
几乎不掺杂多余的业务逻辑,仅是通过调用的方式实现最基本加载、更新等操作。
在设计应用层的接口前需要确定进入每一售票界面的触发条件,才能保证每个界
面应该具备的功能,从而获得所需接口。比如,进入线网选择界面的条件有开机
启动、交易结束、取消操作、摄像头捕获人像失败。其中的取消操作是属于其他
部分界面应该具有的功能。例如,从语音输入界面退至线网选择界面,需要有一
个取消或者关闭按钮。此部分针对语音售票涉及的语音消息输入界面和路径查询
结果信息界面进行接口设计。
·51·

