具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本说明书中的实施例提供了语音投票方法、投票内容验证方法及其系统。其中,用户可以通过语音投票系统进行语音投票,投票内容被上传至区块链存证系统,进而用户可以通过投票内容验证系统对目标投票内容进行验证。如此,不仅使用户可以通过语音方式方便地进行投票及验票,由于上传至区块链存证系统的投票内容不易被篡改也可以保证相关的验票及计票环节更具公正性。
图1为根据本说明书一些实施例所示的投票系统100的应用场景示意图。
如图1所示,投票系统100可以包括用户终端110、服务器120、区块链存证系统130、网络140和存储设备150。其中,从功能上,投票系统100可以包括语音投票系统400和投票内容验证系统500。语音投票系统400和投票内容验证系统500均可以在用户终端110和服务器120上实施,即,系统可以包括设置于用户终端110的前端部分和设置于服务器120的后端部分。本说明书提供的投票系统100可以用于各种投票场景。其中,用户可以通过用户终端110进行语音投票,用户终端110可以将与投票相关的语音指令上传给服务器120进行后续处理,服务器120可以通过语音识别技术从语音指令中提取用户的投票内容存储在本地,同时将投票内容以某种方式存入区块链存证系统130中。在一些实施例中,用户终端110可以对语音指令进行处理得到投票内容,一方面将投票内容传输给服务器120备份,另一方面可以将投票内容以某种方式存入区块链存证系统130中。在一些实施例中,投票系统100可以接收用户对投票内容的查询和验证。例如,用户可以基于查询条件,如投票对象A、票数,向服务器120发起查询请求,并获取服务器120返回的投票内容,如投票对象A获得N票。在一些实施例中,用户对从服务器120返回的投票内容存在疑议时,可以对投票记录进行验证。例如,用户可以向服务器120发起验证请求,服务器120可以基于区块链存证系统130中的记录对请求验证的投票内容进行验证。又例如,用户终端110可以直接基于区块链存证系统130中的记录对有争议的投票内容进行验证。
关于语音投票和投票内容验证的更多细节,可以参考图2~5及其相关描述。
用户终端110是指用户所使用的终端设备或软件。在一些实施例中,用户可以指投票参与方。
在一些实施例中,终端设备可以包括各类具有信息接收和/或发送功能的设备。在一些实施例中,该设备还支持语音输入功能,例如,内置有或可连接语音输入单元(如麦克风)。在一些实施例中,用户终端110可以包括移动设备110-1、平板计算机110-2、膝上型计算机110-3、机动车内建装置110-4等或其任意组合。在一些实施例中,移动设备110-1可包括可穿戴装置、智能行动装置等或其任意组合。在一些实施例中,可穿戴装置可包括智能手环、智能手表、智能背包、智能配饰、蓝牙耳机等或其任意组合。在一些实施例中,智能行动装置可包括智能电话、个人数位助理(PDA)等或其任意组合。在一些实施例中,机动车内建装置110-4可以包括车载装置、导航装置等或其任意组合。上述示例仅用于说明所述设备范围的广泛性而非对其范围的限制。
服务器120可以用于处理与投票相关的信息和/或数据。例如,服务器120可以将从语音指令中提取的投票内容存储在自身的存储设备、存储设备150和/或系统外部的存储设备中。存储的投票内容可用于验票、计票、备份、供用户查询等。具体地,可以参考后文有关语音投票和投票内容验证的描述。
在一些实施例中,服务器120可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,该服务器120可以是区域的或者远程的。在一些实施例中,服务器120可通过网络140访问存储于用户终端110、存储设备150中的信息和/或数据。在一些实施例中,服务器120可直接与用户终端110、存储设备150连接以访问存储于其中的信息和/或资料。在一些实施例中,服务器120可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。
区块链存证系统130可以被配置用于处理和/或保存投票系统100产生的投票记录,投票记录可以包括投票对象的标识信息、票数、用户的标识信息、投票时间、投票渠道和语音指令的源文件等。区块链存证系统130可以利用去中心的、分布式的和公共的数字账本,来维持不断增长的记录(如投票记录等)列表。区块链存证系统130可以保证记录以可验证和永久的方式存储,并且不能被追溯地修改。区块链存证系统130可以包括多个区块链节点,在一些实施例中,区块链节点可以包括各类终端设备、服务器等。例如,用户终端110也可作为区块链节点通过网络140加入区块链存证系统130,与区块链存证系统130中的一个或多个其他节点进行通信。
区块链存证系统130可以是任何类型的区块链网络,例如公有区块链网络、私有区块链网络、半私有区块链网络、联盟链等或其任何组合。在一些实施例中,区块链存证系统130可以基于Hyperledger fabric区块链构建。在运行时,用户可以通过用户终端110发起投票,服务器120可以接收用户的投票内容,并将投票内容存放入区块链存证系统130内用锁(也称为“哈希”)密封的区块中。
网络140可促进数据和/或信息的交换。在一些实施例中,投票系统100中的一个或多个组件(如:用户终端110、服务器120、区块链存证系统130、存储设备150)可通过网络140发送数据和/或信息给投票系统100中的其他组件。在一些实施例中,网络140可是任意类型的有线或无线网络。例如,网络140可包括缆线网络、有线网络、光纤网络、电信网络、内部网络、网际网络、区域网络(LAN)、广域网络(WAN)、无线区域网络(WLAN)、都会区域网络(MAN)、公共电话交换网络(PSTN)、蓝牙网络、ZigBee网络、近场通讯(NFC)网络等或以上任意组合。在一些实施例中,网络140可包括一个或多个网络进出点。例如,网络140可包含有线和/或无线网络进出点,如基站和/或多个网际网络交换点140-1、140-2,通过这些进出点,投票系统100的一个或多个组件可连接到网络140上以交换数据和/或信息。
图2为根据本说明书一些实施例所示的语音投票方法的示例性流程图。该流程200可以由语音投票系统400执行,具体地,可以由用户终端110执行,也可以由服务器120执行。该流程200可以包括:
步骤210,获取用户的语音指令,该语音指令与投票相关。在一些实施例中,步骤210可以由语音获取模块410实现。
语音指令可以是用户说的与投票相关的一段话。在一些实施例中,用户可以通过用户终端110预先定制该语音指令的内容形式,以便后续对语音指令中与投票相关的内容的识别和提取。例如,语音指令可被定制为“为XXX投N票”、“给XXX投N票”、“把N票投给XXX”、“支持XXXN票”、“投XXX”(只关心投票对象)、“支持”/“反对”(预先提示用户投票对象)等或类似形式,其中,“XXX”表示投票对象的标识信息(如,名称、编号、姓名、别名等),N表示票数。基于此,可以准确提取出支持情况(即支持/反对)、投票对象和/或票数。
在一些实施例中,投票对象可以指人,也可以指其他事物,具体可以视投票的主题而定。例如,投票对象可以指选秀节目中的选手、选举活动的参选人、具有意见分歧的论点、最喜欢(或厌恶)的书籍/游戏/漫画/歌曲/食物/动物/花/季节等等。
需要说明的是,本说明书提及的语音指令的内容识别均可以通过语音识别技术实现。语音识别技术,也被称为自动语音识别(Automatic Speech Recognition,ASR)技术,其目标是将人类语音中的词汇内容转换为计算机可读的输入,例如二进制编码或者字符序列。语音识别技术可采用的方法包括:基于语言学和声学的方法、随机模型法、利用人工神经网络的方法、概率语法分析方法等。以随机模型法为例,该方法主要采用提取声学特征、训练模板、对模板进行分类及匹配模板的流程来对语音进行识别。在一些实施例中,可以是由用户终端110执行语音识别过程,也可以是在用户终端110将语音指令发送给服务器120后服务器120执行语音识别过程并将识别结果反馈给用户终端110。
在一些实施例中,语音投票系统400可以在用户终端110接收到语音唤醒指令时从休眠状态进入工作状态。在一些实施例中,用户可以通过用户终端110定制语音唤醒指令的内容形式,例如,该语音唤醒指令可被定制为“AA同学”、“AA,AA”等类似形式,其中,AA可以是系统的简称或别名(如,小票)。
步骤220,基于语音指令获得第一投票信息,第一投票信息反映用户的投票内容。在一些实施例中,步骤220可以由第一投票信息获得模块420执行。
在一些实施例中,第一投票信息可以包括通过对语音指令进行语音识别得到的投票内容,例如,支持情况(即支持/反对)、投票对象的标识信息和票数中的至少一种。在一些实施例中,第一投票信息还可以包括其他投票内容,例如,用户的标识信息、投票时间、投票渠道和语音指令的源文件中的至少一种。包含各类投票内容的第一投票信息不仅有助于还原完整的投票事件,还可以达到自我校验的效果。以第一投票信息包括投票对象的标识信息、票数、用户的标识信息、投票时间、投票渠道和语音指令的源文件为例,投票对象的标识信息、票数、用户的标识信息、投票时间、投票渠道,该第一投票信息不仅可以还原出哪位用户于何时通过哪种投票渠道给哪位投票对象投了多少票这一投票事件,通过运行其中的语音指令的源文件还可以检验还原出的投票事件是否无误。
在一些实施例中,语音投票方法还可以包括声纹验证过程。在一些实施例中,声纹验证过程可以由声纹验证模块执行。具体地,声纹验证模块可以判断语音指令对应的声纹信息是否与目标用户的声纹信息一致,若是,则指示第一投票信息获得模块420继续获取用户的第一投票信息,若否,则指示第一投票信息获得模块420不再获取用户的第一投票信息。其中,目标用户可以指用户终端110上的登录用户或者与用户终端110绑定的用户。应当理解,用户的声纹信息可以通过用户终端110预先采集。通过声纹验证,可以确保输入语音指令的用户是目标用户本人,避免投票权被冒用。另外,声纹验证还可以用于限制通过用户终端110对语音投票系统400/投票内容验证系统500的访问权,即只允许用户终端110上的登录用户或者与用户终端110绑定的用户本人对系统的访问。
步骤230,将第一投票信息和/或其映射值上传至区块链存证系统。在一些实施例中,步骤230可以由第一存证模块430执行。
在一些实施例中,第一存证模块430可以将第一投票信息直接上传至区块链存证系统。在一些实施例中,用户终端110可以采用预设算法将第一投票信息映射成与其唯一对应的映射值上传至区块链存证系统。如此,映射值除了可以唯一标识对应的第一投票信息外,当映射算法的反向推导难度较高时还可以起到隐匿对应的第一投票信息的作用,可应用于匿名投票等。在一些实施例中,第一存证模块430可以将第一投票信息和其映射值一起上传至区块链存证系统,以达到自我校验的效果。即,若查询到的同时写入区块链中的第一投票信息和映射值不对应,则有可能第一投票信息在写入区块链前被篡改过。
可以理解,投票系统100每产生一个投票记录,便可将该投票记录以一个区块(block)的形式存储在区块链存证系统中。区块包括区块头与区块体。在一些实施例中,区块头用于记录当前区块的特征值,使其具有唯一性。仅作为示例,区块头可以包括区块生成时间、区块实际数据的映射值以及上一个区块的特征信息(如上一个区块的区块头的映射值)。区块体则可存储区块的实际数据。在一些实施例中,第一存证模块430可以将第一投票信息作为实际数据存入区块,或者计算第一投票信息的映射值,将该映射值作为实际数据存入区块。在一些实施例中,第一存证模块430还可以随机抽取部分第一投票信息,将其作为实际数据存入区块,这样处理在一定程度上可以节省存储资源以及提高数据处理速度。在一些实施例中,第一存证模块430可以记录当前投票记录(或当前区块)在区块链存证系统中的区块地址,以便后续验证。
应当理解,区块链具有不可(难以)篡改的特性,写入区块链中的数据可以作为可靠的参考,来检验该数据的相关记录的完整性(是否已被更改)。举例来说,若第一存证模块430将与某一投票内容对应的投票信息的映射值写入区块链,则后续可以通过计算记录的该投票内容的映射值以及比对计算出的映射值和从区块链上查询到的映射值,来验证记录的该投票内容是否已被改变,进而可以将验证结果作为验票/计票的。
值得说明的是,本说明书提及的映射算法均可采用输出能唯一标识输入且反向推导(即,由输出推导出输入)难度较高的算法。一方面,输出能唯一标识输入即表明输入与输出是一一对应的。对输入的任何改变都会导致输出的变化,反过来输出的不同意味着输入被改变过,因而映射值可用于检验输入的完整性。以第一投票信息为例,另一方面,由于校验过程需要用到映射算法,计算映射值所采用的映射算法是需要公开的,这就要求在已知映射算法的情况下通过作为输出的映射值反向推导出作为输入的原始信息(例如,第一投票信息和第二投票信息)是较难的,以起到隐匿原始信息的作用。在一些实施例中,本说明书提及的映射算法均可采用哈希算法,即映射值可以包括哈希值。对于不同的输入,哈希值相同的概率极低,可以认为哈希值与输入是一一对应的,从而可以认为哈希值能唯一标识输入。由于无论输入的长度是多少哈希值的长度都是固定的,将哈希值写入区块链可以节省区块链存证系统的存储空间,尤其是当输入(例如,第一投票信息和第二投票信息)包括内存占用较大的语音源文件时。
在一些实施例中,考虑到用户有更改投票内容的需要,响应于语音指令指示语音指令指示用户对投票内容进行更改,语音投票系统400可以基于该语音指令获得第二投票信息,并将第二投票信息和/或其映射值上传至所述区块链存证系统。其中,所述第二投票信息反映用户对投票内容的更改情况。关于将第二投票信息和/或其映射值上传至所述区块链存证系统的具体内容,可以参见文中其他地方关于将第一投票信息和/或其映射值上链的描述。在一些实施例中,对投票内容的更改可以包括放弃已经投出的票、更换投票对象和/或更改票数等中的至少一种。在一些实施例中,第二投票信息可以包括用户的身份信息、更改时间、更改渠道、与更改相关的语音指令的源文件和投票更改结果中的至少一种。其中,投票更改结果可以指更改后的投票结果,投票结果可以包括支持情况(即支持/反对)、投票对象、票数等中的至少一种。在一些实施例中,映射值可以包括哈希值。
在一些实施例中,语音投票系统400在获得语音识别结果后,可以基于该语音识别结果生成确认语音并通过用户终端110播放确认语音,以使用户可以对语音识别结果进行确认。然后,若获取到用户的确认指令,则继续基于获得的语音识别结果执行进一步的操作,例如,生成所述第一/第二投票信息。在一些实施例中,该确认指令可以是语音指令以提升用户体验。在一些实施例中,用户可以通过用户终端110预先定制语音确认指令的内容形式,以便准确识别用户的确认情况。例如,该语音确认指令可被定制为“好”、“是”、“对”、“正确”、“不是”、“不对”、“错误”等或类似形式。
需要说明的是,基于语音识别结果生成确认语音可以通过语音合成技术实现。语音合成技术是通过机械的、电子的方法产生人造语音的技术,可以将文字信息转换成语音播放出来,也被称为文语转换(Text to Speech,TTS)技术。在一些实施例中,语音合成的方法可以包括参数合成方法、波形拼接方法等等。其中,波形拼接方法可以包括LPC(LinearPredictive Coding,线性预测编码)合成方法、PSOLA(Pitch Synchronized Overlap-Add,基音同步叠加)合成方法等等。在一些实施例中,语音合成过程可以直接由用户终端110执行,即用户终端110基于语音识别结果生成确认语音并播放该确认语音。在一些实施例中,语音合成过程可以由服务器120执行,即服务器120基于语音识别结果生成确认语音并将该确认语音的源文件发送给用户终端110播放。
图3为根据本说明书一些实施例所示的投票内容验证方法的流程示意图。该流程300可以由所述投票内容验证系统执行,具体地,可以由用户终端110或服务器120执行。该流程300可以包括:
步骤310,获取语音指令,所述语音指令指示针对目标投票内容的验证请求。在一些实施例中,步骤310可以由语音指令获取模块510执行。
其中,目标投票内容可以与任意投票事件相关。例如,目标投票内容可以包括某用户某一时间投票给某投票对象。又如,目标投票内容可以指示某用户对投票结果的更改情况。前文提到,服务器120将从语音指令中提取的投票内容存储在存储设备中作为记录,用于验票、计票、备份、供用户查询等。由于服务器120记录的投票内容的一旦被更改将会影响验票及计票过程的可靠性,用户可以通过用户终端110输入语音指令,发起针对目标投票内容的验证请求。具体地,该验证请求可以包括针对目标投票内容完整性的验证请求。在一些实施例中,完整性可以反映目标数据(例如,目标投票内容)的被篡改情况。
在一些实施例中,投票内容验证系统可以在用户终端110接收到语音唤醒指令时,从休眠状态进入工作状态。在一些实施例中,语音唤醒指令可被定制为“AA同学”、“AA,AA”等类似形式,其中,AA可以是系统的简称或别名(如,小正)。
步骤320,基于所述语音指令,向区块链存证系统查询目标投票信息和/或其映射值,目标投票信息与目标投票内容对应。在一些实施例中,步骤320可以由查询模块520执行。
在一些实施例中,目标投票信息可以理解为在区块链存证系统中且在某一层面上与待验证的目标投票内容相关联,可以用于验证所述目标投票内容的信息,相对应可以理解为相同或包含关系。例如,目标投票信息是目标投票内容的一部分。在一些实施例中,相对应也可以理解为,目标投票内容与目标投票信息通过相同的区块地址关联在一起,两者内容是否是相同或包含关系有待进一步验证。
在一些实施例中,查询模块520可以基于语音指令中的目标投票内容在区块链存证系统中进行查询(如,遍历每一个区块,判断所述投票内容是否存在于区块链存证系统中)。在一些实施例中,查询模块520基于预设算法对目标投票内容进行计算得到其映射值,在区块链存证系统中进行查询是否存在相同的映射值。
在一些实施例中,语音投票系统400在将投票内容以投票信息和/或其映射值的形式上传至区块链存证系统时,可记录该投票内容的区块地址。在一些实施例中,查询模块520可以先基于语音指令中的目标投票内容获取其区块地址,然后基于该区块地址从区块链存证系统中获取对应的目标投票信息和/或其映射值,将该目标投票内容和/或其映射值,以及该目标投票信息和/或其映射值进行比对,判断两者是否一致。
步骤330,至少基于查询结果验证目标投票内容的完整性。在一些实施例中,步骤330可以由验证模块530执行。
在一些实施例中,验证模块530可以基于仅基于查询结果验证目标投票内容的完整性。具体地:若查询结果指示目标投票内容和/或其映射值对应的目标投票信息和/或其映射值存在于区块链存证系统中,则确定所述目标投票内容未被改变,数据是真实完整的;若查询结果指示所述目标投票内容和/或其映射值对应的目标投票内容和/或其映射值不存在于区块链存证系统中,则确定所述目标投票内容已被改变(甚至完全是伪造的)。
在一些实施例中,当查询模块520基于区块地址从区块链存证系统130中获取到目标投票内容对应的目标投票信息后,验证模块530可以基于两者的比对结果对目标投票内容进行验证。对于目标投票内容本身而言,验证模块530可以直接比对从区块链存证系统查询到的目标投票信息和该目标投票内容,若对比结果一致,例如,目标投票内容被完全包含于目标投票信息中时,则可以确定目标投票内容是真实完整的。在一些实施例中,也可以对目标投票内容与目标投票信息分别随机抽取相同位置的内容进行比对,这样处理有助于提高比对的效率,节约运算时间。在一些实施例中,区块链存证系统仅对投票内容的映射值进行存储时,验证模块530可以先基于目标投票内容计算其映射值,再将计算得到的映射值与向区块链存证系统查询得到的目标投票信息的映射值进行比对,进而基于比对结果确定所述目标投票内容的完整性。
在一些实施例中,上述查询和验证过程可以由服务器120执行再将验证结果反馈给用户终端110。在一些实施例中,上述查询和验证过程可以由用户终端110执行,服务器120仅提供记录的投票内容。
在一些实施例中,参考前述有关声纹识别的内容,投票内容验证系统500还可以判断指示针对目标投票内容的验证请求的语音指令对应的声纹信息是否与目标用户的声纹信息一致,若否,则不再验证该目标投票内容的完整性。可以理解为,当语音指令对应的声纹信息与目标用户的声纹信息不一致,查询模块520以及验证模块530均不执行查询步骤及验证步骤。
应当注意的是,上述有关流程200和300的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程200和300进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图4为根据本说明书一些实施例所示的语音投票系统400的示例性框图。该系统400可以包括语音指令获取模块410、第一投票信息获得模块420和第一存证模块430。
在一些实施例中,语音指令获取模块410可以用于获取用户的语音指令,该语音指令与投票相关。
在一些实施例中,第一投票信息获得模块420可以用于基于语音指令获得第一投票信息,该第一投票信息反映用户的投票内容。在一些实施例中,第一投票信息可以包括投票对象的标识信息、票数、用户的标识信息、投票时间、投票渠道和语音指令的源文件中的至少一种。在一些实施例中,第一投票信息获得模块420可以进一步用于:对语音指令进行语音识别,获得识别结果;基于识别结果生成确认语音;播放确认语音;响应于获取到用户的确认指令,基于识别结果获得第一投票信息。
在一些实施例中,第一存证模块430可以用于将第一投票信息和/或其映射值上传至区块链存证系统。在一些实施例中,映射值可以包括哈希值。
在一些实施例中,语音投票系统400还可以包括声纹验证模块。在一些实施例中,声纹验证模块可以用于:判断所述语音指令对应的声纹信息是否与目标用户的声纹信息一致,若否,则指示第一投票信息获得模块不再获取所述用户的第一投票信息。
在一些实施例中,语音投票系统400还可以包括第二投票信息获得模块和第二存证模块。
在一些实施例中,第二投票信息获得模块可以用于响应于语音指令指示用户对投票结果进行更改,基于该语音指令获得第二投票信息,第二投票信息反映用户对投票内容的更改情况。在一些实施例中,第二投票信息可以包括用户的身份信息、更改时间、更改渠道、与更改相关的语音指令的源文件和投票更改结果中的至少一种。
在一些实施例中,第二存证模块可以用于将第二投票信息和/或其映射值上传至区块链存证系统。在一些实施例中,映射值可以包括哈希值。
图5为根据本说明书一些实施例所示的投票内容验证系统500的示例性框图。该系统500可以包括语音指令获取模块510、查询模块520和验证模块530。
在一些实施例中,语音指令获取模块510可以用于获取语音指令,该语音指令指示针对目标投票内容的验证请求。
在一些实施例中,查询模块520可以用于基于语音指令,向区块链存证系统查询目标投票信息和/或其映射值,该目标投票信息与所述目标投票内容对应。在一些实施例中,映射值可以包括哈希值。
在一些实施例中,验证模块530可以用于至少基于查询结果验证目标投票内容。
在一些实施例中,查询模块520可以进一步用于:基于语音指令中的目标投票内容确定对应的区块地址;基于该区块地址从区块链存证系统中获取目标投票信息和/或其映射值。相应地,验证模块530可以进一步用于:将目标投票内容和/或其映射值,以及目标投票信息和/或其映射值进行比对;若比对结果为一致,则确定目标投票内容未被改变;若比对结果为不一致,则确定目标投票内容已被改变。
在一些实施例中,查询模块520可以进一步用于:遍历区块链存证系统中的区块,以查询目标投票信息和/或其映射值。相应地,验证模块530可以进一步用于:若查询结果指示目标投票信息和/或其映射值存在,则确定目标投票内容未被改变;若查询结果指示目标投票信息和/或其映射值不存在,则确定目标投票内容已被改变。
在一些实施例中,投票内容验证系统500还可以包括声纹验证模块,该声纹验证模块可以用于:判断语音指令对应的声纹信息是否与目标用户的声纹信息一致,若否,则不再验证目标投票内容。
应当理解,图4和图5所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,图4中披露的第一投票信息获得模块420和第一存证模块430可以是一个系统中的不同模块,也可以是一个模块实现这两个模块的功能。又如,在一些实施例中,图4中披露的语音获取模块410和图5中披露的语音获取模块510可以是两个模块,也可以合并为一个模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)语音交互方式提高了用户进行投票及投票内容验证时的体验;(2)上链的投票内容无法被篡改因而可以作为可靠的验证依据,有利于验票及计票的公正性。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。