一种完整的语音数据获得方法及装置与流程

文档序号:11232721
一种完整的语音数据获得方法及装置与流程

本发明涉及语音处理技术领域,特别是涉及一种完整的语音数据获得方法及装置。



背景技术:

随着人工智能的发展和语音处理技术的日渐成熟,自然语音交互技术也得到了快速发展。目前,云端模式逐渐兴起,终端负责简单的语音信号处理运算,将超规模计算托付给云端,这样可以降低终端的运行压力,也为语音交互提供了更多选择。相应的,各大语音云服务厂商已经推出了各种语音接入方案,终端只需将实时的语音信号数据发送至语音云服务厂商的语音处理引擎中,即可对语音数据做进一步处理。在这种情况下,终端如何在实时接收到的麦克风采样数据中保证获得的语音数据的完整性,是当前关注重点问题之一。

在现有技术中,为解决上述问题,常使用的方法是,当检测到语音信号的前端点时开始录入语音数据,在检测到语音信号的后端点时即停止录入语音数据,即将相邻的前端点和后端点之间的数据作为完整的语音数据。

这种方法过于依赖于语音端点检测技术,目前语音端点检测技术虽在准确率上有较大提升,但是仍有误判的可能。如果存在误判,则获得的语音数据的起始位置可能被延后截取,结束位置又可能被提前,从而导致语音数据的不完整,容易出现音节丢失、语音不连续等问题,进而导致云端无法完成对语音数据的进一步处理。



技术实现要素:

本发明的目的是提供一种完整的语音数据获得方法及装置,以降低对语音端点检测精度要求,保证获得完整的语音数据,避免出现音节丢失、语音不连续等问题,使云端可以顺利完成对语音数据的进一步处理。

为解决上述技术问题,本发明提供如下技术方案:

一种完整的语音数据获得方法,包括:

在接收麦克风采样数据的过程中,利用所述采样数据实时刷新前向语音帧缓存器中的缓存数据;

在检测到所述采样数据中存在语音信号的前端点时,开始记录所述采样数据,并将所述前向语音帧缓存器中当前缓存数据确定为第一缓存数据;

在检测到所述采样数据中存在语音信号的后端点时,停止记录所述采样数据,并开始在空的后向语音帧缓存器中填充所述采样数据,直至达到设定条件时,将所述后向语音帧缓存器中当前缓存数据确定为第二缓存数据;

在记录得到的所述采样数据的前部添加所述第一缓存数据,在记录得到的所述采样数据的尾部添加所述第二缓存数据,获得完整的语音数据。

在本发明的一种具体实施方式中,所述直至达到设定条件时,将所述后向语音帧缓存器中当前缓存数据确定为第二缓存数据,包括:

直至所述后向语音帧缓存器填满时,将所述后向语音帧缓存器中当前缓存数据确定为第二缓存数据。

在本发明的一种具体实施方式中,还包括:

如果在所述后向语音帧缓存器未填满时,再次检测到所述采样数据中存在语音信号的前端点,则将所述后向语音帧缓存器清空,并继续记录所述采样数据,直至再次检测到所述采样数据中存在语音信号的后端点时,重复执行所述停止记录所述采样数据,并开始在空的后向语音帧缓存器中填充所述采样数据,直至所述后向语音帧缓存器填满时,将所述后向语音帧缓存器中当前缓存数据确定为第二缓存数据的步骤。

在本发明的一种具体实施方式中,所述前向语音帧缓存器中初始预存有设定长度的随机数据。

在本发明的一种具体实施方式中,所述前向语音帧缓存器和所述后向语音帧缓存器均为数据先进先出缓存结构。

一种完整的语音数据获得装置,包括:

数据刷新模块,用于在接收麦克风采样数据的过程中,利用所述采样数据实时刷新前向语音帧缓存器中的缓存数据;

数据第一获得模块,用于在检测到所述采样数据中存在语音信号的前端点时,开始记录所述采样数据,并将所述前向语音帧缓存器中当前缓存数据确定为第一缓存数据;

数据第二获得模块,用于在检测到所述采样数据中存在语音信号的后端点时,停止记录所述采样数据,并开始在空的后向语音帧缓存器中填充所述采样数据,直至达到设定条件时,将所述后向语音帧缓存器中当前缓存数据确定为第二缓存数据;

