一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于长短期记忆网络的语音端点检测方法及系统与流程

2021-06-15 21:49:00 来源:中国专利 TAG:语音 检测方法 语音识别 记忆 公开
一种基于长短期记忆网络的语音端点检测方法及系统与流程

本公开属于语音识别领域,尤其涉及基于长短期记忆网络的语音端点检测方法及系统。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

语音端点检测(voiceactivitydetection,vad)是语音识别、语音降噪、语音编码以及移动通信、卫星电话等领域中至关重要的环节,而且极大程度上影响到系统的时效和最后结果的准确性。因此,如何准确地检测出含噪声的语音端点显得尤为重要。

引用注意力机制的首要目的是计算某一帧的各个上下文帧对预测该帧的贡献度分值,再将该分值作为权重与原始输入帧整合在一起。相当于按权重将上下文帧整合成一个新的帧,权重较大的帧所占比重也较大,这样两个关联度高的帧之间就会有较大的共性。同时表现在输入帧的各个上下文帧对最后的预测输出贡献度的大小。

首次应用于端点检测领域中的注意力机制,是由自然语言处理中seq2seq模型演变而来。该方法通过长短期记忆网络(longshort-termmemory,lstm)学习一定范围内上下文帧的时序、语义信息。这种方法可以学习到天然的时序位置信息,但只能按照时序计算会产生时序依赖问题,无法并行运算;且lstm也无法确定哪些上下文帧更为重要,无侧重点。

其次是2020年使用的多头注意力机制(multi-headattention),这种方法对分值的计算与整合完全依赖输入数据本身,极大降低了网络复杂度,实现了并行计算,但摒弃了循环网络就意味着摒弃了位置信息。

因此,现有的基于多头注意力机制的方法没有使得整个模型更加契合端点检测的特点,以致模型精度、对噪声的鲁棒性以及泛化能力不够。



技术实现要素:

为克服上述现有技术的不足,本公开提供了一种基于长短期记忆网络的语音端点检测方法,对已有注意力机制进行了改进,检测精度更高。

为实现上述目的,本公开的一个或多个实施例提供了如下技术方案:

第一方面,公开了一种基于长短期记忆网络的语音端点检测方法,包括:

从语音数据中针对每一语音帧提取多分辨率耳蜗图特征,在一定范围内选取其数个上下文帧,将这些上下文帧按照时间顺序生成输入数据;

将输入数据输入到训练后的注意力增强型长短期记忆网络中,生成局部增强的上下文帧语境信息;

将局部增强后的数据输入到多头注意力层,生成全面增加权重的上下文帧信息;

将全面增加权重的数据输入到神经网络(分类器)中,进行语音端点检测并生成预测结果。

进一步的技术方案,从语音数据中针对每一帧提取多分辨率耳蜗图特征时,通过提取具有小帧长度和小平滑窗口的耳蜗图特征来产生局部信息,通过提取具有大帧长度或大平滑窗口的耳蜗图特征来产生全局信息。

进一步的技术方案,为每一个输入帧选取上下文帧,具体为:

设置一个(w,u)参数,w限制选取范围,u是步长,每一帧及其左右相邻两帧固定,其余部分按照步长选取,计算得到每个数据包含的相邻帧的个数。

进一步的技术方案,所述注意力增强型长短期记忆网络即编码器,包括:

增强注意力的长短期记忆单元,该单元按照时刻紧密连接,时刻与单元的个数是每一帧上下文帧的个数。

更进一步的,所述增强注意力的长短期记忆单元包括单元输入模块、多头注意力模块及长短期记忆模块;

所述输入模块用于在某一时刻产生自注意力结构的组合输入,并根据实际情况选择使用k个历史时刻单元状态;

所述多头注意力模块将组合输入经过全连接层线性变换,将k个历史状态经过全连接层线性变换,利用线性变换后的数据生成上下文帧与历史时刻帧的关联信息;将关联信息经过全连接层线性变换,生成全新的单元输入;

所述长短期记忆模块接收所述多头注意力模块的输出,生成t时刻上下文帧之间的语境信息。

进一步的技术方案,将局部增强后的数据输入到解码器的多头注意力层,多头注意力层计算每一个上下文帧与其所有上下文帧之间的关联度分值。

进一步的技术方案,所述多头注意力层还包括位置信息,所述位置信息代表每一帧出现的时序顺序,相当于为每一帧编码,以便解码器能够准确识别所处理的帧的前后顺序。

进一步的技术方案,将全面增加权重的数据输入到解码器神经网络(分类器)中,进行语音端点检测并生成预测结果,具体为:

输出层激活函数采用sigmoid函数,sigmoid输出每一帧是语音帧的概率。

