音频数据的存储方法、装置、终端及存储介质与流程
本申请实施例涉及终端技术领域,特别涉及一种音频数据的存储方法、装置、终端及存储介质。
背景技术:
随着智能设备应用越来越广泛,比如,智能手机、智能音箱和智能电视等,为了便于用户对智能设备的使用,通常会在智能设备中引入语音唤醒技术。
相关技术中,在智能设备出厂之前,一般会进行语音唤醒功能测试,以保证语音唤醒功能的唤醒率,但是语音唤醒功能会受到智能设备的使用环境、使用用户差异的影响,因此,导致用户在使用具有语音唤醒功能的智能设备时,通常会出现语音唤醒失败的情况,而相关技术中,智能设备厂商无法准确定位出语音唤醒失败的原因,从而降低了语音唤醒功能的唤醒率。
技术实现要素:
本申请实施例提供了一种音频数据的存储方法、装置、终端及存储介质。所述技术方案如下:
一方面,本申请实施例提供了一种音频数据的存储方法,所述方法包括:
获取通过麦克风采集的音频数据;
通过k级语音唤醒识别模型对所述音频数据进行识别,得到各级所述语音唤醒识别模型对应的识别结果,其中,不同级别的语音唤醒识别模型对应不同识别维度,所述识别结果用于表征所述音频数据在对应识别维度上的识别通过情况,k为大于等于2的整数;
根据所述识别结果将所述音频数据存储至第一存储区域,所述第一存储区域用于存储通过至少一级语音唤醒识别模型的音频数据。
另一方面,本申请实施例提供了一种音频数据的存储装置,所述装置包括:
获取模块,用于获取通过麦克风采集的音频数据;
识别模块,用于通过k级语音唤醒识别模型对所述音频数据进行识别,得到各级所述语音唤醒识别模型对应的识别结果,其中,不同级别的语音唤醒识别模型对应不同识别维度,所述识别结果用于表征所述音频数据在对应识别维度上的识别通过情况,k为大于等于2的整数;
第一存储模块,用于根据所述识别结果将所述音频数据存储至第一存储区域,所述第一存储区域用于存储通过至少一级语音唤醒识别模型的音频数据。
另一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的音频数据的存储方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的音频数据的存储方法。
另一方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面所述的音频数据的存储方法。
本申请实施例提供的技术方案至少包括如下有益效果:
在语音唤醒场景下,终端中设置有k级语音唤醒识别模型,当终端接收到麦克风采集到的音频数据后,可以将该音频数据输入k级语音唤醒识别模型,在不同识别维度上对音频数据进行识别,得到音频数据在不同识别维度上的识别通过情况,并根据识别结果将该音频数据存储在第一存储区域。通过设置不同识别维度的语音唤醒识别模块,可以得到音频数据在不同识别维度上的识别结果,并按照识别结果对音频数据进行存储,可以准确得到语音唤醒场景下的唤醒状态,对于唤醒失败的情况,可以准确定位出唤醒失败原因,即在哪一识别维度上唤醒失败,从而有利于对唤醒失败原因进行准确分析和优化,进而提高了语音唤醒场景下的唤醒率。
附图说明
图1示出了本申请一个示例性实施例示出的语音唤醒服务系统的架构图;
图2示出了本申请一个示例性实施例示出的音频数据的存储方法的流程图;
图3示出了本申请另一个示例性实施例示出的音频数据的存储方法的流程图;
图4示出了本申请另一个示例性实施例示出的音频数据的存储方法的流程图;
图5示出了本申请另一个示例性实施例示出的音频数据的存储方法的流程图;
图6出了本申请一个示例性实施例示出的语音唤醒识别和存储过程的示意图;
图7示出了本申请另一个示例性实施例示出的音频数据的存储方法的流程图;
图8示出了本申请另一个示例性实施例示出的音频数据的存储方法的流程图;
图9示出了本申请另一个示例性实施例示出的音频数据的存储方法的流程图;
图10示出了本申请一个示例性实施例示出的语音唤醒训练的过程的示意图;
图11示出了本申请一个示例性实施例示出的训练音频的存储过程的示意图;
图12示出了本申请一个示例性实施例示出的两种模式下不同场景对应的音频数据存储方式的示意图;
图13示出了本申请一个示例性实施例提供的音频数据的存储装置的结构框图;
图14出了本申请一个示例性实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参考图1,其示出了本申请一个示例性实施例示出的语音唤醒服务系统的架构图,该语音唤醒服务系统包括终端101和服务器102。
终端101是具有语音唤醒功能的设备,其可以是智能手机、智能音箱、平板、智能电视等设备,本申请实施例对此不构成限定。本申请实施例中,终端101具有应用模式(或用户模式)和调试模式(测试模式),对于应用模式下的音频数据(包括唤醒音频和测试音频)均存储在data目录下,对于调试模式喜爱的音频数据(包括唤醒音频和测试音频)均存储在sdcard目录下。可选的,终端101中设置有k级语音唤醒识别模型,用于为用户唤醒场景下提供语音识别功能。可选的,终端101可以定期将存储的音频数据发送至服务器102,由服务器102对音频数据进行分析,并对k级语音唤醒识别模型进行优化,并向终端101返回优化结构。
服务器102与终端101通过有线或无线通信方式进行直接或间接地连接。
服务器102是终端语音唤醒功能对应的后台服务器或业务服务器。其可以是一台服务器,若干台服务器构成的服务器集群或云服务器。本申请实施例中,服务器102通过接收终端101上报的音频数据,对该音频数据进行分析处理,从而优化k级语音唤醒识别模型,并将该优化后的语音唤醒识别模型推送至终端101。
需要说明的是,服务器102可以和大量终端进行数据交互,即可以接收大量终端上报的音频数据,对大量音频数据进行数据分析,从而优化语音唤醒识别模型,并将优化后的语音唤醒识别模型推送至终端,以便提高终端语音唤醒功能的唤醒率。
请参考图2,其示出了本申请一个示例性实施例示出的音频数据的存储方法的流程图,本实施例以该方法应用于图1所示的终端来举例说明,该方法包括:
步骤201,获取通过麦克风采集的音频数据。
在一种可能的实施方式中,当用户需要使用终端中的语音唤醒功能或语音助手时,需要预先在语音助手界面中选取对应的唤醒词,并在训练成功后,保存用户的声纹模型,以便后续对语音唤醒场景下用于语音识别。
在语音唤醒场景下,当用户触发语音唤醒功能后,终端上设置的麦克风即处于持续采集声音信号的状态,并将采集到的声音信号转化为电信号,相应的,终端获取到麦克风采集到的音频数据。
其中,用户可以是实际使用终端的用户,或对终端语音唤醒功能进行测试的测试人员,本实施例对此不构成限定。
步骤202,通过k级语音唤醒识别模型对音频数据进行识别,得到各级语音唤醒识别模型对应的识别结果,其中,不同级别的语音唤醒识别模型对应不同识别维度,识别结果用于表征音频数据在对应识别维度上的识别通过情况,k为大于等于2的整数。
在一种可能的实施方式中,终端中预先设置有训练好的语音唤醒识别模型,用于在语音唤醒场景下对接收到的音频数据进行识别,得到音频数据对应的识别结果,若识别结果表征通过各级语音唤醒识别模型,则表示语音唤醒成功,否则语音唤醒失败。
在一个示例性的例子中,当用户需要通过语音唤醒功能使终端亮屏,当用户说唤醒词的过程中,麦克风即持续采集声音信号,转换为音频数据后,通过k级语音唤醒识别模型对该音频数据进行识别,若识别结果表征识别通过,则终端亮屏,否则终端仍处于灭屏。
由于语音唤醒结果会受到很多因素的影响,比如,音频数据中包含较多的环境音(噪声或除用户声音之外的噪声)、用户自身因素(比如声音较小、吐字不清晰、音色特殊无法识别等)、语音唤醒模型识别范围不够广泛等,因此,为了唤醒音频识别结果的准确性,在一种可能的实施方式中,通过不同识别维度训练多个语音唤醒识别模型,比如,通过关键词的方式确定音频数据中是否包含唤醒词或部分唤醒词,通过声纹识别确定是否是终端对应的使用用户在进行唤醒等,以便在模型应用阶段可以通过各级语音唤醒识别模型对音频数据进行识别,从而对于识别结果表征未唤醒成功时,可以明确定位出在哪一级识别维度上识别失败,从而便于后续对音频数据的分析和优化。
步骤203,根据识别结果将音频数据存储至第一存储区域,第一存储区域用于存储通过至少一级语音唤醒识别模型的音频数据。
其中,第一存储区域的设置位置可以为终端中的data文件夹,或终端中的sdcard文件夹下,本申请实施例对此不构成限定。
针对根据识别结果存储音频数据的方式,在一种可能的实施方式中,可以根据音频数据最终通过的第几级语音唤醒识别模型,将音频数据命名为第几级音频数据进行存储;或按照音频数据的通过语音唤醒识别模型的时间命名音频文件并存储在第一存储区域,或将均通过同一级语音唤醒识别模型的音频数据存储在同一文件夹中,本申请实施例对此不构成限定。
本申请实施例中,在语音唤醒场景下,终端中设置有k级语音唤醒识别模型,当终端接收到麦克风采集到的音频数据后,可以将该音频数据输入k级语音唤醒识别模型,在不同识别维度上对音频数据进行识别,得到音频数据在不同识别维度上的识别通过情况,并根据识别结果将该音频数据存储在第一存储区域。通过设置不同识别维度的语音唤醒识别模块,可以得到音频数据在不同识别维度上的识别结果,并按照识别结果对音频数据进行存储,可以准确得到语音唤醒场景下的唤醒状态,对于唤醒失败的情况,可以准确定位出唤醒失败原因,即在哪一级识别维度上唤醒失败,从而有利于对唤醒失败原因进行准确分析和优化,进而提高了语音唤醒场景下的唤醒率。
由于用户在使用终端过程(或对终端语音唤醒功能进行测试的过程)中,可能会存在更换唤醒词、更换用户的情况,对应的音频数据存在差异,因此,为了更好的区分不同情况下的音频数据,在一种可能的实施方式中,在存储音频数据时,可以根据音频数据对应的唤醒词对音频数据进行命名。
在一个示例性的例子中,如图3所示,其示出了本申请另一个示例性实施例示出的音频数据的存储方法的流程图,本实施例以该方法应用于图1所示的终端来举例说明,该方法包括:
步骤301,获取通过麦克风采集的音频数据。
本步骤的实施方式可以参考步骤201,本实施例在此不做赘述。
步骤302,通过第n级语音唤醒识别模型对音频数据进行第n级识别,得到第n识别结果,n为小于k的正整数。
由于各级语音唤醒识别模型对应不同识别维度,存在一定的识别顺序,比如,第一级语音唤醒识别模型用于识别采集到的音频数据是否包含部分关键词,通过第一级语音唤醒识别模型筛选后,可以去除采集到的无效音频;第二级语音唤醒识别模型用于识别音频数据是否包含完整唤醒词,用于去除包含与唤醒词较接近的其他关键词的音频数据等,因此,针对各个语音唤醒识别模型的识别维度,为其设定一定的识别顺序,若音频数据未通过某一语音唤醒识别模型,则不能进行下一级语音唤醒识别模型的识别。
在一种可能的实施方式中,终端中预设有各级语音唤醒识别模型对应的标准识别结果,比如,标准音频特征向量,当终端将音频数据输入第n级语音唤醒识别模型,对音频数据进行特征提取,得到第n级语音唤醒识别模型输出的音频特征向量,与预先设置的标准特征向量进行比较,从而得到第n级语音唤醒识别模型对音频数据的第n识别结果,即音频数据是否通过第n级语音唤醒识别模型,若识别结果表征该音频数据通过第n级语音唤醒识别模型,则将该音频数据输入第n+1级(下一级)语音唤醒识别模型,否则,不会进行后续语音唤醒识别模型的识别过程。
步骤303,响应于第n识别结果表征音频数据通过第n级识别,通过第n+1级语音唤醒识别模型对音频数据进行第n+1级识别,得到第n+1识别结果。
其中,终端中预设有第n+1级语音唤醒识别模型对应的标准音频特征向量。
在一种可能的实施方式中,当第n识别结果表征音频数据通过第n级识别,则需要进入下一级语音唤醒识别模型,则终端将音频据输入第n+1级语音唤醒识别模型,由第n+1级语音唤醒识别模型对音频数据进行特征提取,得到第n+1音频特征向量,与标准音频特征向量进行比较,得到第n+1识别结果,即确定音频数据是否通过第n+1语音唤醒识别模型的识别,若通过则继续将音频数据输入下一级语音唤醒识别模型进行识别,否则,停止将音频数据输入下一级语音唤醒识别模型进行识别。
在一种可能的实施方式中,将频数据依次输入第n语音唤醒识别模型进行第n级识别,并在第n语音唤醒识别模型的第n识别结果表征音频数据通过第n级识别后,再将该音频数据输入第n+1语音唤醒识别模型进行第n+1识别,得到第n+1级识别结果,若第n+1级识别结果表征音频数据通过第n+1级识别,再将音频数据输入第n+2语音唤醒识别模型进行第n+2级识别,得到第n+2级识别结果,依次类推,直至得到第k识别结果,并在第k识别结果表征音频数据通过第k语音唤醒识别模型,将该音频数据进行存储。
在其他可能的实施方式中,若将音频数据输入第n语音唤醒识别模型进行第n级识别,得到的第n识别结果表征音频数据未通过第n级识别后,停止将音频数据继续输入第n+1级识别结果,并存储在音频数据。
步骤304,根据识别结果以及唤醒词对音频数据进行命名。
其中,唤醒词为用户在进行唤醒之前,训练音频过程中确定的唤醒词,唤醒词可以由用户自行进行选择,即用户在训练音频过程中,选择对应的唤醒词,并进行训练,训练成功后,会保存该唤醒词对应的用户的声纹模型,用于后续唤醒过程中作为音频数据能否唤醒成功的依据之一。
在一种可能的实施方式中,采用识别结果和唤醒词结合对音频数据命名的方式,可以从命名中体现不同音频数据之间的差异,比如,两个音频数据采用不同的唤醒词,或两个音频数据对应通过不同级的语音唤醒识别模型。
在另一种可能的实施方式中,也可以在命名中加入音频采集时间,可以在不同的语音唤醒时间维度上进一步区分不同的音频数据。
针对如何根据识别结果来确定音频数据对应命名的方式,在一种可能的实施方式中,若第n识别结果表征音频数据通过第n语音唤醒识别模型,第n+1识别结果表征音频数据未通过第n+1语音唤醒识别模型,此时停止将音频数据输入第n+2语音唤醒识别模型,可见该音频数据仅通过第n语音唤醒识别模型,可以将该音频数据命名中加入第n级音频,即采用音频数据通过的语音唤醒识别模型的模型标识来命名该音频数据,以便后续进行分析时根据命名即可以得到该音频数据通过第几级语音唤醒识别模型,未通过第几级语音唤醒识别模型,从而根据语音唤醒识别模型对应的识别维度分析音频数据未成功唤醒的原因。
在一个示例性的例子中,在图3的基础上,如图4所示,步骤304可以包括步骤304a和步骤304b。
步骤304a,响应于第n识别结果表征音频数据通过第n级识别,且第n+1识别结果表征音频数据未通过第n+1级识别,根据第n级语音唤醒识别模型的模型标识以及唤醒词对音频数据进行命名。
由于音频数据进行存储的时机与音频数据是否通过语音唤醒识别模型有关,比如,若用户通过第一级识别,未通过第二级识别,即需要停止进行后续识别过程,存储当前音频数据,可见音频数据在k级语音唤醒识别模型中,仅通过第一语音唤醒识别模型,则对应的音频数据可以命名为一级音频,表征该次唤醒对应的音频数据仅通过第一级语音唤醒识别模型,以便容易定位语音唤醒过程中的唤醒失败原因。因此,在一种可能的实施方式中,当第n识别结果表征音频数据通过第n级识别,且第n+1识别结果表征音频数据未通过第n+1级识别,可以根据第n级语音唤醒识别模型的模型标识以及唤醒词对音频数据进行命名。
在一个示例性的例子中,以n取2为例,若音频数据通过第2级识别,但未通过第3级识别,则根据第2级语音唤醒识别模型的模型标识以及唤醒词对音频数据命名,比如:音频数据命名为“唤醒词+second.pcm”。
在其他示例性的例子中,可以在命名中加入时间,该时间可以是采集音频数据的时间(即开始进行语音唤醒的时间),或音频数据通过第n级语音唤醒识别模型的时间,或音频数据未通过第n+1级语音唤醒识别模型的时间(即存储音频数据的时间),本实施例对此不构成限定。
在一个示例性的例子中,若采用时间、识别结果和唤醒词对音频数据进行命名,则对应的音频数据命名为“时间+唤醒词+second.pcm”。
步骤304b,响应于第k识别结果表征音频数据通过第k级识别,根据第k级语音唤醒识别模型的模型标识以及唤醒词对音频数据进行命名。
由于上文实施例中的n为小于k的整数,则对于音频数据通过第k级语音唤醒识别模型的情况,表征该次唤醒成功,则对应保存唤醒成功对应的音频数据,此时,也可以采用第k级语音唤醒识别模型的模型标识以及唤醒词对音频数据进行命名。
在一个示例性的例子中,当音频数据通过k级语音唤醒识别模型后,若k取3,则对应的音频数据可以命名为“唤醒词+third.pcm”。
在其他示例性的例子中,对应上文实施例中,也可以在命名中加入时间,该时间可以是采集音频数据的时间(即开始进行语音唤醒的时间),或音频数据通过第k级语音唤醒识别模型的时间(即存储音频数据的时间),本实施例对此不构成限定。
在一个示例性的例子中,若采用时间、识别结果和唤醒词对音频数据进行命名,则对应的音频数据命名为“时间+唤醒词+third.pcm”。
步骤305,将命名后的音频数据存储至第一存储区域。
在一种可能的实施方式中,由于在语音唤醒场景下,用户进行唤醒的次数不限,则对应的存储的唤醒音频的数据量多,为了更好的存储唤醒音频,则在第一存储区域中建立有存储唤醒音频的文件夹,在该主文件夹下,建立子文件夹,用于存储每次唤醒对应的音频文件;或在主文件夹下,按照时间划分出多个子文件夹,比如,将每天的唤醒对应的音频文件存储在同一子文件夹中;或在主文件夹中,按照唤醒词划分多个子文件夹,即将同一唤醒词对应的音频文件存储在同一子文件夹中;或在主文件夹中,按照识别结果划分多个子文件夹,即将通过同一级语音唤醒识别模型的音频数据存储在同一子文件夹中,本申请实施例对此不构成限定。
在一个示例性的例子中,在第一存储区域建立文件夹,文件夹命名为“唤醒音频(wakeupaudio)”,在该文件夹内,存储音频数据,音频数据命名为“时间+唤醒词+first.pcm”,表示该次唤醒对应的音频数据通过一级语音唤醒识别模型。
本实施例中,根据识别结果和唤醒词对音频数据进行命名,并进行存储,使得从音频文件的命名即可以确定出该次唤醒对应的识别结果,比如,音频数据命名为“唤醒词+第一级唤醒音频”,则表征音频数据通过第一级语音唤醒识别模型,从而准确定位语音唤醒失败原因,以便后续针对性的进行分析该音频数据,有利于后续对对应语音唤醒识别的优化。
在一种可能的应用场景中,开发人员为语音唤醒场景下设定三级语音唤醒识别模型,即k级语音唤醒识别模型包括第一级语音唤醒识别模型、第二级语音唤醒识别模型和第三级语音唤醒识别模型,用于对语音唤醒场景下采集到的音频数据进行识别,从而确定是否执行对应的语音唤醒操作。
在一个示例性的例子中,请参考图5,其示出了本申请另一个示例性实施例示出的音频数据的存储方法的流程图,本实施例以该方法应用于图1所示的终端来举例说明,该方法包括:
步骤501,获取通过麦克风采集的音频数据。
本步骤的实施方式可以参考上文实施例,本实施例在此不做赘述。
步骤502,通过第一级语音唤醒识别模型对音频数据进行第一级识别,得到第一识别结果,第一识别结果用于表征音频数据中是否包含关键词,关键词为唤醒词的一部分。
由于麦克风在采集音频数据时,会将连续采集的音频数据输入第一级语音唤醒识别模型,即终端需要边采集音频数据,边进行音频数据的识别,而语音唤醒识别模型在进行识别时可能采用特定的采样频率,比如,每隔1s进行一次识别,可能导致单次识别过程中输入的音频数据中无法包含完整的唤醒词,比如,唤醒词为“小布小布”,而单次进行识别时,输入的音频数据可能仅包含“小布”,因此,为了避免对音频数据进行连续识别过程中,无法获取到完整包含唤醒词的音频数据而导致的唤醒失败,在终端中设置有第一级语音唤醒识别模型,该第一级语音唤醒识别模型仅需要识别到音频数据中包含唤醒词的一部分,即表征该音频数据通过第一级语音唤醒识别模型若识别出音频数据不包含部分唤醒词,则表示还未接收到包含唤醒词的音频数据,则麦克风持续采集声音信号,获取到音频数据并输入第一级语音唤醒识别模型进行继续识别。
其中,关键词的设定可以是唤醒词中的单个子,或相邻两个字,或相邻三个字,比如,唤醒词为“小布小布”,对应的关键词可以是“小布”“布小”等,本实施例对此不构成限定。
在一种可能的实施方式中,该关键词需要预先存储在终端中,并且针对不同的唤醒词存储有不同的关键词。
针对第一级语音唤醒识别模型对音频数据的识别方式,在一种可能的实施方式中,第一级语音唤醒识别模型采用卷积神经网络(convolutionalneuralnetwork,cnn),用于提取出音频数据对应的音频特征向量,对应的,终端中预先存储有关键词对应的标准音频特征向量,将音频数据对应的音频特征向量与关键词对应的标准音频特征向量进行比较,若存在音频数据对应的音频特征向量与任一关键词对应的标准音频特征向量相似度高于预设相似度阈值,则表征音频数据中包含关键词,对应的第一识别结果为音频数据通过第一级语音唤醒识别模型。
其中,若预先存储的是关键词对应的标准音频特征向量,则该标准音频特征向量是预先经过若干测试人员测试后,提取出的音频特征向量。
在一个示例性的例子中,若预设相似度阈值为95%,若音频数据对应的音频特征向量与任一关键词对应的标准音频特征向量之间的相似度为98%,高于相似度阈值,则表征音频数据中包含关键词。
在另一种可能的实施方式中,通常将唤醒词的前几个字设置为关键词,当麦克风持续采集音频过程中,若第一级语音唤醒识别模型的第一级识别结果表明某个采集时刻对应的音频数据中包含关键词,则将该采集时刻前后预定时间段内的音频数据输入第二级语音唤醒识别模型中,作为后续唤醒词识别的依据。比如,将采集时刻前后1s内的音频数据输入第二级语音唤醒识别模型中。
由于在未识别出音频数据中包含关键词的过程中,第一级语音唤醒识别模型需要持续运行进行识别,显然对终端功耗影响较大,因此,在一种可能的实施方式中,第一级语音唤醒识别模型在数字信号处理器(digitalsignalprocessor,dsp)中运行,可以降低第一级语音唤醒识别模型的功耗,从而降低整个语音唤醒识别过程的功耗。
相应的,在一种可能的实施方式中,当麦克风采集到音频数据后,会持续将音频数据发送至dsp,由dsp将接收到的音频数据输入第一级语音唤醒识别模型中,当第一识别结果表征音频数据存在关键词,则由dsp将对应的一整段音频数据发送至第二级语音唤醒识别模型。
步骤503,通过第二级语音唤醒识别模型对音频数据进行第二级识别,得到第二识别结果,第二识别结果用于表征音频数据中是否包含唤醒词。
由于第一级语音识别模型仅能确定出音频数据中包含关键词,即仅能确定出音频数据中包含部分唤醒词,可能出现音频数据包含的唤醒词与目标唤醒词(即用户测试时选择的唤醒词)存在部分差异,比如,唤醒词为“小布小布”,音频数据中包含的唤醒词为“hi,小布”,但是由于第一级语音唤醒识别模型识别出音频数据中包含关键词“小布”,则通过第一级识别,显然仅采用第一级语音唤醒识别模型确定是否唤醒成功存在误差,因此,在一种可能的实施方式中,终端中还设置有第二级语音唤醒识别模型,用于对一整段音频数据进行识别,从而确定该音频数据中是否包含完整唤醒词。
针对第二级语音唤醒识别模型对音频数据的识别方式,在一种可能的实施方式中,第二级语音唤醒识别模型也采用cnn,用于提取音频数据对应的音频特征向量,对应的,终端中预先存储有唤醒词对应的标准音频特征向量,将音频数据对应的音频特征向量和唤醒词对应的标准音频特征向量进行比较,若音频数据对应的音频特征向量和唤醒词对应的标准音频特征向量之间的相似度高于预设相似度阈值,则表征音频数据中包含关键词,对应的第二识别结果为音频数据通过第二级语音唤醒识别模型。
其中,若预先存储的是唤醒词对应的标准音频特征向量,则该标准音频特征向量是预先经过若干测试人员测试后,提取出的关键词对应的音频特征向量,且不同唤醒词对应不同标准音频特征向量。
在一个示例性的例子中,若预设相似度阈值为96%,若音频数据对应的音频特征向量与唤醒词对应的标准音频特征向量之间的相似度为98%,高于相似度阈值,则表征音频数据中包含唤醒词。
虽然第一级语音唤醒识别模型和第二级语音唤醒识别模型均采用cnn,但是由于第一级语音唤醒识别模型和第二级语音唤醒识别模型输入的音频数据大小存在差异,即每次输入第一级语音唤醒识别模型中的音频数据仅为第二级语音唤醒识别模型中的一部分,则对应的两个语音唤醒模型的大小和识别方式也存在差异,即第一级语音唤醒识别模型小于第二级语音唤醒识别模型。
在一个示例性的例子中,第一级语音唤醒识别模型的大小可以为200kb,第二级语音唤醒识别模型的大小可以为20mb。
上文实施例中,为了降低终端进行语音唤醒的功耗,将第一级语音唤醒识别模型设置在dsp中运行,为了避免在运行第一级语音唤醒识别模型的同时,运行第二级语音唤醒识别模型对终端功耗的增加,将第二级语音唤醒识别模型设置在中央处理器(centralprocessingunit,cpu)中运行,以便在第一级语音唤醒识别模型确定出音频数据存在关键词后,由dsp将整段音频数据发送至cpu,并由cpu输入第二级语音唤醒识别模型,并控制第二语音唤醒识别模型运行并进行识别。
步骤504,通过第三级语音唤醒识别模型对音频数据进行第三级识别,得到第三识别结果,第三识别结果用于表征音频数据的声纹特征与目标声纹特征是否匹配。
由于上文中的第一级语音唤醒识别模型和第二级语音唤醒识别模型均仅是对音频数据是否包含关键词或唤醒词进行识别,存在音频数据时其他用户发出的情况,此时,若不关注音频数据的声纹特征(不同用户对应不同声纹特征),仅根据唤醒词来确定是否执行唤醒操作,显然会威胁到终端数据的安全,或进行误操作,因此,为了进一步提高语音唤醒场景下的唤醒准确率,在终端中设置有第三级语音唤醒识别模型,用于对音频数据的声纹特征进行识别,确定是否为目标用户在执行语音唤醒操作。
其中,目标声纹特征指示用户在进行语音唤醒之前,测试场景下,选择唤醒词后进行音频测试过程中,并在测试成功后保存在终端中的声纹特征。
在一种可能的实施方式中,若音频数据通过第二级识别后,即将该音频数据输入第三级语音唤醒识别模型,由第三级语音唤醒识别模型对音频数据进行特征提取,得到音频数据对应的声纹特征向量,与预先存储的目标声纹特征向量进行比较,并在声纹特征向量与目标声纹特征向量相似度高于预设相似度阈值时,确定该音频数据通过第三级识别,语音唤醒成功,终端响应于用户的语音唤醒,执行对应的语音唤醒操作,比如,亮屏,打开应用程序等。
在一个示例性的例子中,若预设相似度阈值为96%,声纹特征向量和目标声纹特征向量之前的相似度为98%,高于预设相似度阈值,则确定采集到的音频数据属于目标用户(即目标声纹特征对应的用户)。
由于第三级语音唤醒识别模型是对音频数据对应的声纹特征进行提取和识别,而第一级语音唤醒识别模型和第二级语音唤醒识别模型均是对音频数据中的关键词或唤醒词进行识别,两者对应的识别维度不同,因此,两者所采用的网络模型也不相同,在一种可能的实施方式中,第三级语音唤醒识别模型采用高斯混合模型(gaussianmixturemodel,gmm)。
需要说明的是,各级语音唤醒识别模型对应的预设相似度阈值可以相同,也可以不相同,本实施例对此不构成限定。
步骤505,根据识别结果将音频数据存储至第一存储区域,第一存储区域用于存储通过至少一级语音唤醒识别模型的音频数据。
在一种可能的实施方式中,若k级语音唤醒识别模型分别包括第一级语音唤醒识别模型、第二级语音唤醒识别模型和第三级语音唤醒识别模型,则对应的在存储唤醒音频时,也需要根据识别结果和唤醒词对音频数据进行命名。
在一个示例性的例子中,如图6所示,其示出了本申请一个示例性实施例示出的语音唤醒识别和存储过程的示意图。麦克风601持续采集音频数据,并将音频数据发送至dsp602,并通过运行在dsp602中的第一级语音唤醒识别模型进行识别,得到第一识别结果,若第一识别结果表征音频数据未通过第一级识别(即不包含关键词),则为无效音频数据,不进行存储,麦克风601继续采集音频数据;若第一识别结果表征音频数据通过第一级识别(即包含关键词),则麦克风601停止采集音频数据,并将音频数据发送至cpu603,通过运行在cpu603上的第二级语音唤醒识别模型进行识别,得到第二识别结果,若第二识别结果表征音频数据未通过第二级识别(即不包含唤醒词),则存储该音频数据,对应的音频数据的名称可为“时间+唤醒词+first.pcm”,表征该音频数据仅通过第一级语音唤醒识别;若第二识别结果表征音频数据通过第二级识别(即包含唤醒词),则将音频数据输入第三语音唤醒识别模型中进行第三级识别,得到第三识别结果,若该第三识别结果表征音频数据未通过第三级识别(即声纹特征与目标声纹特征不相符),则存储该音频数据,音频数据对应的名称为“时间+唤醒词+second.pcm”;若第三识别结果表征通过第三级识别(即声纹特征与目标声纹特征相符),则存储该音频数据,音频数据对应的名称为“时间+唤醒词+vprint.pcm”并在用户界面中显示语音助手控件。
本实施例中,通过关键词(部分唤醒词)、唤醒词、声纹特征三个识别维度上训练语音唤醒识别模型,得到用于识别音频数据是否包含关键词的第一级语音唤醒识别模型、识别音频数据是否包含唤醒词的第二级语音唤醒识别模型、识别声纹特征是否与目标声纹特征一致的第三级语音唤醒识别模型,使得在模型应用阶段,可以实现在不同识别维度上对音频数据进行识别,提高语音唤醒识别的准确性。此外,针对各个语音唤醒识别模型的特点或运行时机,比如,第一级语音唤醒识别模型需要在采集音频数据的过程中持续运行,而第二级语音唤醒识别模型仅需要在第一级语音唤醒识别模型对应的第一识别结果表征音频数据包含关键词时运行,因此,将第一级语音唤醒识别模型和第二级语音唤醒识别模型分开设置,以便实现分开运行,从而降低终端整个语音唤醒过程的功耗。
由于终端中设置的语音唤醒识别模型一般为预先训练好的,且模型训练所需要的音频数据为在特定场景下进行的,比如,测试实验室,或,测试时采集的音频数据的来源为测试人员或录音,而用户在使用终端时,终端所处的环境与用户自身声音特性等都与模型训练时的存在差异,因此,在语音唤醒的实际使用过程中,可能由于唤醒和用户的差异,导致语音唤醒功能失败,或失败率较高,因此,为了进一步优化语音唤醒识别模型,在一种可能的实施方式中,通过在用户唤醒过程中,存储唤醒场景下对应的唤醒音频(包括第一级唤醒音频、第二级唤醒音频和声纹音频),并将该唤醒音频数据上传至服务器,由服务器根据该音频数据对语音唤醒识别模型进行进一步优化,并将优化后的语音唤醒识别模型反馈给用户,从而使得语音唤醒识别模型更符合用户所处环境和用户自身特征,进而提高语音唤醒识别模型的唤醒率。
请参考图7,其示出了本申请另一个示例性实施例示出的音频数据的存储方法的流程图,本实施例以该方法应用于图1所示的终端来举例说明,该方法包括:
步骤701,获取通过麦克风采集的音频数据。
步骤702,通过k级语音唤醒识别模型对音频数据进行识别,得到各级语音唤醒识别模型对应的识别结果,其中,不同级别的语音唤醒识别模型对应不同识别维度,识别结果用于表征音频数据在对应识别维度上的识别通过情况,k为大于等于2的整数。
步骤703,根据识别结果将音频数据存储至第一存储区域,第一存储区域用于存储通过至少一级语音唤醒识别模型的音频数据。
步骤701和步骤703的实施方式可以参考上文实施例,本实施例在此不做赘述。
步骤704,向服务器上传第一存储区域内容的音频数据,服务器用于根据音频数据以及音频数据的名称,确定语音唤醒识别模型的识别质量。
其中,第一存储区域用于存储语音唤醒场景下的唤醒音频数据,由于在唤醒场景下存在唤醒失败的情况,即存在音频数据未通过k级语音唤醒识别模型的情况,因此,第一存储区域存储的唤醒音频数据包括有唤醒失败对应的音频数据和唤醒成功对应的音频数据。
在一个示例性的例子中,以k级语音唤醒识别模型包括第一级语音唤醒识别模型、第二级语音唤醒识别模型和第三级语音唤醒识别模型为例,对应的音频数据种类可能包括:第一级唤醒音频(指仅通过第一级语音唤醒识别模型的音频数据)、第二级语音唤醒音频(指通过第一级语音唤醒识别模型和第二级语音唤醒识别模型的音频数据)和声纹音频数据(指通过第一级语音唤醒识别模型、第二级语音唤醒识别模型和第三级语音唤醒识别模型的音频数据,也即唤醒成功对应的音频数据)。
在一种可能的实施方式中,终端会定期将存储的音频数据上传至服务器,由服务器对语音识别模型进行优化,或对用户存储的目标声纹特征进行优化,其中,对语音识别模型进行优化由上述各种音频数据进行,而对目标声纹特征进行优化由语音唤醒成功对应的音频数据进行(即上文中的声纹音频数据)。
其中,终端上传音频数据的时机可以是每隔预定时间上传,比如,每隔15天上传,或当终端中存储的音频数据的数目超过预定数目,由终端将音频数据上传,并删除终端中的音频数据,比如,音频数据的数据超过50次。
由于音频数据在存储时是根据识别结果和唤醒词命名的,因此,服务器可以根据该音频数据的名称准确定位该音频数据是否为唤醒失败对应的音频数据,若为唤醒失败对应的音频数据,则具体时哪一级语音唤醒识别模型未通过,可以将该音频数据重新输入各级语音唤醒识别模型,看运行结果是否与音频数据命名指示的识别结果相同,若相同,则表示语音识别模型运行正常,需要进一步分析是何种原因导致语音唤醒失败;若不相同,则表征语音识别模型在终端运行质量较差,存在识别误差,需要进行优化。
其中,若在服务器和终端对于同一音频数据的运行结果相同,则对应的无法实现语音唤醒的原因可能为音频数据自身原因,比如,音频数据未包含唤醒词;或音频数据的采集来源不属于目标用户,这些原因与语音唤醒识别模型自身无关;当然还存在其他因素:比如,音频数据中包含唤醒词,也属于目标用户,但是音频数据中的噪音较多,影响了语音唤醒识别模型的识别,或存在某些用户的发音较为特殊,无法被语音唤醒识别模型识别,针对这两种情况,就需要针对不同的唤醒环境优化训练语音唤醒识别模型,比如,在输入各级语音唤醒识别模型之前,增加对音频数据的降噪处理,避免环境音(噪音)对语音唤醒识别模型识别准确率的影响;或,针对特殊用户群体,专门训练符合用户发生特征的语音唤醒识别模型,从而使得语音唤醒识别模型可以实现个性化的识别,从而提高语音唤醒识别模型的识别准确率,进而提高唤醒率。
在另一种可能的实施方式中,对于语音唤醒成功对应的音频数据,由于最后一级语音唤醒识别模型(即第三级语音唤醒识别模型)是对用户的声纹特征进行识别,与其进行比较的是用户唤醒之前训练好的目标声纹特征,但是用户的声纹特征可能会发生变化,比如,用户处于感冒状态下的声纹特征与用户正常状态下的声纹特征存在差异,或用户处于变声期,声纹特征也会发生变化,因此,为了避免在用户声纹特征发生变化时而导致语音唤醒失败,在一种可能的实施方式中,将唤醒成功对应的音频数据上传至服务器,由服务器综合预定时间段的音频数据,重新为用户训练目标声纹特征,即实现对目标声纹特征的实时更新,且不会给目标用户感知,从而提高唤醒率。
步骤705,接收服务器的反馈信息。
其中,反馈信息可以为优化后的各级语音识别模型和用户对应的目标声纹特征中的至少一种。
在一种可能的实施方式中,服务器每个预定时间间隔获取一次终端中存储的语音唤醒场景下存储的音频数据,并针对不同的唤醒状态(唤醒失败或唤醒成功)进行多角度分析,从而不断优化语音唤醒识别,或为特殊用户群体提供专门语音唤醒识别模型,并将优化后的语音唤醒识别模型反馈给对应终端。
在另一种可能的实施方式中,服务器每个预定时间间隔根据获取到的音频数据,对目标用户的目标声纹特征进行更新,并将更新后的目标声纹特征反馈给各个终端,使得目标声纹特征更符合用户最近一段时间的声纹特征,从而提高用户在语音唤醒场景下的唤醒率。
本实施例中,通过终端向服务器上传语音唤醒场景下的音频数据,以便服务器可以根据该音频数据以及音频数据的命名,对语音唤醒识别模型在终端中的实际运行情况进行监控,从而及时优化语音唤醒识别模型,并反馈给终端,以便提高语音唤醒识别模型的识别准确率,进而提高用户在语音唤醒场景下的唤醒率。此外,服务器也可以根据语音唤醒场景下的音频数据进一步优化用户的目标声纹特征,避免用户声纹特征发生改变导致语音唤醒失败,从而提高了语音唤醒场景下的唤醒率。
在另一种可能的应用场景下,对语音唤醒识别模型的优化过程也可以在终端中进行,则服务器对接收到的音频数据进行分类,划分出正样本和负样本,对于同一音频数据在终端和服务器的识别结果相同,表征语音唤醒识别模型运行正常,则将其作为前一级语音唤醒识别模型的正样本,或将该音频数据作为后一级语音唤醒识别模型的负样本。
在一个示例性的例子中,确定正负样本的过程可以包括以下步骤:
一、响应于反馈信息指示语音唤醒识别模型的识别质量符合质量指标,将音频数据确定为第n级语音唤醒识别模型的正样本训练数据。
由于音频数据的命名是参考音频数据通过哪一级语音唤醒识别模型的,比如,音频数据的命名为“时间+唤醒词+第n级唤醒音频”,则表征该音频数据仅通过第n级语音唤醒识别模型,未通过第n+1级语音唤醒识别模型,因此,在一种可能的实施方式中,若音频数据在终端和服务器的运行情况均指示该音频数据通过第n级语音唤醒识别模型,未通过第n+1级语音唤醒识别模型,则该音频数据对于第n语音唤醒识别模型为正样本训练数据,用于训练第n级语音唤醒识别模型。
二、将音频数据确定为第n+1级语音唤醒识别模型的负样本训练数据。
在另一种可能的和实施方式中,若音频数据在终端和服务器的运行情况均指示该音频数据通过第n级语音唤醒识别模型,未通过第n+1级语音唤醒识别模型,则该音频数据对于第n+1级语音唤醒识别模型即为负样本训练数据,用于训练第n+1级语音唤醒识别模型。
本实施例中,终端通过根据服务器反馈的语音唤醒识别模型的识别质量,即同一音频数据在终端和服务器的识别结果一致的情况,则根据音频数据命名中识别结果指示的语音唤醒识别模型的模型标识,来确定将该音频数据作为哪一级语音唤醒识别模型的正样本训练数据或负样本训练数据,用于训练语音唤醒识别模型,进一步优化语音唤醒识别模型,使得语音唤醒识别模型更符合用户自身特征,从而提高语音唤醒识别模型的准确率,进一步提高用户在语音唤醒场景下的唤醒率。
在一种可能的应用场景下,由于终端出厂后使用场景的差异,比如,终端出厂后是由用户自己使用,或终端出厂后是用于测试终端性能,即测试人员使用,用户使用情况下,对于存储的音频数据需要保证音频数据的安全性,对于测试人员使用,则需要随时获取到音频数据用于分析,因此,为了满足这两种应用场景下的不同用户需求,在一种可能的实施方式中,终端在出厂时预设有两种模式,即应用模式(用户模式)和调试模型(测试模式),以便不同用户根据自身需求选择任一模式。
在一个示例性的例子中,在图2的基础上,如图8所示,步骤203可以被替换为步骤801和步骤802。
步骤801,响应于当前模式为应用模式,根据识别结果将音频数据存储至第一存储区域,第一存储区域在不具备root权限时无法访问。
由于终端中的data目录在非root下无法访问,安全性较高,可以较好的保护用户的隐私信息,因此,在一种可能的实施方式中,可以将data目录确定为第一存储区域,当用户选择应用模式(用户模式)时,语音唤醒服务即为用户在data目录下建立文件夹,用于存储用户的音频数据。
在其他可能的实施方式中,终端中可以设置有加密存储分区,用来存储用户的音频数据,避免该音频数据被非系统应用访问,可以保护音频数据的安全性。
由于用户在应用模式下使用语音唤醒功能时,需要先进行语音唤醒训练,即训练用户的目标声纹特征,用于后续在语音唤醒场景下,作为判断用户是否唤醒成功的依据,且语音唤醒训练过程中,也会采集和保存用户的音频数据,因此,为了在应用模式下区分语音唤醒训练场景和语音唤醒场景,则对于data目录下建立两个子目录作为第一存储区域和第三存储区域,用来分别保存两种场景下的音频数据。
在一个示例性的例子中,当用户设置应用模式后,相应的,终端接收到应用模式设置操作,即生成data/kws/文件夹,用于存储用户的音频数据,进一步,为了区分语音唤醒测试场景和语音唤醒场景,则在data/kws/文件夹目录下,分别创建data/kws/trainaudio子文件夹和data/kws/wakeupaudio子文件夹,其中,data/kws/wakeupaudio目录下用于存储用户在语音唤醒场景下的音频数据(即唤醒音频数据),data/kws/trainaudio目录下用于存储用户在语音唤醒测试场景下的音频数据。
步骤802,响应于当前模式为调试模式,根据识别结果将音频数据存储至第二存储区域中当前调试对象对应的子存储空间,第二存储在不具备root权限时允许访问。
对于调试模式,为测试人员对终端语音唤醒性能进行测试场景下对应的模式,该测试场景下,无需关注用户的隐私信息,因此,无需将调试模式下的音频数据存储在具有隐私保护的第一存储区域,便于后续分析,在一种可能的实施方式中,可以将测试场景下的音频数据存储在不具备root权限时允许访问的第二存储区域,比如,sdcard中。
由于测试场景下,对于同一终端可能需要若干用户进行测试,因此,为了区分不同用户的音频数据,便与后续分析时直接定位到对应的用户的训练和唤醒音频,在一种可能的实施方式中,首先为第二存储空间按照训练和唤醒场景划分出两个子存储空间,再针对不同的场景对应的子存储空间中,划分出不同用户对应的子存储空间,每个子存储空间用于存储同一用户的音频数据。
在一个示例性的例子中,当用户选择调试模式,语音唤醒服务在sdcard中创建sdcard/kws/文件夹,当测试用户1的唤醒率时,语音唤醒服务生成子目录并以用户1训练时的训练时间1作为文件夹命名,并将用户1的训练音频保存在sdcard/kws/时间1/trainaudio目录下,将用户1的唤醒音频保存在sdcard/kws/时间1/wakeupaudio目录下,依次类推,直至多个用户测试完成。
本实施例中,通过针对终端的不同应用场景,分别对应设置有不同模式,即应用模式和调试模式,并且为不同模式分配不同的存储区域,比如,应用模式下,将音频数据存储在不具备root权限时无法访问的存储区域,可以保护用户的隐私信息;对于调试模式下,将音频数据存储在不具备root权限时允许访问的区域,便于后续分析时调用;此外,由于调试模式下,需要多个用户对终端进行唤醒率的测试,因此,为了区分不同用户的同时,便于后续分析时可以准确定位到目标用户对应的音频数据,在存储音频数据时,按照调试对象(即用户)和测试时间划分存储区域。
上文实施例中重点描述了语音唤醒场景下的音频存储方式,在一种可能的实施方式中,当用户需要进行语音唤醒之前,还需要进行语音唤醒训练,即训练得到用户对应的目标声纹特征,用于后续语音唤醒时进行声纹特征比较。
在一个示例性的例子中,如图9所示,其示出了本申请另一个示例性实施例示出的音频数据的存储方法的流程图,本实施例以该方法应用于图1所示的终端来举例说明,该方法包括:
步骤901,响应于接收到唤醒语音设置界面中的唤醒词选择操作,确定唤醒词选择操作所指示的唤醒词。
在一种可能的实施方式中,当用户在进行语音唤醒之前,需要训练目标声纹特征,语音唤醒服务提供有唤醒语音设置界面,用户可以在该界面中选择唤醒词,相应的,终端确定出后续训练和唤醒时使用的唤醒词。
在一个示例性的例子中,如图10所示,其示出了本申请一个示例性实施例示出的语音唤醒训练的过程的示意图,当用户在唤醒语音设置界面1001中开启语音唤醒开关,则会在唤醒语音设置界面1001中显示唤醒词选项,用户可以点击下拉控件1002,唤醒语音设置界面1001上层显示有多个唤醒词选项,用户可以选择任一唤醒词进行训练,比如,用户点击唤醒词“小艺小艺”,则终端接收到对唤醒词“小艺小艺”的选择操作,确定该次语音唤醒训练对应的唤醒词为“小艺小艺”。
步骤902,响应于采集到的训练音频数据中包含唤醒词选择操作所指示的唤醒词,将训练音频数据存储在第三存储区域。
在一种可能的实施方式中,当用户选择唤醒词后,则按照语音唤醒设计界面中的提示进行语音唤醒训练,并将麦克风采集到的音频数据存储在第三存储区域。
在一个示例性的例子中,如图10所示,当终端确定出用户选择的唤醒词为“小艺小艺”,则在唤醒语音设置界面1001中显示提示信息,用于提示用户进行语音唤醒训练,比如“请说出小艺小艺”,该唤醒语音设置界面1001中还包括语音唤醒训练的注意事项当终端确定训练成功后,会在唤醒语音设置界面1001中提示用户,并显示训练完成控件1003,当用户点击训练完成控件1003后,终端既可以保存用户训练成功对应的音频数据和声纹特征。
在另一种可能的实施方式中,若训练失败,则对应的会在唤醒语音设置界面中提示用户训练失败,并重新进行训练,并将训练失败对应的音频数据存储在相应位置,以便后续分析训练失败的原因。
针对语音唤醒的训练方式,在一种可能的实施方式中,终端中预设有声纹识别模型,用于对麦克风采集到的音频数据进行特征提取,得到音频特征向量,并与预先存储的唤醒词对应的音频特征向量进行比较,在两者满足预设相似度阈值时,表示训练成功,重复多次训练成功后,保存训练完成的目标声纹特征,用于后续语音唤醒场景下进行声纹特征的比较。
由于在语音唤醒训练场景下,会产生两种音频数据,即训练成功对应的音频数据和训练失败对应的音频数据,对应的,在将音频数据存储在第三存储区域时,也需要区分两种音频数据,可以采用时间和音频数据的训练状态对音频数据进行命名,其中,训练状态包括训练成功和训练失败两种状态。
在一个示例性的例子中,如图11所示,其示出了本申请一个示例性实施例示出的训练音频的存储过程的示意图,当开始训练时,终端即在第三存储区域新建文件夹trainaudio,并根据用户选择的唤醒词,新建子文件夹,比如:trainaudio/xiaobuxiaobu,其中“xiaobuxiaobu”为唤醒词,若训练成功,则在trainaudio/xiaobuxiaobu文件夹下,将音频数据命名为“时间++success.pcm”,表示训练成功对应的音频数据;若训练失败,则将音频数据命名为“时间+fail.pcm”,并保存在trainaudio/xiaobuxiaobu文件夹下。
需要说明的是,训练音频的存储区域也需要考虑终端处于何种模式,如果处于应用模式,则需要将训练音频存储在不具备root权限时无法访问的存储区域,用于保护用户的隐私信息,若处于调试模式,则将训练音频存储在不具备root权限时允许访问的存储区域,便于后续获取分析。
可选的,对于调试模式下,还需要针对不同调试对象和测试时间来命名音频数据,便于准确定位到目标测试用户。
步骤903,获取通过麦克风采集的音频数据。
步骤904,通过k级语音唤醒识别模型对音频数据进行识别,得到各级语音唤醒识别模型对应的识别结果,其中,不同级别的语音唤醒识别模型对应不同识别维度,识别结果用于表征音频数据在对应识别维度上的识别通过情况,k为大于等于2的整数。
步骤905,根据识别结果将音频数据存储至第一存储区域,第一存储区域用于存储通过至少一级语音唤醒识别模型的音频数据。
步骤903和步骤905的实施方式可以参考上文实施例,本实施例在此不做赘述。
本实施例中,在语音唤醒测试场景下,保存音频数据时,需要根据唤醒词和训练结果来存储音频数据,对于训练失败的音频数据可以用于分析训练失败的原因,对于训练成功的音频数据,可以用于分析用户的声纹特征。
上文实施例仅以训练场景和唤醒场景为例,分别介绍了在各种场景下的音频数据存储方式,请参考图12,其示出了本申请一个示例性实施例示出的两种模式下不同场景对应的音频数据存储方式的示意图。
如图12所示,终端提供有属性设置功能,即用户可以进行模式选择,当用户选择用户模式(应用模式)后,则将用户唤醒场景下的音频数据存储在“data/kws/wakeupaudio”目录下,将用户测试场景下的音频数据存储在“data/kws/trainaudio”目录下;若用户选择测试模式(调试模式)后,则将用户训练场景下对应的音频数据按照调试对象(即用户1对应训练1)进行存储,比如:“sdcard/kws/时间1/trainaudio”目录下存储用户1的训练音频数据,sdcard/kws/时间2/trainaudio目录下存储用户2的训练音频数据;同理将用户唤醒场景下对应的音频数据按照调试对象(即用户1对应唤醒1)进行存储,比如“sdcard/kws/时间1/wakeupaudio”目录下存储用户1对应的唤醒音频数据,“sdcard/kws/时间2/wakeupaudio”目录下存储用户2对应的唤醒音频数据。
请参考图13,其示出了本申请一个示例性实施例提供的音频数据的存储装置的结构框图。该装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:
获取模块1301,用于获取通过麦克风采集的音频数据;
识别模块1302,用于通过k级语音唤醒识别模型对所述音频数据进行识别,得到各级所述语音唤醒识别模型对应的识别结果,其中,不同级别的语音唤醒识别模型对应不同识别维度,所述识别结果用于表征所述音频数据在对应识别维度上的识别通过情况,k为大于等于2的整数;
第一存储模块1303,用于根据所述识别结果将所述音频数据存储至第一存储区域,所述第一存储区域用于存储通过至少一级语音唤醒识别模型的音频数据。
可选的,所述第一存储模块1303,包括:
命名单元,用于根据所述识别结果以及唤醒词对所述音频数据进行命名;
第一存储单元,用于将命名后的所述音频数据存储至所述第一存储区域。
可选的,所述识别模块1302,包括:
第一识别单元,用于通过第n级语音唤醒识别模型对所述音频数据进行第n级识别,得到第n识别结果,n为小于k的正整数;
第二识别单元,用于响应于所述第n识别结果表征所述音频数据通过第n级识别,通过第n+1级语音唤醒识别模型对所述音频数据进行第n+1级识别,得到第n+1识别结果;
可选的,所述命名单元,还用于:
响应于所述第n识别结果表征所述音频数据通过第n级识别,且所述第n+1识别结果表征所述音频数据未通过第n+1级识别,根据所述第n级语音唤醒识别模型的模型标识以及所述唤醒词对所述音频数据进行命名;
或者,
响应于第k识别结果表征所述音频数据通过第k级识别,根据所述第k级语音唤醒识别模型的模型标识以及所述唤醒词对所述音频数据进行命名。
可选的,所述k级语音唤醒识别模型包括第一级语音唤醒识别模型、第二级语音唤醒识别模型和第三级语音唤醒识别模型;
所述第一识别单元,还用于:
通过所述第一级语音唤醒识别模型对所述音频数据进行第一级识别,得到第一识别结果,所述第一识别结果用于表征所述音频数据中是否包含关键词,所述关键词为所述唤醒词的一部分;
或,
通过所述第二级语音唤醒识别模型对所述音频数据进行第二级识别,得到第二识别结果,所述第二识别结果用于表征所述音频数据中是否包含所述唤醒词;
可选的,所述第二识别单元,还用于:
通过所述第三级语音唤醒识别模型对所述音频数据进行第三级识别,得到第三识别结果,所述第三识别结果用于表征所述音频数据的声纹特征与目标声纹特征是否匹配。
可选的,所述第一级语音唤醒识别模型在dsp上运行,所述第二级语音唤醒识别模型和所述第三级语音唤醒识别模型在cpu上运行;
所述第一级语音唤醒识别模型和所述第二级语音唤醒识别模型基于cnn,所述第三级语音唤醒识别模型基于gmm。
可选的,所述装置还包括:
上传模块,用于向服务器上传所述第一存储区域内容的所述音频数据,所述服务器用于根据所述音频数据以及所述音频数据的名称,确定所述语音唤醒识别模型的识别质量;
接收模块,用于接收所述服务器的反馈信息。
可选的,所述装置还包括:
第一确定模块,用于响应于所述反馈信息指示所述语音唤醒识别模型的识别质量符合质量指标,将所述音频数据确定为所述第n级语音唤醒识别模型的正样本训练数据,和/或,将所述音频数据确定为所述第n+1级语音唤醒识别模型的负样本训练数据。
可选的,所述第一存储模块1303,还包括:
第二存储单元,用于响应于当前模式为应用模式,根据所述识别结果将所述音频数据存储至所述第一存储区域,所述第一存储区域在不具备root权限时无法访问;
所述装置还包括:
第二存储模块,用于响应于当前模式为调试模式,根据所述识别结果将所述音频数据存储至第二存储区域中当前调试对象对应的子存储空间,所述第二存储在不具备root权限时允许访问。
可选的,所述装置还包括:
第二确定模块,用于响应于接收到唤醒语音设置界面中的唤醒词选择操作,确定所述唤醒词选择操作所指示的唤醒词;
第三存储模块,用于响应于采集到的训练音频数据中包含所述唤醒词选择操作所指示的唤醒词,将所述训练音频数据存储在第三存储区域。
本申请实施例中,在语音唤醒场景下,终端中设置有k级语音唤醒识别模型,当终端接收到麦克风采集到的音频数据后,可以将该音频数据输入k级语音唤醒识别模型,在不同识别维度上对音频数据进行识别,得到音频数据在不同识别维度上的识别通过情况,并根据识别结果将该音频数据存储在第一存储区域。通过设置不同识别维度的语音唤醒识别模块,可以得到音频数据在不同识别维度上的识别结果,并按照识别结果对音频数据进行存储,可以准确得到语音唤醒场景下的唤醒状态,对于唤醒失败的情况,可以准确定位出唤醒失败原因,即在哪一级识别维度失败,从而有利于对唤醒失败原因进行准确分析和优化,进而提高了语音唤醒场景下的唤醒率。
请参考图14,其示出了本申请一个示例性实施例提供的终端1400的结构框图。本申请实施例中的终端1400可以包括一个或多个如下部件:处理器1410、存储器1420和屏幕1430。
处理器1410可以包括一个或者多个处理核心。处理器1410利用各种接口和线路连接整个终端1400内的各个部分,通过运行或执行存储在存储器1420内的指令、程序、代码集或指令集,以及调用存储在存储器1420内的数据,执行终端1400的各种功能和处理数据。可选地,处理器1410可以采用,dsp、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1410可集成cpu、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责屏幕1430所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器810中,单独通过一块通信芯片进行实现。
存储器1420可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory,rom)。可选地,该存储器1420包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1420可用于存储指令、程序、代码、代码集或指令集。存储器1420可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等,该操作系统可以是安卓(android)系统(包括基于android系统深度开发的系统)、苹果公司开发的ios系统(包括基于ios系统深度开发的系统)或其它系统。存储数据区还可以存储终端1400在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
屏幕1430可以为电容式触摸显示屏,该电容式触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端1400的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
本申请实施例中,终端1400还包括麦克风,麦克风是一种将声音信号转换为电信号的能量转换器件,用于采集声音信号,并转化为音频数据发送至各级语音唤醒识别模型中进行识别。
除此之外,本领域技术人员可以理解,图14中示出的终端1400的结构并不构成对终端1400的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端1400中还包括射频电路、拍摄组件、传感器、音频电路、无线保真(wirelessfidelity,wifi)组件、电源、蓝牙组件等部件,在此不再赘述。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的音频数据的存储方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的音频数据的存储方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除