语音数据获得模块,用于在记录得到的所述采样数据的前部添加所述第一缓存数据,在记录得到的所述采样数据的尾部添加所述第二缓存数据,获得完整的语音数据。

在本发明的一种具体实施方式中,所述数据第二获得模块,具体用于:

直至所述后向语音帧缓存器填满时,将所述后向语音帧缓存器中当前缓存数据确定为第二缓存数据。

在本发明的一种具体实施方式中,还包括重复执行模块,用于:

如果在所述后向语音帧缓存器未填满时,再次检测到所述采样数据中存在语音信号的前端点,则将所述后向语音帧缓存器清空,并继续记录所述采样数据,直至再次检测到所述采样数据中存在语音信号的后端点时,重复执行所述停止记录所述采样数据,并开始在空的后向语音帧缓存器中填充所述采样数据,直至所述后向语音帧缓存器填满时,将所述后向语音帧缓存器中当前缓存数据确定为第二缓存数据的步骤。

在本发明的一种具体实施方式中,所述前向语音帧缓存器中初始预存有设定长度的随机数据。

在本发明的一种具体实施方式中,所述前向语音帧缓存器和所述后向语音帧缓存器均为数据先进先出缓存结构。

应用本发明实施例所提供的技术方案,在接收麦克风采样数据的过程中,利用采样数据实时刷新前向语音帧缓存器中的缓存数据,在检测到采样数据中存在语音信号的前端点时,开始记录采样数据,并将前向语音帧缓存器中当前缓存数据确定为第一缓存数据,在检测到采样数据中存在语音信号的后端点时,停止记录采样数据,并开始在空的后向语音帧缓存器中填充采样数据,直至达到设定条件时,将后向语音帧缓存器中当前缓存数据确定为第二缓存数据,在记录得到的采样数据的前部添加第一缓存数据,在记录得到的采样数据的尾部添加第二缓存数据,获得完整的语音数据。设置了前向语音帧缓存器和后向语音帧缓存器的双缓存结构,可以降低对语音端点检测精度要求,保证获得完整的语音数据,避免出现音节丢失、语音不连续等问题,使云端可以顺利完成对语音数据的进一步处理。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种完整的语音数据获得方法的实施流程图;

图2为本发明实施例中完整的语音数据获得方法的整体流程图;

图3为本发明实施例中一种完整的语音数据获得装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的一种完整的语音数据获得方法可以应用于终端,具体的,可以应用于终端处理器。

参见图1所示,为本发明实施例所提供的一种完整的语音数据获得方法的实施流程图,该方法可以包括以下步骤:

S110:在接收麦克风采样数据的过程中,利用采样数据实时刷新前向语音帧缓存器中的缓存数据。

在本发明实施例中,设置有前向语音帧缓存器,该前向语音帧缓存器中初始预存有设定长度的随机数据,该前向语音帧缓存器为数据先进先出缓存结构。

在实际应用中,终端中内置或外置的麦克风可以实时捕捉采样数据。处理器在接收麦克风采样数据的过程中,可以利用采样数据实时刷新前向语音帧缓存器中的缓存数据,即将接收到采样数据不断地向前向语音帧缓存器中传输。初始时,前向语音帧缓存器中的缓存数据为随机数据,随着采样数据不断进入,后进入到前向语音帧缓存器中的数据将先进入到前向语音帧缓存器中的数据挤出。在实际应用中,可以使前向语音帧缓存器一直处于充满状态。

S120:在检测到采样数据中存在语音信号的前端点时,开始记录采样数据,并将前向语音帧缓存器中当前缓存数据确定为第一缓存数据。

在本发明实施例中,在接收麦克风采样数据的过程中,可以实时对采样数据进行端点检测,确定采样数据中是否存在语音信号的前端点或后端点。前端点可记为Start,后端点可记为End。具体可以利用现有技术中语音端点检测算法进行前端点或后端点的检测,本发明实施例对此不再赘述。

在检测到采样数据中存在语音信号的前端点时,开始记录采样数据,记录的采样数据可以在指定位置处保存。