进一步的技术方案,注意力增强型长短期记忆网络在训练时,具体包括:

针对训练数据进行预处理,之后选取上下文帧;

初始化编码器,得到初始化的增强注意力的长短期记忆网络;

将训练数据输入注意力增强型长短期记忆网络中,得到局部增强的上下文帧信息;

对解码器进行初始化:初始化解码器的多头注意力模块,注意力头的数量与编码器的多头注意力模块相同;

确定解码器多头注意力层的参数;

将解码器多头注意力层的参数输入到多头注意力层,生成全面增加权重的上下文帧信息;

对全面增加权重的上下文帧信息进行批量标准化操作;

改变全面增加权重的上下文帧信息维度,将全面增加权重的数据输入到解码器的分类器中,生成最后的预测结果。

进一步的技术方案,选取上下文帧时,标签也同步选取对应上下文帧标签,目标标签与解码器的预测输出维度一致;

利用解码器的预测输出概率与目标标签对编码器和解码器进行权值优化。

进一步的技术方案,利用解码器的预测输出概率与目标标签对编码器和解码器进行权值优化的步骤包括:

损失函数使用交叉熵误差,计算模型一个batch数据的loss;

确定模型优化器;

优化器根据模型loss值更新编码器中多头注意力模块的全连接层权值、长短期记忆网络权值、dropout层权值;

优化器根据模型loss值更新解码器中多头注意力模块的全连接层权值、三层神经网络权值、批量标准化的数据均值e(x)与数据方差var(x)。

第二方面,公开了一种基于长短期记忆网络的语音端点检测系统,包括:

特征模块,其被配置为:从语音数据中针对每一语音帧提取多分辨率耳蜗图特征;

上下文帧选取模块,其被配置为:在一定范围内选取其数个上下文帧,将这些上下文帧按照时间顺序生成输入数据;

编码器模块,其被配置为:将输入数据输入到训练后的注意力增强型长短期记忆网络中,生成局部增强的上下文帧语境信息;

解码器多头注意力模块,其被配置为:将局部增强后的数据输入到多头注意力层,生成全面增加权重的上下文帧信息;

解码器神经网络(分类器)模块,其被配置为:将全面增加权重的数据输入到三层神经网络中,进行语音端点检测并生成预测结果。

以上一个或多个技术方案存在以下有益效果:

本公开技术方案的方法在现有方法的基础上做了结合与改进,使整个模型更加契合端点检测的特点,模型精度、对噪声的鲁棒性以及泛化能力更高。

本公开技术方案充分考虑了注意力机制应用于端点检测的特点,不使用单一的循环网络或者多头注意力机制,利用两者互补、相互促进的特点,使用一个增强注意力的lstm网络。本发明能够生成每一个上下文帧对预测某一帧的贡献度分值,并将这个分值作为权重,与输入数据重新整合。

本公开技术方案基于注意力增强型长短期记忆网络的vad算法,该算法充分考虑了vad中语音信号的特点:第一,rnn/lstm系列的模型,虽然并行计算能力很差,但在处理时间序列的数据上具有独到的优势,具有天然的位置信息;第二,端点检测需要关注的上下文帧时间序列仅仅在一个很小的范围,不会出现状态饱和问题,所以lstm对于本发明的研究还是必要的;第三,multi-headattention可以实现不依赖时间步进行并行运算,且特征抽取能力比rnn/lstm系列的模型要好,但其无法利用位置信息。

本公开技术方案在编码器中使用一个注意力增强型lstm网络,不但解决了多头注意力的位置模糊问题,同时利用数个历史时刻的状态信息,增强记忆的长、短期效果,比单一的lstm更能突出重要的某几帧的效果,即较为重要的上下文帧的权重较大,为解码器中的多头注意力机制提供了极大的便利。

本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1为基于长短期记忆网络的端点检测模型结构图。

图2为基于长短期记忆网络的端点检测方法流程框图。

图3为增强注意力的长短期记忆单元结构图。

图4为注意力增强型长短期记忆网络的训练阶段流程图。

具体实施方式

应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。

本申请提供了注意力增强型长短期记忆模型,注意力增强型长短期记忆模型,包括编码器与解码器两部分:

编码器是注意力增强型长短期记忆网络,包括多头注意力模块与长短期记忆模块;

解码器包括多头注意力层与神经网络(分类器)模块。

实施例一

本实施例公开了一种基于长短期记忆网络的语音端点检测方法;

如图2所示,基于长短期记忆网络的语音端点检测方法,包括:

步骤1提取多分辨率耳蜗图特征;

