一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种语音合成测试方法、系统、电子设备和存储介质与流程

2022-12-31 14:27:34 来源:中国专利 TAG:


1.本公开涉及人工智能技术领域,尤其涉及语音合成技术领域。


背景技术:

2.随着人工智能(artificial intelligence,ai)技术快速发展,越来越多的智能终端产品都会搭载语音交互技术,语音交互技术改变了人机交互形式。语音合成(text to speech,tts)是人机对话中重要的组成部分,能让机器自然流畅说话是提高交互体验关键所在。为了从端到端角度保障合成音频数据完整性且音频音质无异常,需要对语音合成产品(如集成了sdk和语音合成模型的应用程序包)进行测试,以保障应用程序包提供的软件开发工具包(software development kit,sdk)以及合成模型的质量。


技术实现要素:

3.本公开提供了一种语音合成测试方法、系统、电子设备和存储介质。
4.根据本公开的一方面,提供了一种语音合成测试方法,包括:
5.设置应用环境上下文,其中,该应用环境上下文中包含语音合成包的初始包名;
6.接收外部指令,该外部指令中包含至少一个包名修改指令;以及,
7.根据该至少一个包名修改指令,对该应用环境上下文进行修改,并利用修改后的应用环境上下文对语音合成业务包进行鉴权,以得到测试数据。
8.根据本公开的另一方面,提供了一种语音合成测试系统,包括测试设备,该测试设备包括:
9.业务层模块,用于设置应用环境上下文,其中,该应用环境上下文中包含语音合成包的初始包名;
10.sdk层模块,用于接收外部指令,该外部指令中包含至少一个包名修改指令;根据该至少一个包名修改指令,对该应用环境上下文进行修改,并利用修改后的应用环境上下文对语音合成业务包进行鉴权,以得到测试数据。
11.根据本公开的另一方面,提供了一种电子设备,包括:
12.至少一个处理器;以及
13.与该至少一个处理器通信连接的存储器;其中,
14.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。
15.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。
16.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
17.本公开实施例通过利用外部指令批量修改语音合成业务应用程序包的包名,以获得不同的包名,避免了测试过程中对语音合成业务的应用程序包进行重复打包和存储,能
够避免人工操作对测试质量的不利影响,从而提高测试效果,并且能够减少对存储空间的浪费,降低冗余率。
18.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
19.附图用于更好地理解本方案,不构成对本公开的限定。其中:
20.图1是本公开的一个应用场景示意图;
21.图2是本公开一实施例的语音合成测试方法200的示意图;
22.图3是根据本公开一实施例的测试设备的结构示意图;
23.图4是根据本公开一实施例中音频完整性测试方案流程图;
24.图5是根据本公开一实施例的语音合成模型自动化测试方案示意图;
25.图6是根据本公开一实施例的测试设备600的结构示意图;
26.图7是根据本公开一实施例的一种语音合成测试系统700的结构示意图;
27.图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。
具体实施方式
28.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
29.语音合成(text to speech,tts)是将文本转化成语音的技术,能够打通人机交互闭环。可以支撑多场景、多语言的音色,支持自定义音量、语速等参数。语音合成广泛适用于智能客服、有声阅读、新闻播报、人机交互等业务场景。为了从端到端角度保障合成音频数据完整性且音频音质无异常,在相关技术中,由测试人员对语音合成包进行验证,以保障其提供的sdk及合成模型的质量。
30.现有的测试方法中,根据不同的业务需求,需要验证不同包名的鉴权及语音接口功能;为了验证不同包名的鉴权及语音接口功能,需要人工对语音合成包重复打包,其打包后的测试工程代码需要备份多套,因此对存储空间浪费,并且容易发生人工的误操作。
31.本公开实施例提出一种语音合成测试方法,图1是本公开的一个应用场景示意图。如图1所示,业务方(或用户)110向语音合成生产设备120提出业务要求,由语音合成生产设备120生成语音合成包,该语音合成包集成tts sdk(简称sdk)、还可以集成语音合成模型(语音合成模型用于实现离线语音合成)、以及业务方的模拟业务逻辑。如果应用于安卓(android)系统,该语音合成包可以为安卓应用程序包(apk,android application package)。在将语音合成包提供给业务方(或用户)110之前,语音合成生产设备120可以将语音合成包发送至语音合成测试系统130,该语音合成测试系统130可以采用本公开实施例提出的语音合成测试方法、对语音合成包进行测试,该测试可以包括鉴权、还可以包括测试音频合成的完整性等。在测试通过之后,语音合成生产设备120或者语音合成测试系统130可以将语音合成包提供给业务方(或用户)110,从业务方(或用户)110使用。
32.图2是本公开一实施例的语音合成测试方法200的示意图,包括:
33.s210、设置应用环境上下文(context),其中,该应用环境上下文中包含语音合成包的初始包名;
34.s220、接收外部指令,该外部指令中包含至少一个包名修改指令;以及,
35.s230、根据该至少一个包名修改指令,对该应用环境上下文进行修改,并利用修改后的应用环境上下文对语音合成包进行鉴权,以得到测试数据。
36.在一些示例中,该外部指令可以是广播指令。本公开实施例提出的语音合成测试方法可以应用于语音测试系统中,该语音测试系统可以包括测试设备,还可以包括远程平台和中控设备。以该测试设备为安卓测试设备为例,上述广播指令可以通过安卓调试桥(adb,android debug bridge)发送至测试设备的apk。
37.在一些实施方式中,还可以设置该语音合成包的应用标识和该语音合成包的许可信息;
38.一些示例中,步骤s230中的根据至少一个包名修改指令,对应用环境上下文进行修改,并利用修改后的应用环境上下文对语音合成包进行鉴权,包括:
39.根据该至少一个包名修改指令,将应用环境上下文中的包含语音合成包的初始包名修改为包名修改指令所指示的包名;
40.对应用环境上下文中的语音合成包的应用标识、语音合成包的许可信息及修改后的包名进行匹配验证;
41.在匹配验证通过的情况下,对语音合成包的鉴权成功;或者,在匹配验证不通过的情况下,对语音合成包的鉴权失败。
42.通过根据包名修改指令修改应用环境上下文(context)中的包名,并采用修改后的包名进行鉴权,避免了每次鉴权都由人工修改包名、并重复打包得到语音合成包,从而降低对存储空间的浪费,并避免人工操作。并且,采用语音合成包的应用标识(appid)、许可信息(licence)和修改后的包名,能够模拟业务方(或用户)在使用语音合成包之前的鉴权过程,从而实现对鉴权过程的测试。
43.如图3所示,测试设备(或者测试设备的apk)可以包括业务层模块(简称业务层)、sdk层模块(简称sdk层)。测试设备(或者测试设备的apk)还可以包括合成引擎层和结论校验层。
44.业务层设置android应用环境context(context中包含语音合成包的初始包名),业务层还可以设置语音合成包的应用标识和语音合成包的许可信息。
45.如图3中,在一些示例中,业务层可以采用以下语句设置应用环境上下文(简称上下文):
46.applicationid=com.test.che.demo
47.setcontext(context)
48.该应用环境上下文中包含语音合成包的初始包名:
49.业务层可以采用以下语句设置属性值,包括设语音合成包的应用标识(appid)和语音合成包的许可信息(licence):
50.setappid(appid)
51.setlicence(licence)
52.cnt=1
53.并且,业务层可以设置一个计数器(cnt),并将该计数器的初始值为1。
54.上述设置完成之后,业务层将该设置透传给sdk层,sdk层中的sdk java层可以通过context属性获取语音合成包的初始包名,并将该初始包名设置给speechsynthesizer.packagename。
55.例如,可以采用以下语句实现:
56.speechsynthesizer.app_code=appid
57.speechsynthesizer.licence=ilcence
58.speechsynthesizer.packagename=context.getpackagename()
59.sdk层中的sdk java层还可以接收外部指令,该外部指令可以为广播消息,如图3所示,该外部指令中可以包含至少一个包名修改指令,每个包括修改指令指示一个修改的包名。例如,可以采用以下语句实现:
60.cnt=1:packagename=com.test1.demo1
61.cnt=2:packagename=com.test2.demo2
62.cnt=3:packagename=com.test3.demo3
63.cnt=4:packagename=com.test4.demo4
64.…
65.cnt=n:packagename=x
66.上述语句可以解释为:在计数器的值为1时(即cnt=1),将包名修改为com.test1.demo1;在计数器的值为2时(即cnt=2),将包名修改为com.test1.demo2;等等。
67.sdk层中的sdk java层判断是否收到外部指令(即广播消息),如果收到,则对语音合成包进行修改,并利用修改后的应用环境上下文对语音合成包进行鉴权;如果没有收到,则透传前述设置,利用最初设置的应用环境上下文对语音合成包进行鉴权。
68.如图3所示,如果需要更换包名,则可以采用以下语句,通过外部广播将包名传给configtool:
69.configtool.settestpackagename(packagename)
70.之后,再采用以下语句,通过configtool.getpackgename()将包名设置给speechsynthesizer.packagename
71.speechsynthesizer.packagename=configtool.getpackagename()
72.在一些示例中,利用修改后的应用环境上下文对语音合成包进行鉴权的过程可以包括:
73.对语音合成包的许可信息(licence)进行解析,得到许可信息(licence)中包含的应用标识(appid)和包名(packagename),再将许可信息(licence)中包含的应用标识(appid)和包名(packagename)分别与语音合成包的应用标识和修改后的包名进行匹配判断,从而得到检测结果。
74.具体地,匹配验证通过的情况可以包括:
75.语音合成包的许可信息中包含的应用标识与该语音合成包的应用标识匹配,并且,语音合成包的许可信息中包含的包名与修改后的包名匹配。
76.匹配验证不通过的情况包括:
77.语音合成包的许可信息中包含的应用标识与语音合成包的应用标识不匹配;和/或,语音合成包的许可信息中包含的包名与修改后的包名不匹配。
78.采用上述过程,可以在使用模拟语音合成包之前对用户的鉴权过程,从而实现对鉴权过程的测试。
79.在鉴权成功后,可以对语音合成包进行初始化,并利用初始化成功的语音合成包进行语音合成,根据鉴权结果、初始化结果和/或语音合成结果生成最终的测试结果。在针对一个修改后的包名测试完成之后,将计数器的数值加1(如图3中的cnt ),并利用外部指令中的下一个包名修改指令,重复上述包名修改及鉴权、初始化、合成等过程;直至针对所有修改后的包名均测试完成,得到针对所有修改后的包名的测试结果。
80.图3所示的测试流程归纳如下:
81.1)、业务层设置合成参数以及android应用环境context,android应用环境context中包含语音合成包的包名;
82.2)、业务层将合成参数和android应用环境context透传给sdk层中的sdk java层。sdk层中的sdk java层注册广播,通过注册广播,sdk层中的sdk java层能够接收到外部的广播消息。
83.sdk层中的sdk java层判断是否收到外部指令所发起的修改包名广播;
84.如果收到修改包名广播,则将android应用环境context中的语音合成包的包名修改为广播值,并将修改之后的值发送给sdk层中的sdk引擎层;如果没有收到修改包名广播就直接将应用层设置值透传给sdk层中的sdk引擎层。之后,由sdk层中的sdk引擎层进行鉴权,由合成引擎层进行初始化、合成;
85.3)、对步骤2)中的结果进行结果判定,包括但不限于判断鉴权、初始化、合成是否异常;
86.4)、判断包名计数器的值是否满足cnt《=n,其中,n表示修改的包名的个数。如果满足(即cnt小于或等于n),则将包名计数器的值增加1,例如采用cnt 改变包名计数器的值,并跳转至步骤2),以进行下一个模型授权包名的验证;如果不满足(即cnt大于n),则当前流程。
87.由上述过程可见,在本公开实施例提出的语音合成测试过程中,通过接收外部的广播指令,对同一应用程序包获得不同的包名,而无需对应用程序包进行重新打包,可以实现多不同包名的鉴权测试,从而避免重复打包造成的冗余,并能够降低人工成本。
88.在一些实施方式中,本公开实施例还可以测试音频在传输过程中的完整性,例如,本公开实施例的语音合成测试方法还可以包括:
89.接收音频文件及音频文件的预期长度,该音频文件由语音合成包进行语音合成得到,该音频文件的预期长度由语音合成包确定;
90.确定音频文件的实际长度;
91.根据音频文件的预期长度和音频文件的实际长度,对语音合成效果进行测试,以得到测试数据。
92.例如,在音频文件的预期长度与音频文件的实际长度匹配的情况下,确定语音合成的效果符合要求;和/或,
93.在音频文件的预期长度与音频文件的实际长度不匹配的情况下,确定语音合成的
效果不符合要求。
94.通过上述过程,可以对音频数据完整性进行测试,从而保障合成音频数据完整性。
95.针对在线语音合成方式,云端进行语音合成后返回的是被压缩的音频文件,如声音编码格式(opus)压缩音频文件。
96.相应地,上述接收音频文件可以包括:接收被压缩的音频文件;
97.上述确定音频文件的实际长度,可以包括:对被压缩的音频文件进行解压缩,得到解压缩后的音频文件;确定解压缩后的音频文件的实际长度。
98.采用上述方式,能够对在线语音合成传输的压缩音频文件的完整性进行测试,保证采用在线引擎合成的音频文件的完整性。
99.例如,对opus压缩音频文件进行解压缩,得到脉冲编码调制(pcm,pulse code modulation)音频文件,并确定pcm音频文件的实际长度。
100.图4是根据本公开一实施例中音频完整性测试方案流程图,可以包括以下步骤:
101.1)、中控设备(如图4中的pc中控)下发启动合成任务指令;
102.2)、测试设备(如图4中的android测试设备)中apk的业务层收到合成指令后,根据具体合成请求调用sdk接口(如图4中的sdk链路层,又可称为sdk层);
103.3)、apk中sdk链路层向合成引擎层(如图4中的引擎层)发送合成请求。
104.4)、可以选择在线合成引擎或离线合成引擎进行语音合成:
105.如果选择在线引擎,则云端进行语音合成后,返回opus压缩音频数据以及压缩音频总字节长度;sdk链路层获取在引擎发送的opus音频压缩数据,sdk链路层将opus音频压缩数据解压为pcm数据,并透传给业务层;业务层将pcm数据保存至android设备中。sdk通过云端下发的压缩音频总字节长度可计算解压后pcm音频预期总字节长度。
106.如果选择离线引擎,离线引擎合成后返回pcm音频数据以及pcm音频预期总字节长度;sdk链路层将pcm音频数据流和pcm音频预期总字节长度透传给业务层,业务层保存pcm音频数据流以及pcm音频预期总字节长度。
107.5)、pc中控将android设备中保存的pcm音频以及pcm音频总字节长度拉取出来,进行校验。校验所保存pcm音频实际总字节长度是否与sdk透传的音频预期总字节长度一致,并得到测试结果。
108.通过上述过程,可以检测合成后的音频文件在传输过程中是否发生丢失,以保证音频合成文件的完整性。
109.本公开实施例提出的语音合成检测方法,可以应用于语音合成测试系统,该语音合成测试系统可以包括测试设备、中控设备、远程平台。测试人员通过登录远程平台实现语音合成测试的远程控制。
110.在一些示例中,上述设置应用环境上下文之前,还可以包括:接收测试场景;
111.其中,该测试场景由中控设备对收到的场景测试触发指令进行解析得到,该场景测试触发指令由远程平台发送。
112.上述语音合成测试方法还可以包括:将测试数据发送至中控设备,以供中控设备对测试数据进行处理和/或校验、并将处理和/或校验后的测试数据上传至远程平台。
113.图5是根据本公开一实施例的语音合成模型自动化测试方案示意图,可以包括以下步骤:
114.1)根据测试人员的场景选择和指令,远程平台发送开始测试指令;
115.2)pc中控(或中控设备)解析远程平台所下发的开始测试指令,识别对应场景,并将对应场景下发至测试设备;
116.3)测试设备apk的业务层调用sdk接口,请求对应的合成引擎;引擎层中(包括线上引擎或离线引擎进行)语音合成;测试设备apk进行语音合成测试,并将测试数据发送至pc中控;
117.4)pc中控将对测试数据进行处理,包括持久化以及生成测试报告等,并将测试相关数据以及测试报告上传至远程平台进行展示。
118.5)根据测试人员的指令,远程平台发送停止测试指令;根据该指令,pc中控停止语音合成测试。
119.由上述介绍可见,本公开实施例提出的远程平台主要用于与测试人员进行交互,并进行任务的下发以及测试结论的展示;pc中控的主要功能包含远程平台任务下发后的解析、将解析的场景下发给测试设备、获取测试数据、对测试数据进行处理、测试结论校验、处理后将结果上传至远程平台等。测试设备中安装测试apk,测试apk可以分为三层,包括业务层、sdk层链路层(或sdk层)和合成引擎层。其中,业务层调用sdk链路层的sdk接口进行测试;sdk链路层使用sdk传输数据;合成引擎层采用在线引擎或离线引擎进行语音合成。测试人员可以以远程平台为入口,操作pc中控与测试设备,最终完成语音合成模型的测试。通过采用包含远程平台、中控设备、测试设备的测试系统进行语音合成测试,测试人员可以通过远程平台控制对语音合成包的测试,从而实现远程的自动化测试。
120.本公开实施例还提出一种语音合成测试系统,包括测试设备。图6是根据本公开一实施例的测试设备600的结构示意图,该测试设备600包括:
121.业务层模块610,用于设置应用环境上下文,其中,该应用环境上下文中包含语音合成包的初始包名;
122.sdk层模块620,用于接收外部指令,该外部指令中包含至少一个包名修改指令;根据该至少一个包名修改指令,对该应用环境上下文进行修改,并利用修改后的应用环境上下文对该语音合成包进行鉴权,以得到测试数据。
123.在一些实施方式中,该业务层模块610还用于,设置该语音合成包的应用标识和该语音合成包的许可信息;
124.该sdk层模块620用于:
125.根据至少一个包名修改指令,将应用环境上下文中的该包含语音合成包的初始包名修改为该包名修改指令所指示的包名;
126.对该应用环境上下文中的该语音合成包的应用标识、该语音合成包的许可信息及修改后的包名进行匹配验证;
127.在该匹配验证通过的情况下,对该语音合成包的鉴权成功;或者,在该匹配验证不通过的情况下,对该语音合成包的鉴权失败。
128.在一些实施方式中,该匹配验证通过的情况包括:
129.该语音合成包的许可信息中包含的应用标识与该语音合成包的应用标识匹配,并且,该语音合成包的许可信息中包含的包名与该修改后的包名匹配。
130.在一些实施方式中,该匹配验证不通过的情况包括:
131.该语音合成包的许可信息中包含的应用标识与该语音合成包的应用标识不匹配;和/或,该语音合成包的许可信息中包含的包名与该修改后的包名不匹配。
132.在一些实施方式中,该业务层模块610还用于:
133.接收音频文件及该音频文件的预期长度,该音频文件由该语音合成包进行语音合成得到,该音频文件的预期长度由该语音合成包确定;
134.确定该音频文件的实际长度;
135.根据该音频文件的预期长度和该音频文件的实际长度,对语音合成效果进行测试,以得到测试数据。
136.在一些实施方式中,该业务层模块610还用于:
137.在该音频文件的预期长度与该音频文件的实际长度匹配的情况下,确定语音合成的效果符合要求;和/或,
138.在该音频文件的预期长度与该音频文件的实际长度不匹配的情况下,确定语音合成的效果不符合要求。
139.在一些实施方式中,该sdk层模块620用于:
140.接收被压缩的音频文件;
141.对该被压缩的音频文件进行解压缩,得到解压缩后的音频文件;确定该解压缩后的音频文件的实际长度。
142.在一些实施方式中,该业务层模块610用于:接收测试场景,根据该测试场景设置应用环境上下文;
143.图7是根据本公开一实施例的一种语音合成测试系统700的结构示意图,该语音合成测试系统700还包括:
144.远程平台710,用于向中控设备720发送测试场景触发指令;
145.中控设备720,用于接收该测试场景触发指令,对该场景测试触发指令进行解析,以得到该测试场景,并将该测试场景发送至该业务层模块610。
146.在一些实施方式中,该业务层模块610还用于,将该测试数据发送至该中控设备720;
147.该中控设备720还用于,接收该测试场景,并对该测试数据进行处理和/或校验,并将处理和/或校验后的测试数据上传至该远程平台710。
148.本公开实施例的装置的各模块、子模块的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。
149.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
150.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
151.图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限
制本文中描述的和/或者要求的本公开的实现。
152.如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
153.设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
154.计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如语音合成测试方法。例如,在一些实施例中,语音合成测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的语音合成测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行语音合成测试方法。
155.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
156.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
157.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom
或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
158.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
159.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
160.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
161.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
162.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献