在检测到采样数据中存在语音信号的前端点之前,一直将采样数据实时刷新前向语音帧缓存器中的缓存数据,即前向语音帧缓存器中的缓存数据一直处于刷新状态。在检测到采样数据中存在语音信号的前端点时,前向语音帧缓存器中当前缓存数据为与当前检测到的前端点相邻的一段数据,可以将前向语音帧缓存器中当前缓存数据确定为第一缓存数据。

第一缓存数据的起始点距离前端点的时间长度与前向语音帧缓存器的长度的关系式如公式(1)所示:

其中,Lp为前向语音帧缓存器的长度,Tp为第一缓存数据的起始点距离前端点的时间长度,T为硬件采样率,C为通道数,S为采样数据精度。

S130:在检测到采样数据中存在语音信号的后端点时,停止记录采样数据,并开始在空的后向语音帧缓存器中填充采样数据,直至达到设定条件时,将后向语音帧缓存器中当前缓存数据确定为第二缓存数据。

在本发明实施例中,设置有后向语音帧缓存器,该后向语音帧缓存器为数据先进先出缓存结构,该后向语音帧缓存器初始为空。

在检测到采样数据中存在语音信号的后端点时,停止记录采样数据,在上述指定位置处存储有记录得到的采样数据。

在未检测到采样数据中存在语音信号的后端点时,后向语音帧缓存器一直为空。在检测到采样数据中存在语音信号的后端点时,开始在空的后向语音帧缓存器中填充采样数据,直至达到设定条件时,如达到设定时长时,或者后向语音帧缓存器填满时,将后向语音帧缓存器中当前缓存数据确定为第二缓存数据。第二缓存数据为与当前检测到的后端点相邻的一段数据。第二缓存数据的结束点距离后端点的时间长度与后向语音缓存器的长度的关系可以参考公式(1)获得。

将后向语音帧缓存器中当前缓存数据确定为第二缓存数据后,可以将后向语音帧缓存器清空。

在本发明的一种具体实施方式中,设定条件可以为后向语音帧缓存器填满条件,即在检测到采样数据中存在语音信号的后端点时,开始在后向语音帧缓存器中填充采样数据,直至后向语音帧缓存器填满时,将后向语音帧缓存器中当前缓存数据确定为第二缓存数据。后向语音帧缓存器填满状态可以记为End_Delay。

在本发明的一个实施例中,该方法还可以包括以下步骤:

如果在后向语音帧缓存器未填满时,再次检测到采样数据中存在语音信号的前端点,则将后向语音帧缓存器清空,并继续记录采样数据,直至再次检测到采样数据中存在语音信号的后端点时,重复执行停止记录采样数据,并开始在后向语音帧缓存器中填充采样数据,直至后向语音帧缓存器填满时,将后向语音帧缓存器中当前缓存数据确定为第二缓存数据的步骤。

可以理解的是,如果检测到采样数据中存在语音信号的后端点后,在间隔很短的时间内再次检测到采样数据中存在语音信号的前端点,则表明前一段语音数据与后一段语音数据相关性较大,可以将这两段语音数据作为一个语音数据来处理。

在检测到采样数据中存在语音信号的后端点时,停止记录采样数据,并开始在空的后向语音帧缓存器中填充采样数据,在填充过程中,如果在后向语音帧缓存器未填满时,再次检测到采样数据中存在语音信号的前端点,则可以将后向语音帧缓存器清空,继续记录采样数据,记录的采样数据存储至上述指定位置。直至再次检测到采样数据中存在语音信号的后端点时,重复执行停止记录采样数据,并开始在空的后向语音帧缓存器中填充采样数据,直至后向语音帧缓存器填满时,将后向语音帧缓存器中当前缓存数据确定为第二缓存数据的步骤。

这样可以避免相关性较大的语音数据被分割成两部分,影响对语音数据的进一步处理。

S140:在记录得到的采样数据的前部添加第一缓存数据,在记录得到的采样数据的尾部添加第二缓存数据,获得完整的语音数据。

通过上述步骤S120,获得了第一缓存数据,通过上述步骤S130,获得了第二缓存数据。通过上述步骤S120和步骤S130可以获得记录得到的采样数据。