示例性的,针对待检测的语音数据,通过提取具有小帧长度和小平滑窗口即高分辨率的耳蜗图特征来产生局部信息。通过提取具有大帧长度或大平滑窗口即低分辨率的耳蜗图特征来产生全局信息。每一帧产生768维的耳蜗图特征,mrcg特征代表音频的主要特征,作为训练、测试数据使用。

步骤2选取上下文帧,为每一个提取mrcg特征后的输入帧选取上下文帧,生成输入数据;

示例性的,通过设置一个(w,u)参数,w限制选取范围,u是步长,每一帧及其左右相邻两帧固定,其余部分按照步长选取,则每个数据包含的相邻帧的个数为:假设一个音频文件的数据格式为(2186,768),即含有2186帧,对于第一帧,按照上述方法为其选择上下文帧,则第一帧的数据形式变为(l,768),全部的数据形式变为(2186,l,768)。

步骤3将预处理后的数据输入到训练后的注意力增强型长短期记忆网络中,注意力增强型长短期记忆网络称为编码器,生成局部增强的上下文帧语境信息;

作为一个或多个实施例,注意力增强型长短期记忆网络(编码器),包括:

增强注意力的长短期记忆单元,这样的单元按照时刻紧密连接,时刻的个数是每一帧上下文帧的个数,例如含有l个时刻,即l个单元;

作为一个或多个实施例,如图3所示,以第m帧的第t(0≤t≤l)个时刻的单元(cell)为例,所述增强注意力的长短期记忆单元,包括:

步骤3.1单元输入模块;

示例性的,所述单元输入模块包括以下3个输入:

t-1时刻的单元输出ht-1;

上下文帧xt,即第m帧的第t个上下文帧;

历史时刻单元状态,可根据实际情况选择使用k个历史时刻单元状态:[ct-1,ct-2,…,ct-k]。

步骤3.2多头注意力模块

所述多头注意力是多个自注意力结构的结合,可根据实际情况设置头(head)的个数h(1≤h≤h),每个head表示一个自注意力结构。每个头学习到在不同表示空间中的特征,每个头学习到的注意力的侧重点都不同,最后再将其结果结合起来:

headh=attention(qm,h,km,h,vm,h)

multihead(qm,km,vm)=concat(head1,…,headh)

所述增强注意力的长短期记忆单元的多头注意力模块包括:

步骤3.2.1按照步骤3.1所述,将组合输入[ht-1,xt]经过全连接层线性变换,生成用于计算的query(q)表示;

步骤3.2.2按照步骤3.1所述,将k个历史状态[ct-1,ct-2,…,ct-k]经过全连接层线性变换,生成用于计算的key(k)、value(v)表示;

步骤3.2.3将q、k、v输入多头注意力模块,生成xt与历史时刻帧的关联信息:

at=multihead(qt,kt,vt)

步骤3.2.4将at经过全连接层线性变换,生成全新的单元输入。

步骤3.3长短期记忆模块;

长短期记忆模块为长短期记忆网络(lstm),包括:

遗忘门(forgetgate);

输入门(inputgate);

输出门(outputgate);

输入状态c′t;

单元状态ct;

单元输出ht。

其中遗忘门、输入门、输出门都是由新的单元输入at经过全连接层线性变换得来。

示例性的,将at输入长短期记忆模块,生成t时刻上下文帧之间的语境信息。

步骤4将局部增强后的数据输入到多头注意力模块,生成全面增加权重的上下文帧信息;所述多头注意力层为解码器中的多头注意力模块;

示例性的,与编码器中的多头注意力不同的是,对于局部增强后的数据,解码器的多头注意力计算每一个上下文帧与其所有上下文帧之间的关联度分值。

与编码器中的多头注意力不同的是,所述多头注意力层为解码器中的多头注意力层还包括:

步骤4.1位置信息;

所述位置信息代表每一帧出现的时序顺序,相当于为每一帧编码,以便解码器能够准确识别所处理的帧的前后顺序;

示例性的,所述位置信息包括:

xm=concat(x(m,2i),x(m,2i 1))

步骤5将全面增加权重的数据输入到神经网络中,神经网络称为解码器的分类器模块,生成最后的预测结果。本示例等同于二分类问题。

示例性的,输出层激活函数采用sigmoid函数,sigmoid输出每一帧是语音帧的概率。

示例性的,设置一个阈值为0.6,若每一帧是语音帧的概率大于0.6,则最终结果设为1,即认为是语音帧,否则设为0,即认为是非语音帧。阈值的大小视实际情况而定。

关于训练模型,作为一个或多个实施例,实施例一中步骤1至步骤5构成增强注意力的长短期记忆模型,所述训练后的增强注意力的长短期记忆模型的训练步骤包括:

