[0103] 具体实施时,标注停顿时长的方式可根据选用的层级结构模式确定,例如,中文中常用的层级结构模式有“韵律词(PW)-韵律短语(PP)-语调短语(IP)”的层级结构,该层级结构模式划分了韵律词、韵律短语和语调短语这三个韵律结构层级。其中,韵律词对应的停顿时长最短,韵律短语对应的停顿时长居中,语调短语对应的停顿时长最长,被标注为一个韵律词的分词片段之间不存在停顿。通过上述方式标注一个分词序列中的每个分词片段所属的韵律结构层级,从而根据每个分词片段所属的韵律结构层级,确定该分词片段与下一个分词片段之间的停顿时长。为方便描述,相邻韵律词之间对应的停顿时长可记为T1,相邻韵律短语之间对应的停顿时长可记为T2,相邻语调短语之间对应的停顿时长可记为T3,其中,T1
[0104] 举例说明,输入文本为“十二点十一分双方比分十二比十一,比赛还有十五分钟。”,对该输入文本对应的向量序列进行韵律结构预测处理后,得到针对停顿时长的标注结果如图3所示,图中,PW表示韵律词,PP表示韵律短语,IP表示语调短语。从韵律词层级来看,分词片段“还”和“有”被标注为一个韵律词,表示“还”和“有”之间不存在停顿,分词片段“比赛”被标注为一个韵律词,则表示“比赛”和“还”之间的停顿时长为T1;从韵律短语层级来看,分词片段“比赛”、“还”和“有”被标注为一个韵律短语,分词片段“十五”和“分钟”被标注为一个韵律短语,则“比赛还有”和“十五分钟”之间的停顿时长为T2;从语调短语层级来看,“十二点十一分双方比分十二比十一”被标注为一个语调短语,“比赛还有十五分钟”被标注为一个语调短语,则“十二点十一分双方比分十二比十一”和“比赛还有十五分钟”之间的停顿时长为T3。
[0105] 图3所示的标注结果可通过标注序列的方式表示,方便机器识别,如{十二,点/PW,十一,分/PP,双方/PW,比分/PP,十二/PW,比/PW,十一/IP,比赛/PW,还,有/PP,十五/PW,分钟}。合成语音时,根据每个分词片段对应的停顿时长对应的标注进行合成,例如,“十二”后面没有任何标注,表示不需要停顿,“点”的标注为“PW”,表示“点”之后需要停顿T1,“分”的标注为“PP”,表示“分”之后需要停顿T2,“十一”的标注为“IP”,表示“十一”之后需要停顿T3。
[0106] 具体实施时,发音轻重可划分为轻读和重读。实际应用中,韵律结构模型可仅标注出输入的向量序列中那些需要重读的特征向量,该特征向量对应的分词片段即为需要重读的词。
[0107] 需要说明的是,韵律结构模型输出的是对向量序列的标注结果,为了方便描述和理解,才将图3中的标注结果以及对应的标注序列中的特征向量替换为对应的分词片段进行说明。
[0108] S204、根据韵律结构信息和分词序列中各分词片段对应的读音,合成输入文本对应的语音。
[0109] 具体实施时,可预先构建好各语言的发音列表,该发音列表包括该类语言中的各个字与发音之间的映射关系。以中文为例,通过中文发音列表,得到输入文本中每个汉字对应的汉语拼音;以英文为例,通过英文发音列表,得到输入文本中每个子对应的英文音标。实际应用中,一个字可能对应多个发音,因此,发音列表中的一个字可对应至少一个读音。
例如,中文中的汉字经常出现多音字的情况,因此,中文发音列表中的一个汉字可能对应多个读音,例如,汉字“还”有两种读音[hái]和[huán]。
[0110] 具体实施时,可通过预先构建的发音列表,获得分词序列中各分词片段中每个字对应的读音,即可得到每个分词片段对应的读音。
[0111] 在确定出韵律结构信息和每个分词片段对应的读音之后,即可根据韵律结构信息和读音进行声学处理,合成输入文本对应的语音,具体的合成方式为现有技术,不再赘述。
[0112] 本申请实施例提供的语音合成方法,将应用于机器翻译领域的语言表征模型迁移到语音合成的前端处理过程中,通过语言表征模型生成输入文本对应的向量序列,该语言表征模型是基于注意力机制的模型,由于意力机制可以让同一文本中间隔较长距离的词语直接联系,即可以很容易地学习到句子之间的长距离依赖关系,因此,基于上述语言表征模型得到的向量序列,可表达出输入文本准确、真实的语义,进而能够提高韵律结构预测的准确度,从而使得合成的语音能准确表达输入文本的真实语义,使得听合成语音起来更加自然。
[0113] 进一步地,本申请中语言表征模型是从机器翻译领域迁移过来的,即直接使用机器翻译领域中已训练好的模型,无需额外对语言表征模型进行训练。由于机器翻译领域中用于训练语言表征模型的平行双语语料的数量十分充足,因此,无需担心样本数量少、样本稀疏的问题。
[0114] 在上述任一实施方式的基础上,如图4A所示,韵律结构模型40可以是的三个级联的序列标注模型,每个序列标注模型可采用LSTM(Long Short-Term Memory,长短期记忆网络)层+CRF层的结构。将向量序列输入第一级序列标注模型401,得到输出的针对韵律词层级的标注序列Y1;然后,将Y1输入第二级序列标注模型402,得到输出的针对韵律短语层级的标注序列Y2;最后,将Y2输入第三级序列标注模型403,得到输出的针对语调短语层级的标注序列Y3,标注序列Y3即为预测的韵律结构信息。
[0115] 当利用图4A所示的韵律结构模型进行韵律结构预测时,需要分别训练三个序列标注模型,而一些TTS任务的训练样本数量有限,因此无法训练得到效果较好的韵律结构模,且三个序列标注模型级联预测的方式,容易加大最终输出的韵律结构预测结果的误差。
[0116] 为此,在上述任一实施方式的基础上,本申请的韵律结构模型可采用如图4B所示的结构,该韵律结构模型包括双向卷积神经网络和至少两个独立的CRF(conditional random field,条件随机场)层,每个CRF层对应一个韵律结构层级,双向卷积神经网络的输入端即为韵律结构模型的输入端,双向卷积神经网络的输出端分别连接各CRF层的输入端,各CRF层的输出分别为其对应的韵律结构层级的韵律结构信息。
[0117] 具体实施时,双向卷积神经网络包括但不限于双向LSTM或双向GRU等。
[0118] 基于如图4B所示的韵律结构模型,步骤S203具体包括:将向量序列输入双向卷积神经网络,得到包含上下文特征的中间向量;将中间向量分别输入至少两个独立的CRF层,确定每个韵律结构层级对应的韵律结构信息。
[0119] 基于图4B所示的韵律结构模型,各韵律结构层级之间可共享同一双向卷积神经网络的权重参数,同时还将各韵律结构层级之间的内在信息紧密结合,通过一个模型进行一次预测,即可得到各个韵律结构层级对应的韵律结构信息,既提高了韵律结构模型的运算速度,又保证了韵律结构模型的预测效果。此外,只需训练一个韵律结构模型,大大减少了训练所需的样本数量。
[0120] 具体实施时,韵律结构模型中的CRF层的数量根据选用的层级结构模式确定。例如,若选用“韵律词(PW)-韵律短语(PP)-语调短语(IP)”的层级结构模式,则韵律结构模型中可设置三个独立的CRF层,各CRF层分别用于预测韵律词、韵律短语和语调短语。
[0121] 实际应用中,在对输入文本进行韵律结构预测的过程中,一般认为语调短语是非常容易识别出来的,因为语调短语基本都是由标点符号分隔开的,因此,对输入文本的韵律结构预测主要对韵律词和韵律短语这两个韵律结构层级进行预测。为此,具体实施时,可采用图4C所示的韵律结构模型,该韵律结构模型包括双向卷积神经网络和两个独立的CRF层,其中,PW_CRF层用于预测韵律词,PP_CRF层用于预测韵律短语。如图4C所示,将分词序列W={W1,W2,W3,W4}对应的向量序列X={x1,x2,x3,x4}输入双向卷积神经网络,双向卷积神经网络输出中间向量h={h1,h2,h3,h4},然后,将中间向量h分别输入PW_CRF层和PP_CRF层,PW_CRF层输出针对韵律词的预测结果,PP_CRF层输出针对韵律短语的预测结果。图4C中,PW_CRF层的输出结果为{No Break,Break,No Break,Break},表示W1和W2之间不需要停顿(No Break),即W1和W2为一个韵律词,W2和W3之间停顿时长为T1(Break),W3和W4之间不需要停顿(No Break),即W3和W4为一个韵律词;PP_CRF层的输出结果为{No Break,No Break,No Break,Break},表示W1、W2、W3和W4为一个韵律短语,W4之后需要停顿T2时长。
[0122] 当采用图4C所示的韵律结构模型时,语调短语的预测可根据输入文本中的标签确定,即每个标点符号后需要停顿T3时长。例如,输入文本为“比赛还有十五分钟,加油!”,分词序列为{比赛,还,有,十五,分钟,加油},则语调短语层级的标注为{No Break,No Break,No Break,No Break,Break,Break}。
[0123] 具体实施时,参考图5,可通过如下方式训练如图4B或图4C所示的韵律结构模型:
[0124] S501、获取韵律样本集,每个韵律样本包括文本序列和为该文本序列标注的各韵律结构层级对应的韵律结构信息。
[0125] 具体实施时,预先对训练用的每个语料进行分词处理,得到每个语料对应的分词片段组成的文本序列,并为每个文本序列标注韵律结构信息。
[0126] 具体实施时,若希望训练得到能够预测韵律词和韵律短语的韵律结构模型,则分别标注韵律词对应的韵律结构信息和韵律短语对应的韵律结构信息。例如,文本序列W={W1,W2,W3,W4}对应的韵律词的标注可以是{No Break,Break,No Break,Break},表示W1和W2之间不需要停顿(No Break),即W1和W2为一个韵律词,W2和W3之间停顿时长为T1(Break),W3和W4之间不需要停顿(No Break),即W3和W4为一个韵律词;韵律短语的标注可以是{No Break,No Break,No Break,Break},表示W1、W2、W3和W4为一个韵律短语,W4之后需要停顿T2时长。具体的标注方式不限于上述列举的方式。
[0127] 具体实施时,若希望训练得到能够预测韵律词、韵律短语和语调短语的韵律结构模型,则分别标注韵律词对应的韵律结构信息、韵律短语对应的韵律结构信息和语调短语对应的韵律结构信息,具体标注方式与用于预测韵律词和韵律短语的韵律结构模型的类似,不再赘述。
[0128] S502、将韵律样本集中的文本序列对应的向量序列输入韵律结构模型,得到韵律结构模型中各CRF层输出的韵律结构信息。
[0129] 具体实施时,可通过步骤S202中的语言表征模型获取文本序列对应的向量序列。
[0130] 具体实施时,若希望训练得到能够预测韵律词和韵律短语的韵律结构模型,可仅设置两个独立的CRF层;若希望训练得到能够预测韵律词、韵律短语和语调短语的韵律结构模型,则需要设置三个独立的CRF层。
[0131] S503、针对每个CRF层,根据该CRF层输出的韵律结果信息和标注的该CRF层对应的韵律结构层级的韵律结构信息,确定该CRF层对应的损失值。
[0132] 其中,各CRF层输出的韵律结构信息的格式可参考图4C所示的韵律结构模型中各CRF层输出的格式。
[0133] 以图4C所示的两个独立的CRF层为例,可计算韵律样本原有标注中韵律词对应的韵律结构信息和PW_CRF层输出的韵律词对应的韵律结构信息之间的交叉熵,作为PW_CRF层对应的损失值,并计算韵律样本原有标注中韵律短语对应的韵律结构信息和PP_CRF层输出的韵律短语对应的韵律结构信息之间的交叉熵,作为PP_CRF层对应的损失值。
[0134] S504、根据各CRF层对应的损失值,优化该韵律结构模型中双向卷积神经网络的权重参数和各CRF层的参数。
[0135] 在具体实施时,可将各CRF层对应的损失值之和作为整个模型的损失值,进而利用梯度下降算法对神经网络的参数进行调整以期减小损失函数,直至模型收敛,停止模型训练,得到训练好的韵律结构模型。
[0136] 由于中文中存在大量的多音字,因此,在确定分词序列中各分词片段对应的读音时,还需要对分词序列中包含的多音字进行多音字消歧处理。
[0137] 具体实施时,可结合上下文语义,确定分词序列中包含的多音字对应的读音。具体的,基于语言表征模型得到的特征向量很好的提取了输入文本中的上下文语义,因此,可以基于包含多音字的分词片段对应的特征向量进行多音字预测,实现多音字消歧。
[0138] 现有多音字消歧方案通常是,一个多音字建立一个对应的MLP模型,该MLP模型的输入为该多音字的特征向量,输出为多音字对应的分类标签,比如“还”字有[hái]和[huán]两个读音,那么对应的MLP模型输出只能为分类标签“0”或“1”。上述针对每个多音字训练一个专门的MLP模型的方式存在以下
缺陷:对于大多数多音字来说,可用的训练样本的数量很小(小于1000),因此,无法有效地训练对应的MLP模型。
[0139] 为此,本申请实施例对所有多音字使用同一多音字预测模型,这样,所有多音字可共享音字预测模型的中间层的权重参数,解决上述训练数据稀疏的问题。
[0140] 具体实施时,对所有多音字的读音进行统计,并为所有多音字的读音分配唯一的分类标签,即一个分类标签对应一个多音字的一种读音。比如“还”字有[hái]和[huán]两个读音,“还”[hái]对应的分类标签为“0”,“还”[huán]对应的分类标签为“1”,“行”字有[háng]、[hàng]、[héng]和[xíng]四个读音,“行”[háng]对应的分类标签为“2”、“行”[hàng]对应的分类标签为“3”、“行”[héng]对应的分类标签为“4”,“行”[xíng]对应的分类标签为“5”,以此类推,这样一来,多音字预测模型输出的分类标签的数量为全部多音字的读音个数的总和N。理论上,预测时,多音字预测模型可输出N个分类标签的概率值,即可输出所有多音字的读音对应的概率值。但是,本申请在实际预测过程中,只需要获得当前预测的多音字对应的读音,因此,可在多音字预测模型的输出层中,将与当前预测的多音字无关的概率值MASK(忽略)掉,最终只输出当前预测的多音字对应的读音分类结果。
[0141] 具体实施时,多音字预测模型包括一个
输入层、至少一个中间层和一个输出层。其中,通过输入层输入当前预测的多音字所属分词片段对应的特征向量;至少一个中间层级联,通过至少一个中间层逐级提取通过输入层输入的特征向量对应的特征值,最后一个中间层将输出的特征值输入输出层;输出层获取最后一个中间层输出的特征值(即N个分类标签的概率值),MASK掉除当前预测的多音字的所有读音对应的分类标签以外的其他分类标签的概率值,从当前预测的多音字的所有读音对应的分类标签的概率值中,选取概率值最大的分类标签对应的读音,作为当前预测的多音字的读音。
[0142] 具体实施时,参考图6,可通过如下方式训练多音字预测模型:
[0143] S601、获取多音字样本集,每个多音字样本包括文本序列和该文本序列对应的分类标签。
[0144] 具体实施时,预先对用于训练多音字预测模型的每个语料进行分词处理,得到每个语料对应的分词片段组成的文本序列,并根据每个文本序列中的多音字的读音,标注该文本序列对应的分类标签。具体地,若一个语料中只有一个多音字,则基于该语料得到一个多音字样本;若一个语料中包含多个多音字,则基于该语料可得到多个多音字样本。
[0145] 例如,语料为“比赛还有十五分钟”,其中仅包含一个多音字“还”,其读音为[hái],则语料为“比赛还有十五分钟”对应的文本序列{比赛,还,有,十五,分钟}的分类标签为“0”,即可到一个多音字样本:{比赛,还,有,十五,分钟},分类标签为“0”。
[0146] 例如,语料为“参差不齐”,其中包含两个多音字“参”和“差”,则可以得到两个多音字样本,假设“参”[cēn]的分类标签为“100”,“差”[cī]的分类标签为“155”,则一个多音字样本为:{参差不齐},分类标签为“100”,另一个多音字样本为:{参差不齐},分类标签为“155”。
[0147] S602、将多音字样本集中的文本序列对应的向量序列输入多音字预测模型,得到该文本序列中的多音字的读音。
[0148] 具体实施时,可通过步骤S202中的语言表征模型获取文本序列对应的向量序列。
[0149] S603、根据该文本序列中的多音字的读音和该文本序列对应的分类标签,优化该多音字预测模型的权重参数。
[0150] 在具体实施时,可根据该多音字样本原有的分类标签和多音字预测模型输出的该多音字样本对应的读音,计算用于确定两者偏差的损失函数,进而利用梯度下降算法对神经网络的参数进行调整以期减小损失函数,直至模型收敛,停止模型训练,得到训练好的多音字预测模型。
[0151] 本申请实施例中的多音字预测模型,可通过神经网络训练得到,可用的神经网络包括但不限于以下几种类型:残差网络(ResNet)、卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)、
深度神经网络(Deep Neural Network,DNN)、深度置信网(Deep Belief Nets,DBNs)等。
[0152] 具体地,如图7所示,可通过如下方式获取分词序列中各分词片段对应的读音:
[0153] S701、确定分词序列中各分词片段中的非多音字的读音。
[0154] 具体实施时,发音列表中记录了哪些字为多音字,哪些字为非多音字,因此,可通过发音列表,快速地确定分词序列中各分词片段中的非多音字和多音字。针对分词序列中各分词片段中的非多音字,可直接从发音列表中获得对应的读音。
[0155] S702、将分词序列中包含多音字的分词片段对应的特征向量输入针对所有多音字训练的多音字预测模型,得到分词序列中各分词片段中的多音字的读音。
[0156] 具体实施时,基于发音列表确定出分词序列中的多音字,获取确定出的多音字所在分词片段对应的特征向量,将获取的特征向量输入多音字预测模型。
[0157] 具体实施时,将包含多音字的分词片段对应的特征向量输入多音字预测模型,利用至少一个中间层逐级提取输入的特征向量对应的特征值,输出层根据最后一个中间层输出的特征值,确定各分类标签对应的概率,并根据该多音字的所有读音对应的分类标签的概率,确定该多音字的读音。
[0158] 进一步地,若同一分词片段中包含多个多音字,则需要将该分词片段对应的特征向量多次输入到多音字预测模型中,每一次输入仅预测出其中一个多音字对应的读音。例如,分词片段“参差不齐”中包含两个多音字“参”和“差”,则先将“参差不齐”的特征向量输入多音字预测模型,得到“参”对应的读音,然后,再次将“参差不齐”的特征向量输入多音字预测模型,得到“差”对应的读音,两次预测的差别在于,输出层MASK掉的分类标签不同,第一次预测时,输出层MASK掉除“参”对应的读音以外的分类标签,第二次预测时,输出层MASK掉除“差”对应的读音以外的分类标签。
[0159] 下面通过实验数据对现有的语音合成方法和本申请实施例提供的语音合成方法进行比对。
[0160] 实验中,使用来自网络的50GB的中文新闻文本训练了一个基于字级别的BLSTM的语言模型作为现有语音合成方法中使用的语言模型。
[0161] 实验中,选用NMT encoder模型作为语言表征模型,NMT encoder模型使用了1亿句双语语料训练,NMT encoder模型为包含6层网络和512隐节点的transformer结构。对于韵律结构预测任务,收集了15万句韵律样本,并将韵律样本分为8:1:1的训练数据集、验证数据集和测试数据集,通过训练数据集训练韵律结构模型,通过验证数据集验证韵律结构模型的性能,并调整韵律结构模型的超参数,通过测试数据集衡量韵律结构模型的最终性能。对于多音字消歧任务,使用30万句多音字句子作为多音字样本,针对89个常用多音字对应的202个读音,训练多音字预测模型,其中,每个多音字最少包含500个多音字样本,多音字样本分为8:1:1的比例作为训练数据集、验证数据集和测试数据集。
[0162] 最终实验结果参考表1和表2。表1为多音字预测准确率对比结果,从表1中可看出,本申请方案在多音字准确率上提高了1.68%。表2为现有方案和本申请方案中的韵律结构预测的F值对比结果,从表2中可看出,韵律词、韵律短语F值效果分别提升1.3%、2.3%,提升明显。
[0163] 表1
[0164]系统 现有技术方案 本申请方案
准确率 94.50% 96.18%
[0165] 表2
[0166] 韵律词 韵律短语现有技术方案 0.961 0.824
本申请方案 0.974 0.847
[0167] 如图8所示,基于与上述语音合成方法相同的发明构思,本申请实施例还提供了一种语音合成装置80,包括分词处理模块801、向量转换模块802、韵律预测模块803和语音合成模块804。
[0168] 分词处理模块801,用于获得输入文本对应的分词序列。
[0169] 向量转换模块802,用于利用已训练的基于注意力机制的语言表征模型确定所述分词序列对应的向量序列,所述向量序列中的特征向量与所述分词序列中的分词片段一一对应。
[0170] 韵律预测模块803,用于利用韵律结构模型对所述向量序列进行韵律结构预测处理,确定韵律结构信息,所述韵律结构信息包括所述向量序列中的各特征向量对应的分词片段在合成的语音中对应的停顿时长和发音轻重。
[0171] 语音合成模块804,用于根据所述韵律结构信息和所述分词序列中各分词片段对应的读音,合成所述输入文本对应的语音。
[0172] 可选地,语言表征模型为神经机器翻译模型中的编码器,或者BERT模型,或者GPT模型。
[0173] 可选地,韵律结构模型包括双向卷积神经网络和至少两个独立的条件随机场CRF层,每个CRF层对应一个韵律结构层级。
[0174] 相应地,韵律预测模块803具体用于:将所述向量序列输入所述双向卷积神经网络,得到包含上下文特征的中间向量;将所述中间向量分别输入所述至少两个独立的CRF层,确定每个韵律结构层级对应的韵律结构信息。
[0175] 可选地,通过如下方式训练韵律结构模型:
[0176] 获取韵律样本集,每个韵律样本包括文本序列和为该文本序列标注的各韵律结构层级对应的韵律结构信息;
[0177] 将所述韵律样本集中的文本序列对应的向量序列输入所述韵律结构模型,得到所述韵律结构模型中各CRF层输出的韵律结构信息;
[0178] 针对每个CRF层,根据所述CRF层输出的韵律结果信息和标注的所述CRF层对应的韵律结构层级的韵律结构信息,确定所述CRF层对应的损失值;
[0179] 根据各CRF层对应的损失值,优化所述韵律结构模型中双向卷积神经网络的权重参数和各CRF层的参数。
[0180] 可选地,本申请实施例的语音合成装置80还包括读音预测模块805,用于:确定所述分词序列中各分词片段中的非多音字的读音;将所述分词序列中包含多音字的分词片段对应的特征向量输入针对所有多音字训练的多音字预测模型,得到所述分词序列中各分词片段中的多音字的读音。
[0181] 可选地,多音字预测模型包括至少一个中间层和一个输出层。
[0182] 相应地,读音预测模块805具体用于:将所述包含多音字的分词片段对应的特征向量输入所述多音字预测模型,利用所述至少一个中间层逐级提取输入的特征向量对应的特征值;所述输出层根据最后一个中间层输出的特征值,确定各分类标签对应的概率,并根据所述多音字的所有读音对应的分类标签的概率,确定所述多音字的读音,其中,一个分类标签对应一个多音字的一种读音。
[0183] 可选地,通过如下方式训练多音字预测模型:
[0184] 获取多音字样本集,每个多音字样本包括文本序列和该文本序列对应的分类标签;
[0185] 将所述多音字样本集中的文本序列对应的向量序列输入所述多音字预测模型,得到所述文本序列中的多音字的读音;
[0186] 根据所述文本序列中的多音字的读音和所述文本序列对应的分类标签,优化所述多音字预测模型的权重参数。
[0187] 本申请实施例提的语音合成装置与上述语音合成方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
[0188] 基于与上述语音合成方法相同的发明构思,本申请实施例还提供了一种电子设备,该电子设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、服务器等。如图9所示,该电子设备90可以包括处理器901和存储器902。
[0189] 处理器901可以是通用处理器,例如
中央处理器(CPU)、
数字信号处理器(Digital Signal Processor,DSP)、专用集成
电路(Application Specific Integrated Circuit,ASIC)、
现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他
可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑
框图。通用处理器可以是
微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及
软件模块组合执行完成。
[0190] 存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、
硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程
只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带
电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、
磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器902还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0191] 本申请实施例提供了一种计算机可读存储介质,用于储存为上述电子设备所用的计算机程序指令,其包含用于执行上述弹幕处理方法的程序。
[0192] 上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如
软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及
半导体存储器(例如ROM、EPROM、EEPROM、
非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
[0193] 以上,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本申请实施例的方法,不应理解为对本申请实施例的限制。
本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本申请实施例的保护范围之内。