记录得到的采样数据具有前端点和后端点,第一缓存数据是在前端点之前、与前端点相邻的一段数据,第二缓存数据是在后端点之后、与后端点相邻的一段数据。

在记录得到的采样数据的前部添加第一缓存数据,在记录得到的采样数据的尾部添加第二缓存数据,即可获得完整的语音数据。通过第一缓存数据和第二缓存数据可以有效避免通过端点检测技术检测得到的前端点和后端点存在误判时带来的问题,如减少音节丢失概率等。

以图2为例,对本发明实施例提供的完整的语音数据获得方法进行整体说明。信号源为麦克风采样数据,采样数据实时刷新前向语音帧缓存器,通过语音端点检测器可以对采样数据中的语音信号端点进行检测。在检测到采样数据中存在语音信号的前端点Start时,开始记录采样数据,实时输出采样数据到指定位置,并通过前向缓存输出得到第一缓存数据。在检测到采样数据中存在语音信号的后端点End时,停止实时输出采样数据,开始在空的后向语音帧缓存器中填充采样数据,达到End_Delay条件时,通过后向缓存输出得到第二缓存数据,将前向缓存输出的第一缓存数据、实时输出的采样数据和后向缓存输出的第二缓存数据结合起来,即可得到完整的实际输出的语音数据。

图2中,+/-表示关卡的开通、断开。

应用本发明实施例所提供的方法,在接收麦克风采样数据的过程中,利用采样数据实时刷新前向语音帧缓存器中的缓存数据,在检测到采样数据中存在语音信号的前端点时,开始记录采样数据,并将前向语音帧缓存器中当前缓存数据确定为第一缓存数据,在检测到采样数据中存在语音信号的后端点时,停止记录采样数据,并开始在空的后向语音帧缓存器中填充采样数据,直至达到设定条件时,将后向语音帧缓存器中当前缓存数据确定为第二缓存数据,在记录得到的采样数据的前部添加第一缓存数据,在记录得到的采样数据的尾部添加第二缓存数据,获得完整的语音数据。设置了前向语音帧缓存器和后向语音帧缓存器的双缓存结构,可以降低对语音端点检测精度要求,保证获得完整的语音数据,避免出现音节丢失、语音不连续等问题,使云端可以顺利完成对语音数据的进一步处理。

相应于上面的方法实施例,本发明实施例还提供了一种完整的语音数据获得装置,下文描述的一种完整的语音数据获得装置与上文描述的一种完整的语音数据获得方法可相互对应参照。

参见图3所示,该装置包括以下模块:

数据刷新模块310,用于在接收麦克风采样数据的过程中,利用采样数据实时刷新前向语音帧缓存器中的缓存数据;

数据第一获得模块320,用于在检测到采样数据中存在语音信号的前端点时,开始记录采样数据,并将前向语音帧缓存器中当前缓存数据确定为第一缓存数据;

数据第二获得模块330,用于在检测到采样数据中存在语音信号的后端点时,停止记录采样数据,并开始在空的后向语音帧缓存器中填充采样数据,直至达到设定条件时,将后向语音帧缓存器中当前缓存数据确定为第二缓存数据;

语音数据获得模块340,用于在记录得到的采样数据的前部添加第一缓存数据,在记录得到的采样数据的尾部添加第二缓存数据,获得完整的语音数据。

在本发明的一种具体实施方式中,数据第二获得模块330,具体用于:

直至后向语音帧缓存器填满时,将后向语音帧缓存器中当前缓存数据确定为第二缓存数据。

在本发明的一种具体实施方式中,还包括重复执行模块,用于:

如果在后向语音帧缓存器未填满时,再次检测到采样数据中存在语音信号的前端点,则将后向语音帧缓存器清空,并继续记录采样数据,直至再次检测到采样数据中存在语音信号的后端点时,重复执行停止记录采样数据,并开始在空的后向语音帧缓存器中填充采样数据,直至后向语音帧缓存器填满时,将后向语音帧缓存器中当前缓存数据确定为第二缓存数据的步骤。

在本发明的一种具体实施方式中,前向语音帧缓存器中初始预存有设定长度的随机数据。

在本发明的一种具体实施方式中,前向语音帧缓存器和后向语音帧缓存器均为数据先进先出缓存结构。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1