步骤6.1训练数据采用timit声学-音素连续语音语料库。标签信息:1代表语音帧,0代表非语音帧。随机打乱训练集文件顺序;

步骤6.2数据预处理;

示例性的,所述数据预处理具体包括:

语音数据分帧;

特征提取,每一帧提取768维的多分辨率耳蜗图特征;

数据归一化处理;

步骤6.3按照batchsize大小读取1个batch的数据,同时按照(w,u)参数选取上下文帧,标签也同步选取对应上下文帧标签;

示例性的,将batchsize设为512,则选取上下文帧后数据维度为[512,l,768],标签数据维度为[512,l,1]。

步骤6.4初始化编码器,得到初始化的注意力增强型长短期记忆网络;

示例性的,对注意力增强型长短期记忆网络进行初始化,具体包括:

注意力头的数量为8;

长短期记忆模块隐藏层神经元个数为128;

保存的历史单元状态的个数为3;

需注意的是,注意力头的数量要满足:可以被长短期记忆模块隐藏层神经元个数整除。

初始化增强注意力的长短期记忆单元;

初始化单元状态,单元状态包括单元输出与单元状态,即[ht,ct]。以队列的形式保存3个历史时刻的[ht,ct]。

步骤6.5将训练数据输入注意力增强型长短期记忆网络中,得到局部增强的上下文帧信息;

示例性的,注意力增强型长短期记忆网络的计算步骤,具体包括:

步骤6.5.1改变输入数据维度,数据维度变为[l,512,128];

步骤6.5.2将一个时刻的数据输入增强注意力的长短期记忆单元,一个时刻xt的数据维度为[512,128];

示例性的,一个时刻增强注意力的长短期记忆单元的计算步骤,具体包括:

步骤6.5.2.1从状态队列列尾中读取上一时刻单元状态的单元输出ht-1,全部3个历史时刻的单元状态[ct-1,ct-2,ct-3];则经过全连接层线性变换后,query维度为[512,128],key维度为[512,3,128],value维度为[512,3,128];

步骤6.5.2.2扩充query维度,维度大小变为[512,1,128];

这里扩充query维度的原因是:方便与key中每个历史状态计算关联度。

步骤6.5.2.3按照4.4.1所述公式为k、v增加位置信息,增加位置信息后经过全连接层线性变换,k、v维度大小不变;

步骤6.5.2.4q、k、v进入编码器的多头注意力模块,按照注意力头(head)的数量改变q、k、v维度;

具体地,q维度变为[512,8,1,16],k维度变为[512,8,3,16],v维度变为[512,8,3,16]。

步骤6.5.2.5按照4.3.2.3所述公式进行多头注意力计算,得到增强注意力的长短期记忆单元的新输入at,维度大小为[512,128]。

5.5.2.6将新的单元输入at输入到长短期记忆模块,按照4.3.3所述进行lstm单元(cell)运算,得到单元状态ct与单元输出ht;

ct维度为[256,128],ht维度为[256,128]

步骤6.5.2.7对ht进行批量标准化处理;

批量标准化目的是加快模型的收敛速度,防止过拟合;批量标准化公式为:

对输入的一个batch的语音帧求e(x)和var(x),并用这两个结果将batch数据归一化,使其均值为0,方差为1。

步骤6.5.2.8更新单元状态;

具体地,将单元状态ct与单元输出ht作为一个整体[ct,ht],放入保存历史时刻单元状态队列的列尾;

步骤6.5.2.9判断保存历史时刻单元状态的队列大小是否超过设定大小,若超过,则从列头删去早期的单元状态。

步骤6.5.3重复5.5.2步骤l次,即经过l个时间步长,得到局部增强的上下文帧信息,即l个时间步长的单元输出h,h维度为[l,512,128];

步骤6.5.4将局部增强的上下文帧信息h进行随机丢弃,即dropout操作;

步骤6.6初始化解码器;

示例性的,对解码器进行初始化,具体包括:

初始化解码器的多头注意力模块,注意力头的数量与编码器的多头注意力模块相同;

初始化三层神经网络每一层的输入维度与输出维度。输入层维度l*128,隐藏层维度是128,输出层维度是1。

步骤6.7确定解码器多头注意力层的q、k、v;

与编码器中的多头注意力模块不同的是,解码器多头注意力模块的q、k、v均来自编码器的输出h,同时改变h维度,q、k、v的数据维度变为[512,l,128]。

步骤6.8与步骤5.5.2.3相同,为按照4.4.1所述公式为k、v增加位置信息,增加位置信息后经过线性变换,k、v维度大小不变;

