一种语音唤醒方法、电子设备和计算机可读存储介质 【技术领域】 [0001] 本发明涉及声学技术领域,尤其涉及一种语音唤醒方法、电子设备和计算机可读存储介质。 【背景技术】 [0002] 相关技术中的语音唤醒方法,通常使用微型机电系统(Micro‑Electro‑Mechanical System,简称MEMS)麦克风对语音信号进行采集,然后通过音频传输接口传输给中央处理器(Central Processing Unit,简称CPU)的主控芯片,主控芯片通过运行算法实现语音唤醒功能,其中,MEMS麦克风需要借助外部CPU对语音信号的处理和识别,需要CPU长期保持在运行状态,功耗较高,且MEMS麦克风的功能单一,不利于产品模块化。 [0003] 在语音唤醒方法的信号预处理过程中,常使用端点检测算法从一段包含噪声的语音信号中正确查找出语音信号的开始点和终止点,其中,端点检测算法为双门限检测算法,结合短时能量和短时过零点来区分语音的静音段,过渡音段和语音段以及结束段,双门限检测算法的误差和计算开销较大。 【发明内容】 [0004] 有鉴于此,本发明实施例提供了一种语音唤醒方法、电子设备和计算机可读存储介质,用以在降低电子设备功耗的同时,提高语音唤醒的准确性。 [0005] 一方面,本发明实施例提供了一种语音唤醒方法,应用于电子设备,包括: [0006] 采集用户输入的原始语音信号; [0007] 根据所述原始语音信号生成脉冲密度调制数据; [0008] 对所述脉冲密度调制数据进行解码,生成解码数据; [0009] 对所述解码数据进行预处理和特征提取处理,生成语音特征; [0010] 根据获取的隐马尔可夫模型对所述语音特征进行模式匹配,生成识别结果; [0011] 根据所述识别结果唤醒所述电子设备的外部处理器。 [0012] 可选地,所述对所述解码数据进行预处理和特征提取处理,生成语音特征,包括: [0013] 通过改进端点检测算法对所述解码数据进行预处理,生成原始语音信号的有效音段; [0014] 通过特征提取算法提取出所述有效音段的特征信息; [0015] 对所述特征信息进行矢量量化,生成语音特征。 [0016] 可选地,所述通过改进端点检测算法对所述解码数据进行预处理,生成原始语音信号的有效音段,包括: [0017] 过滤所述解码数据中的干扰信号,生成过滤数据; [0018] 对所述过滤数据进行预加重处理,生成预加重数据; [0019] 对所述预加重数据进行分帧处理,生成多帧数据; [0020] 对多帧数据中的每帧数据进行加窗处理,生成加窗数据; [0021] 基于所述改进端点检测算法提取出所述加窗数据中的有效内容; [0022] 基于梅尔频率倒谱系数特征提取算法对所述有效内容进行计算,生成原始语音信号的有效音段。 [0023] 可选地,所述改进端点检测算法包括公式 其中,ρ为短 时能量变化率,δ为短时能量阈值, 为可调的影响因子。 [0024] 可选地,所述根据获取的隐马尔可夫模型对所述语音特征进行模式匹配,生成识别结果,包括: [0025] 根据所述隐马尔可夫模型,使用前向算法对所述语音特征进行模式匹配,以通过设置的判别规则判定用户输入的原始语音信号中是否包括预设命令,生成识别结果。 [0026] 可选地,所述根据所述隐马尔可夫模型,使用前向算法对所述语音特征进行模式匹配,以通过设置的判别规则判定用户输入的原始语音信号中是否包括预设命令,生成识别结果,包括: [0027] 采用矢量量化将二维的所述语音特征转换为一维的符号序列; [0028] 穷举当前帧的符号序列对应的所有可能状态序列,生成特征序列; [0029] 根据转移概率和发射概率,得到特征帧序列由每种状态序列产生的概率; [0030] 将每种状态序列中的状态数目扩展到特征帧的数量,将每种状态序列的概率求和,作为特征帧序列被识别成单词序列的似然概率; [0031] 计算特征帧序列中单词序列在语音模型中的概率作为单词序列的先验概率; [0032] 将所述似然概率和所述先验概率相乘作为单词序列的后验概率; [0033] 将后验概率中最大的单词序列作为识别结果。 [0034] 另一方面,本发明实施例提供了一种电子设备,包括:外部处理器和智能麦克风,所述智能把麦克风包括麦克风和数字信号处理器; [0035] 所述麦克风,用于采集用户输入的原始语音信号; [0036] 所述数字信号处理器,用于根据所述原始语音信号生成脉冲密度调制数据;对所述脉冲密度调制数据进行解码,生成解码数据;对所述解码数据进行预处理和特征提取处理,生成语音特征;根据获取的隐马尔可夫模型对所述语音特征进行模式匹配,生成识别结果;将所述识别结果发送至所述外部处理器; [0037] 所述外部处理器,用于根据所述识别结果进行自唤醒。 [0038] 可选地,所述数字信号处理器接收服务器发送的隐马尔可夫模型,所述隐马尔可夫模型是服务器训练的。 [0039] 可选地,所述外部处理器包括中央处理器或系统级芯片。 [0040] 另一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述语音唤醒方法。 [0041] 本发明实施例提供的语音唤醒方法的技术方案中,采集用户输入的原始语音信号;根据原始语音信号生成脉冲密度调制数据;对脉冲密度调制数据进行解码,生成解码数据;对解码数据进行预处理和特征提取处理,生成语音特征;根据获取的隐马尔可夫模型对语音特征进行模式匹配,生成识别结果;根据识别结果唤醒电子设备的外部处理器。本发明实施例提供的技术方案中,通过对解码数据进行预处理和特征提取处理,生成语音特征;根据获取的隐马尔可夫模型对语音特征进行模式匹配,生成识别结果并根据识别结果唤醒电子设备的外部处理器,实现了语音唤醒功能,在降低电子设备功耗的同时,提高语音唤醒的准确性。 【附图说明】 [0042] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。 [0043] 图1为本发明一实施例提供的一种电子设备的结构示意图; [0044] 图2为本发明一实施例提供的一种电子设备的电路结构示意图; [0045] 图3为本发明一实施例提供的一种语音唤醒方法的流程图; [0046] 图4为本发明一实施例提供的对解码数据进行预处理和特征提取处理,生成语音特征的流程图; [0047] 图5为本发明一实施例提供的服务器训练隐马尔可夫模型的流程图; [0048] 图6为根据获取的隐马尔可夫模型对语音特征进行模式匹配,生成识别结果的流程图。 【具体实施方式】 [0049] 为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。 [0050] 应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。 [0051] 在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。 [0052] 应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。 [0053] MEMS麦克风是基于MEMS技术制造的麦克风,简单的说就是一个电容器集成在微硅晶片上,可以采用表贴工艺进行制造,能够承受很高的回流焊温度,容易与互补金属氧化物半导体(Complementary Metal Oxide Semiconductor,简称CMOS)工艺及其它音频电路相集成,并具有改进的噪声消除性能与良好的射频(Radio Frequency,简称RF)及电磁干扰(Electromagnetic Interference,简称EMI)抑制能。MEMS麦克风常被应用于搭载语音唤醒方法的产品中,作为语音信号的采集单元。 [0054] 本发明一实施例提供的一种电子设备,电子设备包括真正无线立体声(True Wireless Stereo,简称TWS)耳机、智能手表、智能灯、智能机器人等。 [0055] 图1为本发明一实施例提供的一种电子设备的结构示意图,如图1所示,电子设备包括:外部处理器1和智能麦克风2,智能把麦克风2包括麦克风(Microphone,简称MIC)21和数字信号处理器(Digital Signal Processing,简称DSP)22。麦克风21与数字信号处理器 22连接,外部处理器1与智能麦克风2连接,具体地,数字信号处理器22与外部处理器1连接。 [0056] 麦克风21用于采集用户输入的原始语音信号。 [0057] 数字信号处理器22用于根据原始语音信号生成脉冲密度调制数据;对脉冲密度调制数据进行解码,生成解码数据;对解码数据进行预处理和特征提取处理,生成语音特征; 根据获取的隐马尔可夫模型(Hidden Markov Model,简称HMM)对语音特征进行模式匹配,生成识别结果;将识别结果发送至外部处理器1。 [0058] 外部处理器1用于根据识别结果进行自唤醒。 [0059] 本发明一实施例中,外部处理器1包括中央处理器(Central Processing Unit,简称CPU)或系统级芯片(System on Chip,简称SOC)。 [0060] 本发明一实施例中,麦克风21包括数据输出(data output)接口和时钟(clock)接口,数字信号处理器22包括数据输入(data input)接口、时钟(clock)接口、声道选择(word select)接口、重置(RST)接口、串行时钟(SCL)接口、串行数据(SDA)接口、INT接口和唤醒(WAKE)接口。其中,麦克风21的数据输出(data output)接口与数字信号处理器22的数据输入(data input)接口连接,麦克风21的时钟(clock)接口与数字信号处理器22的声道选择(word select)接口连接。 [0061] 本发明一实施例中,数字信号处理器22具体用于通过改进端点检测算法对解码数据进行预处理,生成原始语音信号的有效音段;通过特征提取算法提取出有效音段的特征信息;对特征信息进行矢量量化,生成语音特征。 [0062] 本发明一实施例中,数字信号处理器22具体用于过滤解码数据中的干扰信号,生成过滤数据;对过滤数据进行预加重处理,生成预加重数据;对预加重数据进行分帧处理,生成多帧数据;对多帧数据中的每帧数据进行加窗处理,生成加窗数据;基于改进端点检测算法提取出加窗数据中的有效内容;基于梅尔频率倒谱系数特征提取算法对有效内容进行计算,生成原始语音信号的有效音段。 [0063] 本发明一实施例中,改进端点检测算法包括公式 其中, ρ为短时能量变化率,δ为短时能量阈值, 为可调的影响因子。 [0064] 本发明一实施例中,数字信号处理器22具体用于根据隐马尔可夫模型,使用前向算法对语音特征进行模式匹配,以通过设置的判别规则判定用户输入的原始语音信号中是否包括预设命令,生成识别结果。 [0065] 本发明一实施例中,数字信号处理器22具体用于采用矢量量化将二维的语音特征转换为一维的符号序列;穷举当前帧的符号序列对应的所有可能状态序列,生成特征序列; 根据转移概率和发射概率,得到特征帧序列由每种状态序列产生的概率;将每种状态序列中的状态数目扩展到特征帧的数量,将每种状态序列的概率求和,作为特征帧序列被识别成单词序列的似然概率;计算特征帧序列中单词序列在语音模型中的概率作为单词序列的先验概率;将似然概率和先验概率相乘作为单词序列的后验概率;将后验概率中最大的单词序列作为识别结果。 [0066] 本发明一实施例中,数字信号处理器22接收服务器发送的隐马尔可夫模型,隐马尔可夫模型是服务器训练的。 [0067] 本发明一实施例中,电子设备的内部组成以及与外部处理器1的接口连接如图1所示。麦克风21将采集得到的语音信号进行采样调制,然后将0‑1数字串通过PDM(Pulse Density Modulation,脉冲密度调制)接口输出给数字信号处理器22进行处理和识别唤醒。 最终将根据识别结果决定是否唤醒外部处理器1。此外,外部处理器1可以通过I2C接口对数字信号处理器22进行控制。 [0068] 本发明一实施例中,上述电子设备的规格较小,可以为3.5mm*2.65mm,该电子设备具备高信噪比和灵敏度,以及低功耗,支持关键字识别、声纹识别、离线录音和语音识别,支持客制化唤醒词和命令词。该电子设备的供电电压可以为3.3V,信噪比(Signal to Interference plus Noise Ratio,简称SNR)为65dB。 [0069] 图2为本发明一实施例提供的一种电子设备的电路结构示意图,如图2所示,该电子设备的电路结构包括:MIC_OUT接口、MIC_I接口、MIC_VDD接口、MIC_BIAS接口、VCC接口、MIC_N接口、GND接口、DCDC接口、VANA接口、I2C_SDA接口、I2C_CLK接口、NRST接口、INT_0接口和WAKE接口。MIC_OUT接口与MIC_I接口连接,MIC_I接口与MIC_VDD接口连接,MIC_VDD接口与MIC_BIAS接口连接,MIC_BIAS接口与VCC接口连接,VCC接口与MIC_N接口连接,MIC_N接口与GND接口连接,GND接口与WAKE接口连接,WAKE接口与INT_0接口连接,INT_0接口与NRST接口连接,NRST接口与I2C_CLK接口连接,I2C_CLK接口与I2C_SDA接口连接,I2C_SDA接口与VANA接口连接,VANA接口与DCDC接口连接,DCDC接口与MIC_OUT接口连接。 [0070] MIC_OUT接口与MIC_I接口通过第一电容连接,第一电容可以为1uf;MIC_VDD接口与MIC_BIAS接口连接;VCC接口与外部电源连接;MIC_N接口通过第二电容接地,第二电容可以为2.2uf;GND接口接地;I2C_SDA接口、I2C_CLK接口、NRST接口、INT_0接口和WAKE接口均与外部处理器连接;VANA接口通过第三电容接地,第三电容可以为2.2nf;DCDC接口通过第四电容接地,第四电容可以为2.2nf。 [0071] 基于图1中的电子设备或图2中的电子设备的电路结构,本发明一实施例提供了一种语音唤醒方法,图3为本发明一实施例提供的一种语音唤醒方法的流程图,如图3所示,该方法包括: [0072] 步骤102、采集用户输入的原始语音信号。 [0073] 本发明一实施例中,各步骤由电子设备执行。 [0074] 本步骤中,用户通过向电子设备讲话(说出命令词)向电子设备输入原始语音信号,此时,电子设备可以采集用户输入的原始语音信号。 [0075] 步骤104、根据原始语音信号生成脉冲密度调制数据。 [0076] 本步骤中,将原始语音信号转换为脉冲密度调制(Pulse Density Modulation,简称PDM)格式的脉冲密度调制数据。 [0077] 步骤106、对脉冲密度调制数据进行解码,生成解码数据。 [0078] 步骤108、对解码数据进行预处理和特征提取处理,生成语音特征。 [0079] 图4为本发明一实施例提供的对解码数据进行预处理和特征提取处理,生成语音特征的流程图,如图4所示,步骤108包括: [0080] 步骤1082、过滤解码数据中的干扰信号,生成过滤数据。 [0081] 本发明一实施例中,可以使用基于深度学习的神经网络库和用于硬件浮点运算的DSP库。 [0082] 步骤1084、对过滤数据进行预加重处理,生成预加重数据。 [0083] 本步骤中,为了对音频的高频部分进行加重,对输入的过滤数据进行预加重处理。 [0084] 步骤1086、对预加重数据进行分帧处理,生成多帧数据。 [0085] 本步骤中,为了适应傅里叶变换对输入信号稳定性的要求,结合语音信号在短时间范围内为准稳态过程,因此对预加重数据进行分帧,并且要求帧与帧之间需要重叠。 [0086] 步骤1088、对多帧数据中的每帧数据进行加窗处理,生成加窗数据。 [0087] 本步骤中,为了对抽样n附件的语音波形加以强调,消除帧与帧之间的重叠部分,选用汉明(hamming)窗对每帧数据进行加窗处理。 [0088] 步骤1090、基于改进端点检测算法提取出加窗数据中的有效内容。 [0089] 本步骤中,为了对语音与非语音的区域进行区分,可以使用基于阈值的改进端点检测算法提取出有效内容。 [0090] 具体地,改进端点检测算法包括公式 其中,ρ为短时能 量变化率,δ为短时能量阈值, 为可调的影响因子。 [0091] 上述改进端点检测算法加入了一个反映信号的变化程度的时域参数——短时能量变化率,基于预设的能量阈值初始值,当相邻信号分帧能量的变化率较小时,相邻分帧的能量阈值也设置为较小的差值,可以减小有效信号被错误筛除的概率,本质上是将每次给信号设置一个新的短时能量阈值进行多次信号筛选的过程转化为将信号的每个分帧设置不同的短时能量阈值进行一次筛选的过程,最后再结合短时过零点进行二次筛选,优化了算法的计算开销。 [0092] 步骤1092、基于梅尔频率倒谱系数特征提取算法对有效内容进行计算,生成原始语音信号的有效音段。 [0093] 本步骤中,梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient,简称MFCC)特征提取算法使用了快速傅里叶变化提取出对应的频谱,并使用Mel滤波器组减少数据量,模仿人耳在低频处分辨率高的特性,最后使用倒谱参数的静态特征和它们对应的差分谱来提高识别性能。 [0094] 步骤1094、通过特征提取算法提取出有效音段的特征信息。 [0095] 步骤1096、对特征信息进行矢量量化,生成语音特征。 [0096] 具体地,对特征信息进行矢量量化生成码本,根据全局搜索得到目标码矢,即语音特征。 [0097] 步骤110、根据获取的隐马尔可夫模型对语音特征进行模式匹配,生成识别结果。 [0098] 本发明一实施例中,电子设备可以从服务器(SERVER)获取隐马尔可夫模型,隐马尔可夫模型是服务器训练的。服务器上可以对各个模式进行训练,产生各个基于HMM的语音模型,最终将形成模版库移植到DSP中。 [0099] 本发明一实施例中,建立HMM模型框架,再将声学模型训练得到的各项模型参数输入至该框架中相应的位置,在后续新建嵌入式工程时移植已输入声学模型参数的HMM机器学习序列模型,参数包括状态转移矩阵,符号的输出概率数组和拒绝识别概率阈值等。 [0100] 隐马尔可夫模型是一种随机模型法,主要分析语音的短时特性以及这些特性之间的过渡关系,最终计算似然概率做出判决。图5为本发明一实施例提供的服务器训练隐马尔可夫模型的流程图,如图5所示,服务器训练隐马尔可夫模型的过程如下: [0101] 步骤S1、对一个音频信号经过预处理后得到帧序列和对应的单词序列,将其作为模型的输入,使用期望最大化(Expectation‑Maximum,简称EM)算法迭代求解。 [0102] 步骤S2、将单词序列细化为三音素序列。 [0103] 步骤S3、穷举当前三因素序列所有可能的状态序列,得到状态序列维度拓展到特征帧维度之后所有可能的状态序列。 [0104] 步骤S4、初始化转移矩阵A,发射矩阵B,初始状态概率矩阵π,初始化时均分概率。 [0105] 步骤S5、根据上一步得到转移矩阵A,发射矩阵B和初始状态概率矩阵π的模型参数,通过前向或后向算法得到每种状态序列的概率。 [0106] 步骤S6、计算每种状态序列得到当前三音素序列的似然函数,其中,转移矩阵A,发射矩阵B,初始状态概率矩阵π为变量。 [0107] 步骤S7、求三音素序列在每种状态序列上的期望,并最大化这个期望,求得对应更新后的:转移矩阵A,发射矩阵B和初始状态概率矩阵π(求导并令导数为零)。 [0108] 步骤S8、重复执行步骤S4、S5和S6,直至HMM模型收敛。 [0109] 具体地,根据隐马尔可夫模型,使用前向算法对语音特征进行模式匹配,以通过设置的判别规则判定用户输入的原始语音信号中是否包括预设命令,生成识别结果。 [0110] 图6为根据获取的隐马尔可夫模型对语音特征进行模式匹配,生成识别结果的流程图,如图6所示,步骤110包括: [0111] 步骤1102、采用矢量量化(VQ)将二维的所述语音特征转换为一维的符号序列。 [0112] 步骤1104、穷举当前帧的符号序列对应的所有可能状态序列,生成特征序列。 [0113] 步骤1106、根据转移概率和发射概率,得到特征帧序列由每种状态序列产生的概率。 [0114] 步骤1108、将每种状态序列中的状态数目扩展到特征帧的数量,将每种状态序列的概率求和,作为特征帧序列被识别成单词序列的似然概率。 [0115] 本步骤中,一段特征帧序列远多于单词对应的状态数,同一单词序列细化成状态序列后,需要将序列中的状态数目扩展到特征帧的数量,拓展后的状态序列会有多种可能,将每种可能的状态序列的概率求和,作为特征帧序列被识别成这个单词序列的似然概率。 [0116] 步骤1110、计算特征帧序列中单词序列在语音模型中的概率作为单词序列的先验概率。 [0117] 步骤1112、将似然概率和先验概率相乘作为单词序列的后验概率。 [0118] 步骤1114、将后验概率中最大的单词序列作为识别结果。 [0119] [0120] 其中,P(X)为单词序列的先验概率,来自语言模型;P(X|Y)为似然概率,来自声学模型(GMM+HMM);arg maxY∑h∈SP(X|h)P(Y)中S表示所有能够得到观测序列Y的状态序列组合,h表示S中的一个状态序列。 [0121] 步骤112、根据识别结果唤醒电子设备的外部处理器。 [0122] 本发明一实施例中,可以对用户输入的命令词进行匹配,当匹配成功时,可以输出唤醒信号至外部处理器,外部处理器响应于唤醒信号进行自唤醒。 [0123] 本发明实施例提供的技术方案中,采集用户输入的原始语音信号;根据原始语音信号生成脉冲密度调制数据;对脉冲密度调制数据进行解码,生成解码数据;对解码数据进行预处理和特征提取处理,生成语音特征;根据获取的隐马尔可夫模型对语音特征进行模式匹配,生成识别结果;根据识别结果唤醒电子设备的外部处理器。本发明实施例提供的技术方案中,通过对解码数据进行预处理和特征提取处理,生成语音特征;根据获取的隐马尔可夫模型对语音特征进行模式匹配,生成识别结果并根据识别结果唤醒电子设备的外部处理器,实现了语音唤醒功能,在降低电子设备功耗的同时,提高语音唤醒的准确性。 [0124] 本发明实施例提供的技术方案中,可以使用智能麦克风存储1~20秒的脉码调制(Pulse Code Modulation,简称PCM)数据,通过高性能DSP进行算法处理,再通过WAKE接口触发唤醒外部处理器,实现语音唤醒功能,大大降低了外部处理器的待机功耗。 [0125] 本发明实施例提供的技术方案中,智能麦克风包括MIC和高性能的DSP,可以实现语音采集,语音处理和语音识别唤醒操作,与现有MEMS麦克风相比,是一套计算资源更高的完整解决方案,方便用户进行二次开发。 [0126] 本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述语音唤醒方法的实施例的各步骤,具体描述可参见上述语音唤醒方法的实施例。 [0127] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。