System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及语音交互,尤其涉及一种语音交互方法、电子设备及计算机可读存储介质。
技术介绍
1、随着人工智能技术的不断发展,语音交互因其在交互方式上的高自然性与高效性,逐渐成为用户和电子设备交流的主要方式。用户可以通过语音与电子设备进行交互,完成指令输入、信息查询、语音聊天等操作。
2、在用户输入语音指令之前,需要先触发语音输入,启动语音交互服务,之后语音交互服务才可以接收并识别用户输入的语音指令。目前常见的触发方式有关键词触发、物理按键触发、界面元素触发等。其中,关键词触发语音输入的触发方式存在隐私性和社会性较差、交互效率较低的问题;物理按键触发需要设置物理按键,且需要用户按照要求按下该物理按键(例如长按电源键),操作复杂的问题;而界面元素触发的触发方式受限于软件ui限制,也会导致触发操作繁琐的问题。
3、基于此,目前还提供了一种无需通过物理按键、界面元素、唤醒词,只需要用户将电子设备靠近用户的嘴部就能够触发语音输入的触发方式(以下简称为气息触发方式)。这种触发方式更加简便快捷,能够有效减少触发语音交互的操作流程,提高触发语音交互的效率。
4、然而在用户将设备靠近嘴边说出语音指令的时刻到电子设备的系统检测到用户的交互行为并启动语音交互服务进行识别的时刻之间,存在一小段时间差。在这一小段时间内,语音交互服务无法接收语音数据,因此可能存在语音指令出现部分缺失的情况,这会导致语音交互服务无法准确识别出语音指令。
技术实现思路
1、本申请提供了一种语音交互
2、第一方面,提供了一种语音交互方法,包括:在检测到气息唤醒事件被触发时,将采集到的音频数据缓存到缓存区中;其中,所述缓存区设置在音频驱动中;在语音识别服务启动时,从所述缓存区中读取音频数据;从读取到的音频数据中识别语音指令;响应所述语音指令。
3、在气息唤醒语音交互的场景下,电子设备采集到的音频数据即作为触发气息唤醒事件的音频数据,又将作为后续进行语音指令识别时使用的音频数据。
4、通过在检测到用户的交互行为时,将用户输入的语音数据缓存在设置于驱动中的缓存区中,在语音识别启动后,从缓存区中读取语音数据并进行识别,通过缓存区缓存语音数据,有效地避免语音指令存在部分缺失的情况。
5、在第一方面的一种可能的实现方式中,在检测到气息唤醒事件被触发时,将采集到的音频数据缓存到缓存区中,包括:在音频驱动中创建所述缓存区;从音频采集装置中读取音频数据并存储在所述缓存区中。
6、上述缓存区可以由音频驱动创建。具体可以是在检测到气息唤醒事件时,由音频驱动中创建一个用于缓存音频数据的缓存区(buffer),然后将电子设备采集到的音频数据缓存到该缓存区中。
7、上述创建缓存区的过程可以是:音频驱动向系统内存发送申请部分内存作为缓存区的请求,系统内存在接收到该请求后为音频驱动分配相应的内存作为缓存区。
8、上述将电子设备采集到的音频数据缓存到缓存区中的过程可以是:音频驱动以第一预设时间间隔从音频数字信号处理器(digital signal processing,dsp)或麦克风等硬件中读取音频数据,并将读取到的音频数据存储到上述缓存区中。
9、需要说明的是,上述第一预设时间间隔可以根据实际需求进行设置,例如设置为10ms,本申请对此不作具体限制。
10、即音频驱动每间隔10ms从dsp或麦克风等硬件中读取音频数据并存储在上述缓存区中。
11、在第一方面的一种可能的实现方式中,在语音识别服务启动时,从所述缓存区中读取音频数据,包括:以第二预设时间间隔从所述缓存区中读取音频数据;所述第二预设时间间隔大于所述第一预设时间间隔。
12、为了避免语音交互应用程序无法从缓存区中读取音频数据的情况,需要设置第二预设时间间隔大于第一预设时间间隔,即语音交互应用程序从缓存区读取音频数据的时间间隔要大于音频驱动从dsp或麦克风等硬件中读取音频数据的时间间隔。
13、在一个示例中,上述第一预设时间间隔为10ms,上述第二预设时间间隔为20ms。即每间隔10ms,音频驱动会从dsp或麦克风等硬件中读取音频数据并存储到缓存区中,每间隔20ms,语音交互应用程序会从缓存区中读取音频数据。
14、音频驱动每次从dsp或麦克风等硬件中读取音频数据的数据量与语音交互应用程序每次从缓存区读取音频数据的数据量相等。例如上述音频驱动从dsp或麦克风等硬件中每次读取64k音频数据,语音交互应用程序每次从缓存区中也读取64k的音频数据。
15、设置音频驱动从dsp或麦克风等硬件中读取音频数据的数据量与语音交互应用程序每次从缓存区读取音频数据的数据量相等是为了避免语音交互应用程序无法从缓存区中读取数据的情况。
16、上述第二预设时间间隔也可以根据实际应用进行设置,本申请对此不作具体限制。上述音频驱动从dsp或麦克风等硬件中读取音频数据的数据量和语音交互应用程序从缓存区读取的音频的数据量也可以根据实际应用进行设置,本申请对此不作具体限定。
17、在第一方面的一种可能的实现方式中,所述第二预设时间间隔满足语音交互时延要求。
18、上述第二预设时间间隔设置为较小的时间间隔。需要说明的是,本申请实施例中提到的较小的时间间隔是指能够满足时延要求的时间间隔。即上述第二预设时间间隔满足语音交互时延要求。
19、需要说明的是,上述语音交互时延要求可以根据用户需求进行设置,例如用户的期望响应时间为2秒钟,则语音交互时延要求为不超过2秒,因此为了能够减少响应时延,可以将上述第二预设时间间隔设置为20ms,以较小的时间间隔去读取音频数据,能够有效减少响应时延。可以理解的是,上述关于第二预设时间间隔满足语音交互时延要求的说明仅为示例而非限制。
20、设置比较小的时间间隔(如20ms)能够加快语音交互应用程序从缓存区读取音频数据的速度,减少时延,避免用户等待反馈时间过长,影响交互体验。
21、在第一方面的一种可能的实现方式中,所述从读取到的音频数据中识别语音指令,包括:
22、实时识别语音交互应用程序读取到的音频数据对应的字或词;
23、将识别出的字或词进行拼接;
24、对拼接后的文字进行语音识别,得到所述音频指令。
25、语音交互应用程序可以实时识别出语音交互应用程序从缓存区读取出的音频数据,然后将识别出的字、词进行拼接,然后进行语义识别,进而确定出用户输入的语音指令,能够提高语音交互的时效性。
26、在第一方面的一种可能的实现方式中,在所述在检测到气息唤醒事件被触发时,将采集到的音频数据缓存到缓存区中之前,还包括:检测气息唤醒事件是否被触发。
27、示例性的,上述气息唤醒事件的触发时机包括以下几种情况:
本文档来自技高网...【技术保护点】
1.一种语音交互方法,其特征在于,包括:
2.如权利要求1所述的语音交互方法,其特征在于,在检测到气息唤醒事件被触发时,将采集到的音频数据缓存到缓存区中,包括:
3.如权利要求2所述的语音交互方法,其特征在于,所述从音频采集装置中读取音频数据并存储在所述缓存区中,包括:
4.如权利要求3所述的语音交互方法,其特征在于,所述在语音识别服务启动时,从所述缓存区中读取音频数据,包括:
5.如权利要求4所述的语音交互方法,其特征在于,所述第二预设时间间隔满足语音交互时延要求。
6.如权利要求1所述语音交互方法,其特征在于,所述从读取到的音频数据中识别语音指令,包括:
7.如权利要求1至6任一项所述的语音交互方法,其特征在于,在所述在检测到气息唤醒事件被触发时,将采集到的音频数据缓存到缓存区中之前,还包括:
8.如权利要求7所述的语音交互方法,其特征在于,在检测气息唤醒事件是否被触发之前,还包括:
9.如权利要求8所述的语音交互方法,其特征在于,在启动语音交互程序的气息唤醒功能之后,还包括:
...【技术特征摘要】
1.一种语音交互方法,其特征在于,包括:
2.如权利要求1所述的语音交互方法,其特征在于,在检测到气息唤醒事件被触发时,将采集到的音频数据缓存到缓存区中,包括:
3.如权利要求2所述的语音交互方法,其特征在于,所述从音频采集装置中读取音频数据并存储在所述缓存区中,包括:
4.如权利要求3所述的语音交互方法,其特征在于,所述在语音识别服务启动时,从所述缓存区中读取音频数据,包括:
5.如权利要求4所述的语音交互方法,其特征在于,所述第二预设时间间隔满足语音交互时延要求。
6.如权利要求1所述语音交互方法,其特征在于,所述从读取到的音频数据中识别语音指令,包括:
7.如权利要求1至6任一项所述的语音交互方法,其特征在于,在所述在检测到气息唤醒事件被触发时,将采集到的音频数据缓存到缓存区中之前,还包括:
8.如权利要求7所述的语音交互方法,其特征在于,在检测气息唤醒事件是否被触...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。