步骤6.9将q、k、v输入到多头注意力层,生成全面增加权重的上下文帧信息。生成的数据维度为[512,l,128]。

步骤6.10对全面增加权重的上下文帧信息进行批量标准化操作;

步骤6.11改变全面增加权重的上下文帧信息维度;

由于神经网络输入维度为2维,此步骤需要将全面增加权重的上下文帧信息维度减少,即维度从[512,l,128]变为[512,l*128]。

步骤6.12将全面增加权重的数据输入到解码器的神经网络(分类器)中,生成最后的预测结果;

具体地,对隐藏层输出使用elu激活函数,其公式为:

elu(x)=max(0,x) min(0,∝*(exp(x)-1))

同时,对隐藏层输出进行批量标准化操作,防止过拟合;

对输出层使用sigmoid激活函数,输出每一帧是语音帧的概率,最后的预测输出维度为[512,1]。sigmoid激活函数的公式为:

步骤6.13生成目标标签;

在步骤5.3,为了避免标签与语音帧混乱,在一个batch中,标签也同步选取对应上下文帧标签,但目标标签要与解码器的预测输出维度一致。

由于选择上下文帧后,每一帧的数据扩充为l帧,处于中间的上下文帧是该帧本身,所以先将标签维度变为[512,l],每一维则是对应上下文帧的标签,选择正中间列的标签,生成最后的目标标签,最后标签变为[512,1]。

步骤6.14利用解码器的预测输出概率与目标标签对编码器和解码器进行权值优化;

具体地,预测输出概率是解码器预测生成的是语音帧的概率y,目标标签是真实类别标签t。

利用解码器的预测输出概率与目标标签对编码器和解码器进行权值优化的步骤包括:

损失函数使用交叉熵误差,计算模型一个batch数据的loss;

确定模型优化器;

优化器根据模型loss值更新编码器中多头注意力模块的全连接层权值、长短期记忆网络权值、dropout层权值;

优化器根据模型loss值更新解码器中多头注意力模块的全连接层权值、三层神经网络权值、批量标准化的e(x)与var(x);

交叉熵误差函数公式为:

l(y,t)={l1,…ln,…,lbath-size}t

其中,ln=-wn[tn·logyn (1-tn)·log(1-yn)]

步骤6.15重复步骤5.3至5.13,判断是否达到最大训练次数,若达到,则停止训练,得到训练完成的编码器与解码器;若未达到,则继续训练。

本申请基于注意力增强型长短期记忆网络,所述注意力增强型长短期记忆网络,表现为:对于每个语音帧,在一定范围内选取其数个上下文帧,将这些上下文帧按照时间顺序输入编码器,编码器的多头注意力模块通过计算每一个输入帧与历史时刻状态的关联度,得到当前时刻增强的输入信息,再由长短期记忆模块通过单元(cell)运算学习当前时刻上下文帧之间的语境信息。最后,编码器输出增加注意力(权重)的输入数据。接下来,在解码器中运用增加位置信息的多头注意力模块,对于编码器输出,全面计算每一个上下文帧与所有上下文帧之间的关联度,得到全面增加权重的上下文帧信息。

基于此方法的vad算法对于信噪比的鲁棒性大幅度提升,在-15db下的auc(areaundercurve)可以达到92%以上,这是目前基于注意力机制的vad算法所不能达到的。需要注意的是,本申请所包含的长短期记忆网络不仅包括实例中长短期记忆神经网络,同时也应包括双向循环神经网络、双向长短期记忆神经网络等。

实施例二

本实施例的目的是提供一种计算装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。

实施例三

本实施例的目的是提供一种计算机可读存储介质。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时执行上述方法的步骤。

实施例四

本实施例的目的是提供了一种一种基于长短期记忆网络的语音端点检测系统,包括:

特征模块,其被配置为:从语音数据中针对每一语音帧提取多分辨率耳蜗图特征;

上下文帧选取模块,其被配置为:在一定范围内选取其数个上下文帧,将这些上下文帧按照时间顺序生成输入数据;

编码器模块,其被配置为:将输入数据输入到训练后的增强注意力的长短期记忆网络中,生成局部增强的上下文帧语境信息;

解码器多头注意力模块,其被配置为:将局部增强后的数据输入到多头注意力层,生成全面增加权重的上下文帧信息;

解码器神经网络(分类器)模块,其被配置为:将全面增加权重的数据输入到三层神经网络中,进行语音端点检测并生成预测结果。

以上实施例二、三和四的装置中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本公开中的任一方法。

本领域技术人员应该明白,上述本公开的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本公开不限制于任何特定的硬件和软件的结合。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