语音交互方法、装置、计算机可读存储介质及电子设备
文献发布时间:2023-06-19 11:42:32
技术领域
本公开涉及计算机技术领域,尤其是一种语音交互方法、装置、计算机可读存储介质及电子设备。
背景技术
随着人工智能技术的不断进步,人机交互也取得了长足的发展。智能语音交互技术可以应用到汽车、机器人、家用电器、中控系统、门禁系统、ATM机等各种设备中。
例如现有的车载语音交互场景中,语音交互系统通常只接收一路语音信号,语音信号经过处理后向用户做出反馈。随着人工智能技术的发展,语音交互系统向着更加高效、智能、个性化的方向发展。
发明内容
本公开的实施例提供了一种语音交互方法、装置、计算机可读存储介质及电子设备。
本公开的实施例提供了一种语音交互方法,该方法包括:获取至少一路音频信号;利用预设的语音识别模型对至少一路音频信号进行识别,通过语音识别模型得到第一类识别结果;从缓存中确定已存储的关于至少一路音频信号的识别数据;基于已存储的识别数据,生成第二类识别结果;利用语音识别模型,对第一类识别结果和第二类识别结果进行处理,得到至少一路音频信号分别对应的语句识别结果;对各个语句识别结果分别进行语义解析,得到至少一个解析结果;基于至少一个解析结果,生成用于控制语音交互设备执行相应功能的指令。
根据本公开实施例的另一个方面,提供了一种语音交互装置,该装置包括:获取模块,用于获取至少一路音频信号;识别模块,用于利用预设的语音识别模型对至少一路音频信号进行识别,通过语音识别模型得到第一类识别结果;确定模块,用于从缓存中确定已存储的关于至少一路音频信号的识别数据;第一生成模块,用于基于已存储的识别数据,生成第二类识别结果;处理模块,用于利用语音识别模型,对第一类识别结果和第二类识别结果进行处理,得到至少一路音频信号分别对应的语句识别结果;解析模块,用于对各个语句识别结果分别进行语义解析,得到至少一个解析结果;第二生成模块,用于基于至少一个解析结果,生成用于控制语音交互设备执行相应功能的指令。
根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于执行上述语音交互方法。
根据本公开实施例的另一个方面,提供了一种电子设备,电子设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述语音交互方法。
基于本公开上述实施例提供的语音交互方法、装置、计算机可读存储介质及电子设备,通过利用预设的语音识别模型对至少一路音频信号进行识别,在识别过程中,从缓存提取已经存储的识别数据生成一部分识别结果,另一部分识别结果由语音识别模型生成,从而有效地复用了已经存储的识别数据,无需语音识别模型对全量数据进行处理,提高了对至少一路音频信号进行处理的效率,有助于在多路语音交互的场景仍然能够满足低资源消耗、低处理延迟的要求。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开所适用的系统图。
图2是本公开一示例性实施例提供的语音交互方法的流程示意图。
图3是本公开另一示例性实施例提供的语音交互方法的流程示意图。
图4是本公开另一示例性实施例提供的语音交互方法的流程示意图。
图5是本公开另一示例性实施例提供的语音交互方法的流程示意图。
图6是本公开另一示例性实施例提供的语音交互方法的流程示意图。
图7是本公开的实施例的语音交互方法的一个应用场景的示意图。
图8是本公开一示例性实施例提供的语音交互装置的结构示意图。
图9是本公开另一示例性实施例提供的语音交互装置的结构示意图。
图10是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
目前的语音交互技术通常只能够同时处理一路语音信号,为了满足多用户、个性化的语音识别要求,需要将语音交互技术应用到多路语音识别的场景。目前,语音识别模型需要对语音信号进行全量数据的处理,导致语音识别的效率较低,交互延迟较大,尤其在多路语音识别的场景下,无法满足用户对语音交互系统高效、个性化的要求。
图1示出了可以应用本公开的实施例的语音交互方法或语音交互装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。网络102用于在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如语音识别应用、多媒体应用、搜索类应用、网页浏览器应用、购物类应用、即时通信工具等。
终端设备101可以是各种电子设备,包括但不限于诸如车载终端、移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)等等的移动终端以及诸如数字TV、台式计算机、智能家电等等的固定终端。
服务器103可以是提供各种服务的服务器,例如对终端设备101上传的音频信号进行识别的后台语音识别服务器。后台语音识别服务器可以对接收到的音频进行处理,得到用于控制语音交互设备的指令并反馈给终端设备。
需要说明的是,本公开的实施例所提供的语音交互方法可以由服务器103执行,也可以由终端设备101执行,相应地,语音交互装置可以设置于服务器103中,也可以设置于终端设备101中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。在音频信号不需要从远程获取的情况下,上述系统架构可以不包括网络,只包括服务器或终端设备。
图2是本公开一示例性实施例提供的语音交互方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101或服务器103)上,如图2所示,该方法包括如下步骤:
步骤201,获取至少一路音频信号。
在本实施例中,电子设备可以从本地或从远程获取至少一路音频信号。作为示例,当本实施例应用于车载语音识别场景时,上述至少一路音频信号可以是车辆内安装的至少一个麦克风采集的车内至少一个乘客的语音信号。
步骤202,利用预设的语音识别模型对至少一路音频信号进行识别,通过语音识别模型得到第一类识别结果。
在本实施例中,电子设备可以利用预设的语音识别模型对至少一路音频信号进行识别,通过语音识别模型得到第一类识别结果。其中,语音识别模型可以是预先利用大量的语音信号样本进行训练得到的模型。语音识别模型用于对输入的音频信号进行识别,得到一个语句识别结果。
通常,语音识别模型可以包括多个子模型,例如包括声学子模型(用于对音频信号进行音节划分)、语言子模型(用于将各个音节转化为词语)、解码网络(用于从多个词语中选择最优组合得到一个句子)。
在上述语音识别模型进行识别的过程中,电子设备通常会首先从缓存中查找当前处理阶段对应的识别数据,若缓存中不存在相应的识别数据,则利用上述语音识别模型进行识别,得到的识别数据作为第一类识别结果。
步骤203,从缓存中确定已存储的关于至少一路音频信号的识别数据。
在本实施例中,电子设备可以从缓存中确定已存储的关于至少一路音频信号的识别数据。通常,在上述语音识别模型进行识别的过程中,电子设备通常会首先从缓存中查找当前处理阶段对应的识别数据,若缓存中存在相应的识别数据,则提取该识别数据。
步骤204,基于已存储的识别数据,生成第二类识别结果。
在本实施例中,电子设备可以基于上述步骤203提取的已存储的识别数据,生成第二类识别结果。作为示例,可以将上述已存储的识别数据作为第二类识别结果,也可以对上述已存储的识别数据进行一定的处理后(例如对数据进行一定比例的缩放、归一化处理等)得到第二类识别结果。
需要说明的是,上述第一类识别结果和第二类识别结果通常为语音识别模型处理过程中得到的中间结果,例如音节的概率得分、词语的概率得分等。
步骤205,利用语音识别模型,对第一类识别结果和第二类识别结果进行处理,得到至少一路音频信号分别对应的语句识别结果。
在本实施例中,电子设备可以利用语音识别模型,对第一类识别结果和第二类识别结果进行处理,得到至少一路音频信号分别对应的语句识别结果。通常,由于第一类识别结果和第二类识别结果为语音识别模型处理得到的中间结果,因此,语音识别模型需要进一步对第一类识别结果和第二类识别结果进行处理。作为示例,第一类识别结果和第二类识别结果可以包括对音频信号识别后得到的每个音节的概率得分和每个词语的概率得分,对于一个音频信号,语音识别模型可以利用路径搜索算法(例如Viterbi算法)从音频信号对应的识别出的多个词语中确定一条最优路径,从而得到一个句子作为语句识别结果。
步骤206,对各个语句识别结果分别进行语义解析,得到至少一个解析结果。
在本实施例中,电子设备可以对各个语句识别结果分别进行语义解析,得到至少一个解析结果。其中,上述至少一个解析结果中的每个解析结果对应一个音频信号。通常,解析结果可以是结构化的数据。例如,语句识别结果为“空调温度设为25度”,解析结果即为“领域=车控,意图=空调温度设置,槽位=<温度值=25>”。
需要说明的是,对语句进行语句解析的方法可以采用现有技术。例如使用规则引擎、神经网络引擎等。
步骤207,基于至少一个解析结果,生成用于控制语音交互设备执行相应功能的指令。
在本实施例中,电子设备可以基于至少一个解析结果,生成用于控制语音交互设备执行相应功能的指令。其中,上述语音交互设备可以为上述用于执行本公开的语音交互方法的电子设备,也可以是与上述电子设备通信连接的电子设备。作为示例,当语音交互设备为车载空调时,若解析结果为“领域=车控,意图=空调温度设置,槽位=<温度值=25>”,则可以生成用于控制车载空调设为25摄氏度的指令。
本公开的上述实施例提供的方法,通过利用预设的语音识别模型对至少一路音频信号进行识别,在识别过程中,从缓存提取已经存储的识别数据生成一部分识别结果,另一部分识别结果由语音识别模型生成,从而有效地复用了已经存储的识别数据,无需语音识别模型对全量数据进行处理,提高了对至少一路音频信号进行处理的效率,有助于在多路语音交互的场景仍然能够满足低资源消耗、低处理延迟的要求。
在一些可选的实现方式中,电子设备还可以将语音识别模型在识别过程中得到的识别数据存入缓存。具体地,当上述缓存中不存在某个识别步骤对应的识别数据时,需要语音识别模型执行该识别步骤,得到识别数据存入缓存,从而使存入的识别数据可以被其他识别步骤复用。
本实现方式通过将语音识别模型在识别过程中得到的识别数据存入缓存,可以实现识别数据的复用,使缓存中的识别数据不断更新,在模型识别过程中使用更多的已存储的识别数据,从而进一步提高语音识别的效率。
在一些可选的实现方式中,上述步骤201可以如下执行:
首先,接收音频采集设备采集的初始音频信号。
其中,音频采集设备的数量可以是至少一个,从而采集到至少一路初始音频信号。初始音频信号可以是音频采集设备对至少一个用户的语音进行采集得到的信号。例如,音频采集设备可以包括多个,每个音频采集设备安装在车辆内的某个座位附近,用于采集相应座位上的乘客的语音,此时采集的音频信号通常包含多个用户的混合语音信号。
然后,对初始音频信号进行声源分离处理,得到至少一路音频信号。
其中,声源分离的方法可以采用现有技术,例如采用现有的盲源分离(BlindSource Separation,BSS)算法,将多个用户的语音信号分离,得到的至少一路音频信号分别对应于一个用户。在车载语音交互的场景下,声源分离处理还可以将得到的每路音频信号对应到相应的音频采集设备,由于各音频采集设备安装在相应的座位附近,因此,得到的每路音频信号可以对应到相应的座位。通过声源分离技术实现多个用户的语音信号的分离并与音频采集设备建立对应关系是目前的现有技术,这里不再赘述。
本实现方式通过对初始音频信号进行声源分离,可以将多个用户的语音分离,从而使后续的每个语音识别结果对应的相应用户,有助于提高多个用户进行语音交互的精确性。
在一些可选的实现方式中,如图3所示,步骤202可以包括如下子步骤:
步骤2021,确定至少一路音频信号分别对应的语音识别实例。
其中,语音识别实例可以通过代码构建,每个语音识别实例对应于一路音频信号,用于对该路音频信号进行识别。
步骤2022,并行执行确定的各个语音识别实例。
作为示例,可以采用多线程的方式实现各个语音识别实例并行执行;或者,还可以将各个语音识别实例分别由不同的CPU执行,从而实现并行执行。
步骤2023,通过各个语音识别实例分别利用语音识别模型,对对应的音频信号进行识别。
具体地,各个语音识别实例可以并行地分别调用语音识别模型对相应的语音信号进行识别,从而实现了对音频信号的并行识别。通常,在对至少一路音频信号进行识别时,可以先将语音识别模型加载到内存中,各个语音识别实例共享该语音识别模型。需要说明的是,各个语音识别实例在进行语音识别时,可以共用上述缓存,从而提高各个语音识别实例的识别效率。
本实现方式通过构建每个音频信号对应的语音识别实例以及并行执行各个语音识别实例,可以实现对多个用户的语音同时进行识别,同时各个语音识别实例共用一个语音识别模型来识别语音信号,以及共用同一个缓存来存储和调用识别数据,实现了对至少一路音频信号并行地进行语音识别,以及共享识别时所需资源,提高了多用户语音交互场景下的语音识别效率,由于共用的缓存存储了已经识别出的数据,在识别过程中直接调用即可,无需重复识别时占用更多的内存资源,因此大大节约了内存资源。
在一些可选的实现方式中,如图4所示,步骤206可以包括如下子步骤:
步骤2061,确定所得到的各个语句识别结果分别对应的语义解析实例。
其中,语义解析实例可以通过代码构建,每个语义解析实例对应于一路音频信号的语句识别结果,用于对语句识别结果进行结构化解析。
步骤2062,并行执行确定的各个语义解析实例。
作为示例,可以采用多线程的方式实现各个语义解析实例并行执行;或者,还可以将各个语义解析实例分别由不同的CPU执行,从而实现并行执行。
步骤2063,通过各个语义解析实例分别对对应的语句识别结果进行语义解析。
具体地,各个语义解析实例可以并行地调用预先设置的规则引擎、神经网络引擎等模块,实现对语句识别结果的并行解析。
本实现方式通过构建每个语句识别结果对应的语义解析实例以及并行执行各个语义解析实例,可以实现对多个用户的语音同时进行识别及解析,从而可以构建多条可以同时进行语音交互的链路,同时各个语义解析实例共用一套语义资源,提高了多用户语音交互场景下的语音识别效率。
进一步参考图5,示出了语音交互方法的又一个实施例的流程示意图,本实施例中。如图5所示,在上述图2所示实施例的基础上,步骤202可以包括如下步骤:
步骤2024,利用语音识别模型包括的声学子模型,确定至少一路音频信号分别对应的音节集合和音节集合中的音节分别对应的第一概率得分。
其中,声学子模型用于对输入的音频信号进行音节划分。作为示例,声学子模型可以包括但不限于隐马尔可夫模型(HMM)、高斯混合模型(GMM)等。第一概率得分用于表征音节被正确划分的概率。
步骤2025,利用语音识别模型包括的语言子模型,确定至少一路音频信号分别对应的词语集合。
其中,语言子模型用于根据上述音节集合确定词语集合,作为示例,语言子模型可以包括但不限于n-gram语言模型、神经网络语言模型等。
步骤2026,对于词语集合中的词语,确定缓存中是否存在该词语对应的第二概率得分,若不存在,利用语言子模型确定该词语对应的第二概率得分。
其中,第二概率得分用于表征被识别出的词语出现的概率。例如计算“打开”后面出现“空调”的概率即为词语“空调”对应的第二概率得分。
当需要确定某个词语的概率得分时,电子设备首先从缓存中查找是否存在当前词语的第二概率得分,当不存在时,使用语言子模型对该词语的第二概率得分进行计算。在本实施例中,由于语言子模型的数据处理量较大,因此,使用缓存存储语言子模型生成的第二概率得分。
步骤2027,基于第一概率得分和语言子模型确定的第二概率得分,确定第一类识别结果。
作为示例,可以将各个第一概率得分和各个第二概率得分确定为第一类识别结果。
由于语言子模型的数据处理量较大,因此,上述图5对应实施例提供的方法,使用缓存专门用于存储语言子模型生成的第二概率得分,从而使缓存的作用更加有针对性,即将缓存针对性地应用到数据处理量较大,数据存取较频繁的过程,充分发挥使用缓存节约运算资源的作用,减少缓存中的冗余数据,进而提高语音识别的效率。
进一步参考图6,示出了语音交互方法的又一个实施例的流程示意图,本实施例中。如图6所示,在上述图5所示实施例的基础上,步骤203可以包括如下步骤:
步骤2031,对于词语集合中的词语,确定缓存中是否存在该词语对应的第二概率得分,若存在,将缓存中的第二概率得分确定为该词语的第二概率得分语言子模型。
作为示例,当需要计算“打开”之后出现“空调”的概率时,在计算之前,先去缓存中查找之前是否已经存储有计算过的“空调”对应的第二概率得分,若有,则直接取用,无需重复计算了。
步骤2032,基于第一概率得分和从缓存中确定的第二概率得分,确定第二类识别结果。
作为示例,可以将各个第一概率得分和缓存中确定的第二概率得分确定为第二类识别结果。
上述图6对应实施例提供的方法,通过在确定词语对应的第二概率得分时,首先从缓存中查找第二概率得分并将查找到的第二概率得分确定为词语的第二概率得分,从而更有针对性地降低运算量较大的语言子模型的运算量并降低语言子模型的识别过程所占用的内存资源,进一步提高语音识别的效率。
在一些可选的实现方式中,基于上述图5或图6对应实施例,上述步骤205可以如下执行:
首先,根据第一类识别结果和第二类识别结果分别包括的第一概率得分和第二概率得分,在语音识别模型包括的解码网络中确定词语集合的目标路径。
其中,解码网络是基于上述词语集合构建的网络,基于该网络,可以根据第一概率得分和第二概率得分,在网络中查找一条词语组合的最优路径,该路径即为目标路径。需要说明的是,根据音节对应的概率得分和词语对应的概率得分确定最优路径的方法是现有技术,这里不再赘述。
然后,基于目标路径,生成至少一路音频信号分别对应的语句识别结果。
具体地,可以将目标路径对应的词语组合成的句子确定为语句识别结果。
本实现方式通过利用第一概率得分以及语言子模型计算得到的第二概率得分和从缓存中提取的第二概率得分,在解码网络中查找目标路径,进而生成语句识别结果,实现了在解码时充分利用缓存中的已存储的第二概率得分,提高了生成语句识别结果的效率。
继续参见图7,示出了本实施例的语音交互方法的应用场景的一个示意图。在图7的应用场景中,语音交互方法应用在车载语音交互系统。如图7所示,多路音频信号分别对应于一个交互链,包括主驾交互链701(用于驾驶员与车载语音交互系统进行交互)、副驾交互链702(用于副驾位置上的乘客与车载语音交互系统进行交互)、其他交互链703(用于其他座位上的乘客与车载语音交互系统进行交互)等。解码资源704包括语音识别模型7041和缓存7042,语义资源705包括用于解析语句识别结果的规则引擎7051和神经网络引擎7052。从图7可知,在主驾交互链701中,电子设备针对主驾语音信号生成语音识别实例A,针对副驾语音生成语音识别实例B,各语音识别实例共用一套解码资源704且并行执行,得到语句识别结果C和语句识别结果D。然后,电子设备构建语义实例E和语义实例F,语义实例E和语义实例F共用一套语义资源,分别对语句识别结果C和语句识别结果D进行解析,得到结构化的解析结果G和解析结果H。再然后,电子设备基于解析结果G和解析结果H生成指令I(例如用于打开空调)和指令J(例如用于关闭车窗),车载语音交互设备基于指令I和指令J执行相应的功能K和功能H。其他交互链703的执行过程类似,这里不再赘述。
图8是本公开一示例性实施例提供的语音交互装置的结构示意图。本实施例可应用在电子设备上,如图8所示,语音交互装置包括:获取模块801,用于获取至少一路音频信号;识别模块802,用于利用预设的语音识别模型对至少一路音频信号进行识别,通过语音识别模型得到第一类识别结果;确定模块803,用于从缓存中确定已存储的关于至少一路音频信号的识别数据;第一生成模块804,用于基于已存储的识别数据,生成第二类识别结果;处理模块805,用于利用语音识别模型,对第一类识别结果和第二类识别结果进行处理,得到至少一路音频信号分别对应的语句识别结果;解析模块806,用于对各个语句识别结果分别进行语义解析,得到至少一个解析结果;第二生成模块807,用于基于至少一个解析结果,生成用于控制语音交互设备执行相应功能的指令。
在本实施例中,获取模块801可以从本地或从远程获取至少一路音频信号。作为示例,当本实施例应用于车载语音识别场景时,上述至少一路音频信号可以是车辆内安装的至少一个麦克风采集的车内至少一个乘客的语音信号。
在本实施例中,识别模块802可以利用预设的语音识别模型对至少一路音频信号进行识别,通过语音识别模型得到第一类识别结果。其中,语音识别模型可以是预先利用大量的语音信号样本进行训练得到的模型。语音识别模型用于对输入的音频信号进行识别,得到一个语句识别结果。
通常,语音识别模型可以包括多个子模型,例如包括声学子模型(用于对音频信号进行音节划分)、语言子模型(用于将各个音节转化为词语)、解码网络(用于从多个词语中选择最优组合得到一个句子)。
在上述语音识别模型进行识别的过程中,识别模块802通常会首先从缓存中查找当前处理阶段对应的识别数据,若缓存中不存在相应的识别数据,则利用上述语音识别模型进行识别,得到的识别数据作为第一类识别结果。
在本实施例中,确定模块803可以从缓存中确定已存储的关于至少一路音频信号的识别数据。通常,在上述语音识别模型进行识别的过程中,确定模块803通常会首先从缓存中查找当前处理阶段对应的识别数据,若缓存中存在相应的识别数据,则提取该识别数据。
在本实施例中,第一生成模块804可以基于上述提取的已存储的识别数据,生成第二类识别结果。作为示例,可以将上述已存储的识别数据作为第二类识别结果,也可以对上述已存储的识别数据进行一定的处理后(例如对数据进行一定比例的缩放、归一化处理等)得到第二类识别结果。
需要说明的是,上述第一类识别结果和第二类识别结果通常为语音识别模型处理过程中得到的中间结果,例如音节的概率得分、词语的概率得分等。
在本实施例中,处理模块805可以利用语音识别模型,对第一类识别结果和第二类识别结果进行处理,得到至少一路音频信号分别对应的语句识别结果。通常,由于第一类识别结果和第二类识别结果为语音识别模型处理得到的中间结果,因此,语音识别模型需要进一步对第一类识别结果和第二类识别结果进行处理。作为示例,第一类识别结果和第二类识别结果可以包括对音频信号识别后得到的每个音节的概率得分和每个词语的概率得分,对于一个音频信号,语音识别模型可以利用路径搜索算法(例如Viterbi算法)从音频信号对应的识别出的多个词语中确定一条最优路径,从而得到一个句子作为语句识别结果。
在本实施例中,解析模块806可以对各个语句识别结果分别进行语义解析,得到至少一个解析结果。其中,上述至少一个解析结果中的每个解析结果对应一个音频信号。通常,解析结果可以是结构化的数据。例如,语句识别结果为“空调温度设为25度”,解析结果即为“领域=车控,意图=空调温度设置,槽位=<温度值=25>”。
需要说明的是,对语句进行语句解析的方法可以采用现有技术。例如使用规则引擎、神经网络引擎等。
在本实施例中,第二生成模块807可以基于至少一个解析结果,生成用于控制语音交互设备执行相应功能的指令。其中,上述语音交互设备可以为设置有上述语音交互装置的电子设备,也可以是与上述电子设备通信连接的电子设备。作为示例,当语音交互设备为车载空调时,若解析结果为“领域=车控,意图=空调温度设置,槽位=<温度值=25>”,则可以生成用于控制车载空调设为25摄氏度的指令。
参照图9,图9是本公开另一示例性实施例提供的语音交互装置的结构示意图。
在一些可选的实现方式中,该装置还包括:存储模块808,用于将语音识别模型在识别过程中得到的识别数据存入缓存。
在一些可选的实现方式中,获取模块801包括:接收单元8011,用于接收音频采集设备采集的初始音频信号;处理单元8012,用于对初始音频信号进行声源分离处理,得到至少一路音频信号。
在一些可选的实现方式中,识别模块802包括:第一确定单元8021,用于确定至少一路音频信号分别对应的语音识别实例;第一执行单元8022,用于并行执行确定的各个语音识别实例;识别单元8023,用于通过各个语音识别实例分别利用语音识别模型,对对应的音频信号进行识别。
在一些可选的实现方式中,解析模块806包括:第二确定单元8061,用于确定所得到的各个语句识别结果分别对应的语义解析实例;第二执行单元8062,用于并行执行确定的各个语义解析实例;解析单元8063,用于通过各个语义解析实例分别对对应的语句识别结果进行语义解析。
在一些可选的实现方式中,识别模块802包括:第三确定单元8024,用于利用语音识别模型包括的声学子模型,确定至少一路音频信号分别对应的音节集合和音节集合中的音节分别对应的第一概率得分;第四确定单元8025,用于利用语音识别模型包括的语言子模型,确定至少一路音频信号分别对应的词语集合;第五确定单元8026,用于对于词语集合中的词语,确定缓存中是否存在该词语对应的第二概率得分,若不存在,利用语言子模型确定该词语对应的第二概率得分;第六确定单元8027,用于基于第一概率得分和语言子模型确定的第二概率得分,确定第一类识别结果。
在一些可选的实现方式中,确定模块803包括:第七确定单元8031,用于对于词语集合中的词语,确定缓存中是否存在该词语对应的第二概率得分,若存在,将缓存中的第二概率得分确定为该词语的第二概率得分语言子模型;第八确定单元8032,用于基于第一概率得分和从缓存中确定的第二概率得分,确定第二类识别结果。
在一些可选的实现方式中,处理模块805包括:第九确定单元8051,用于根据第一类识别结果和第二类识别结果分别包括的第一概率得分和第二概率得分,在语音识别模型包括的解码网络中确定词语集合的目标路径;生成单元8052,用于基于目标路径,生成至少一路音频信号分别对应的语句识别结果。
本公开上述实施例提供的语音交互装置,通过利用预设的语音识别模型对至少一路音频信号进行识别,在识别过程中,从缓存提取已经存储的识别数据生成一部分识别结果,另一部分识别结果由语音识别模型生成,从而有效地复用了已经存储的识别数据,无需语音识别模型对全量数据进行处理,提高了对至少一路音频信号进行处理的效率,有助于在多路语音交互的场景仍然能够满足低资源消耗、低处理延迟的要求。
下面,参考图10来描述根据本公开实施例的电子设备。该电子设备可以是如图1所示的终端设备101和服务器103中的任一个或两者、或与它们独立的单机设备,该单机设备可以与终端设备101和服务器103进行通信,以从它们接收所采集到的输入信号。
图10图示了根据本公开实施例的电子设备的框图。
如图10所示,电子设备1000包括一个或多个处理器1001和存储器1002。
处理器1001可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备1000中的其他组件以执行期望的功能。
存储器1002可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器1001可以运行程序指令,以实现上文的本公开的各个实施例的语音交互方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如识别数据等各种内容。
在一个示例中,电子设备1000还可以包括:输入装置1003和输出装置1004,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是终端设备101或服务器103时,该输入装置1003可以是麦克风等设备,用于输入音频信号。在该电子设备是单机设备时,该输入装置1003可以是通信网络连接器,用于从终端设备101和服务器103接收所输入的音频信号。
该输出装置1004可以向外部输出各种信息,包括语音交互设备执行相应功能的指令等。该输出设备1004可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图10中仅示出了该电子设备1000中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备1000还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的语音交互方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的语音交互方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
- 语音交互方法、装置、计算机可读存储介质及电子设备
- 语音交互方法、装置、电子设备及计算机可读存储介质