实现语音识别中自动添加标点符号的方法及系统技术领域
本发明涉及语音识别技术领域,具体涉及一种实现语音识别中自动添加标
点符号的方法及系统。
背景技术
目前,语音识别系统大多采用基于统计模式识别的方法,首先将语音输入
的时域声波转化为一种数字化的矢量特征来描述区分不同的发音,基于该声音
特征对所有的发音建立一个声学模型;同时,对于大词表连续语音识别系统来
说,需要一个语言模型,该模型中包括所识别语言中的常用文字的使用方法。
一般连续语音识别系统的工作过程可以描述为,在巨大的字、词、短语或句子
的空间中,找出与给定输入声音特征序列相匹配具有最大概率的字、词、短语
或句子,作为识别结果,同时可采用上下文产生装置利用上述识别结果修改当
前上下文,便于下一个语音采样所用。
由于语音可以通过语气的强弱、语音的停顿以及语调的升降变换来变现平
稳、感叹、疑问、喜悦等多种情感,而将语音识别为文字时,就失去了发音的
辅助信息,无法将这些情感像运用语言一样表达得那样生动。同时讲话人采用
不一样的情感语气进行发音,会使得短语或句子具有不同的意思。例如,“你
还没听懂我的意思。”和“你还没听懂我的意思?”这两句话由于语气不同,
句意也发生改变,前者是陈述一个事实,后者则为表示疑问的反问句,并包含
感到意外的意思,而这两句话从文字上的区别仅是标点符号的不同。可见标点
符号在句子中起的作用至关重要,在语音识别中添加标点符号是十分必要的。
然而在当前的连续语音识别系统中,对于自动添加标点符号的研究并不多,大
多是当语音识别时,中间有停顿的地方识别为逗号,结束时自动添加句号,整
个句子都被视为陈述语气,这种方式在某些情形下并不能正确传达出讲话者语
义和情感。
为此,现有技术中提出了一种利用人在发音过程中产生的噪声,将这些噪
声与标点符号相对应,实现在连续语音识别中自动添加标点符号的方案。但是
该方案在实际应用中依然存在一定的问题,因为用户的差异性及标点符号的多
样性,并不是所有用户都会在讲话中产生足够的噪声,因此这种方案中标点符
号的添加缺乏准确性和灵活性。
发明内容
本发明实施例针对上述现有技术存在的问题,提供一种实现语音识别中自
动添加标点符号的方法及系统,以简单方便地实现标点符号的自动添加,并提
高标点符号添加的准确性和灵活性。
为此,本发明实施例提供如下技术方案:
一种实现语音识别中自动添加标点符号的方法,包括:
采集用户语音信号;
对所述用户语音信号进行语音识别,生成包含多个语句的文字序列;
依次计算所述文字序列中语句间的停顿位置的时长;
如果所述时长小于预设的门限值,则在所述停顿位置添加逗号;
如果所述时长大于或等于所述门限值,则利用预先生成的分类器,确定所
述停顿位置前的语句的语气类型,并根据所述类型在所述停顿位置添加标点符
号。
一种实现语音识别中自动添加标点符号的系统,包括:
信号采集单元,用于采集用户语音信号;
语音识别单元,用于对所述用户语音信号进行语音识别,生成包含多个语
句的文字序列;
计算单元,用于依次计算所述文字序列中语句间的停顿位置的时长;
判断单元,用于判断所述时长是否小于预设的门限值;
第一标点符号添加单元,用于在所述判断单元判断所述时长小于预设的门
限值,在所述停顿位置添加逗号;
语句类型确定单元,用于在所述判断单元判断所述时长大于或等于所述门
限值,利用预先生成的分类器,确定所述停顿位置前的语句的语气类型;
第二标点符号添加单元,用于根据所述语句类型确定单元确定的语句类型
在所述停顿位置添加标点符号。
本发明实施例提供的实现语音识别中自动添加标点符号的方法及系统,通
过对采集的用户语音信号进行语音识别,生成包含多个语句的文字序列;依次
计算该文字序列中语句间的停顿位置的时长;如果该时长小于预设的门限值,
则在该停顿位置添加逗号;如果该时长大于或等于所述门限值,则确定该停顿
位置前的语句的语气类型,并根据确定的语句类型在该停顿位置添加标点符
号。从而简单高效地实现标点符号的自动添加,并保证了标点符号添加的准确
性和灵活性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施
例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是
本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些
附图获得其他的附图。
图1是本发明实施例实现语音识别中自动添加标点符号的方法的流程图;
图2是本发明实施例中训练分类器的流程图;
图3是本发明实施例中根据已训练的分类器确定语句的语气类型的流程
图;
图4是本发明实施例实现语音识别中自动添加标点符号的系统的一种结
构示意图;
图5是本发明实施例实现语音识别中自动添加标点符号的系统的另一种
结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图
和实施方式对本发明实施例作进一步的详细说明。
本发明实施例实现语音识别中自动添加标点符号的方法及系统,通过对采
集的用户语音信号进行语音识别,生成包含多个语句的文字序列;依次计算该
文字序列中语句间的停顿位置的时长;如果该时长小于预设的门限值,则在该
停顿位置添加逗号;如果该时长大于或等于所述门限值,则确定该停顿位置前
的语句的语气类型,并根据确定的语句类型在该停顿位置添加标点符号。从而
简单高效地实现标点符号的自动添加,并保证了标点符号添加的准确性和灵活
性。
如图1所示,是本发明实施例实现语音识别中自动添加标点符号的方法的
流程图,包括以下步骤:
步骤101,采集用户语音信号。
可以利用现有的一些语音信号采集工具进行采集,将用户语音信号表示为
语音采样。例如,利用Windows语音采集工具采集语音信号,将采集的数据
保存WAV(Wave Audio Files,波形声音文件)格式。当然,还可以采用其他
采样格式,比如,PCM(Pulse Code Modulation,脉冲编码调制)、RAW格式、
SND格式、以及MP3(Moving Picture Experts Group Audio Layer III)格式等。
步骤102,对所述用户语音信号进行语音识别,生成包含多个语句的文字
序列。
在具体应用中,可以根据应用需要,采用不同的语音识别方法,比如,可
以采用以下任意一种方法:
(1)DTW(Dynamic Time Warping,动态时间规整)方法:说话人信息
不仅有稳定因素(发声器官的结构和发声习惯),而且有时变因素(语速、语
调、重音和韵律)。DTW将识别模板与参考模板进行时间对比,按照某种距离
测度得出两模板间的相似程度。
(2)VQ(Vector Quantization,矢量量化)方法:将每个人的特定文本训
练成码本,识别时将测试文本按此码本进行编码,以量化产生的失真度作为判
决标准。
(3)HMM(Hidden Markov Model,马尔可夫模型)方法:是一种基于
转移概率和输出概率的随机模型,它将语音看成由可观察到的符号序列组成的
随机过程,符号序列则是发声系统状态序列的输出。在使用隐马尔可夫模型识
别时,为每个说话人建立发声模型,通过训练得到状态转移概率矩阵和符号输
出概率矩阵。识别时计算未知语音在状态转移过程中的最大概率,根据最大概
率对应的模型进行判决。对于与文本无关的说话人识别一般采用各态历经型
HMM;对于与文本有关的说话人识别一般采用从左到右型HMM。HMM不需
要时间规整,可节约判决时的计算时间和存储量,在目前被广泛应用。其缺点
是训练时计算量较大。
(4)ANN(Artificial Neural Networks,人工神经网络方法):它在某种程
度上模拟了生物的感知特性,是一种分布式并行处理结构的网络模型,具有自
组织和自学习能力、很强的复杂分类边界区分能力以及对不完全信息的鲁棒
性,其性能近似理想的分类器。
当然,还可以采用其他方法,具体采用哪种语音识别方法本发明实施例不
做限定。而且具体的语音识别过程与现有技术类似,在此不再赘述。
经过语音识别处理,可以将采集的用户语音信号生成一个文字序列,在该
文字序列中包含了一个或多个语句,如果有多个语句,则在前、后语句间有一
定时长的停顿,不同停顿位置的时长可能相同,也可能不同。
步骤103,依次计算所述文字序列中语句间的停顿位置的时长。
步骤104,判断所述时长是否小于预设的门限值;如果是,则执行步骤105;
否则,执行步骤106。
上述门限值可以根据不同的语速来确定,比如在正常的语速下设为0.2s,
如果语速较慢,则设为0.3s,对此本发明实施例不做限定。
步骤105,在所述停顿位置添加逗号。
人在讲话时,为使讲话层次分明,突出重点,吸引听话人的注意力,会根
据讲话内容的标点有意识的停顿。通常,在一句话结束时会停顿时间较长,而
在一句话之间的停顿时间会较短。因此,如果停顿位置的时长很短,小于设定
的门限值,则表明句子没有结束,可以直接进行标点符号的添加,即在该停顿
位置添加逗号。
步骤106,利用预先生成的分类器,确定所述停顿位置前的语句的语气类
型。
如果停顿位置的时长较长,超过了预设的门限值,则确定句子结束。而不
管是对汉语还是其他语言,比如英语、日语等语言中,一句话的结束可以有多
种不同的标点符号来标识,而且,标点符号具有的含义与人的情感之间有直接
的联系,比如,当人在讲话时采用感叹语气时,一般句子结尾为感叹号;讲话
人采用疑问语气时,句子结尾为问号;讲话人采用陈述语气时,句子结尾为句
号。
因此,在本发明实施例中,可以在确定句子结束后,根据停顿位置前的语
句的语气类型来添加相应的标点符号,从而保证其正确性。
步骤107,根据所述类型在所述停顿位置添加标点符号。
在本发明实施例中,可以将语句的语气类型划分为三种,分别是:陈述句、
疑问句和感叹句。相应地,在所述停顿位置添加标点符号时根据该类型添加相
应的标点符号,即:如果所述类型为陈述句,则在所述停顿位置添加句号;如
果所述类型为疑问句,则在所述停顿位置添加问号;如果所述类型为感叹句,
则在所述停顿位置添加感叹号。
可见,本发明实施例实现语音识别中自动添加标点符号的方法,通过对采
集的用户语音信号进行语音识别,生成包含多个语句的文字序列;依次计算该
文字序列中语句间的停顿位置的时长;如果该时长小于预设的门限值,则在该
停顿位置添加逗号;如果该时长大于或等于所述门限值,则利用预先生成的分
类器,确定该停顿位置前的语句的语气类型,并根据确定的语句类型在该停顿
位置添加标点符号。从而简单高效地实现标点符号的自动添加,并保证了标点
符号添加的准确性和灵活性。
前面提到,在本发明实施例中,如果确定了语句结束,则需要根据语句的
语气类型来添加相应的标点符号,具体地,可以利用预先生成的分类器(包括
文本分类器和/或声学分类器),确定所述语句的语气类型。下面对其原理及具
体实现过程进行详细说明。
一般地,文字文本之所以能表达一定的情感和语义,除了与文字本身具有
的含义有关,更与文本中采用的语气词和标点符号具有直接的联系。
另外,语音信号之所以能够传递情感信息,语气不同能表达不同的含义,
是因为其中包含了能反映情感差异的特征,而声学特征在情感信息传递中起到
关键作用,语音情感变化主要通过声学特征的差异得到体现。
因此,在本发明实施例中,可以采用分别训练文本分类器和声学分类器的
方式,当然,也可以采用同时训练文本分类器和声学分类器的方式,利用所述
文本分类器和声学分类器对用户语音进行文本辨析和语音特性辨析,准确地判
断出语音语气,提高添加标点符号的准确性。
如图2所示,是本发明实施例中训练分类器的流程图,该分类器的训练过
程,采用同时训练文本分类器和声学分类器的方式,充分保证分类的准确性。
该流程包括以下步骤:
步骤201,收集文本语料。
在具体应用中,可以由人工从网络或书籍上收集各种文本语料,也可以由
应用软件从网络上收集各种文本语料,每条语料不仅包含文字内容,而且还包
含相应的标点符号。所述文本语料主要以逗号、感叹号、问号和句号为标志,
划分为句子单元。所述文本语料包括不同的语气句子类型,如陈述句、感叹句、
疑问句等,各句子的长度及声调可以相同或不同。
步骤202,从所述文本语料中提取关键词。
具体地,可以针对句子标点符号为句号、问号、感叹号的语句,分别统计
其中出现频率较高、而在其他标点对应的文本中出现较少的词语,例如疑问语
气中的“为什么”、“吗”、“谁”、“哪个”等,统计出现频率较高的若干个词,
构成一维向量空间。
其中关键词的挑选准则为:对于三类标点符号C1(句号)、C2(问号)、
C3(叹号)对应的语料,挑选其中每类语料中出现的后验概率最大的若干前N
个词,公式如下:
Q i = arg [ max w : topN p ( C i | w ) ] = arg [ max w : topN p ( w | C i ) p ( C i ) Σ i = 1 3 p ( w | C i ) p ( C i ) ] - - - ( 1 ) ]]>
W表示文本语料的个数,Ci表示不同语气的语料的个数。
其中,i=1,2,3,p(Ci|w)为一句语料中找到的关键词属于第i类的概率。
对于N的选取可以根据语料的多少以及识别率的好坏进行不同选择,比如,N
取20。
步骤203,根据提取的关键词训练生成文本分类器。
具体地,可以将提取的关键词以类型为句号、感叹号、问号结尾的文本中
出现的关键词组成一个矢量,每种语气仅保留前N个最有区分性的词语,例
如,从感叹句中挑选的关键词为:啊、吧、唉、哎呀、哦、天哪...;从问句中
挑选的关键词为:为什么、谁、哪里、哪一个、什么、怎么样、多少、星期几...;
从陈述句中挑选的关键词为:知道了、是的吧、很好的...,共组成长度为M
的矢量(M、N为正整数)。
在前面得到的M个元素的基础上,对于测试训练集中的所有文本语料,
分析每个句子中各个关键词是否出现,如果出现,则在上述M维矢量中对应
的位置填上1,其余的位置设为0。然后利用以这些矢量和对应的标点符号为
类别,以最大熵为准则,训练出文本分类器。
步骤204,获取不同的录音人对所述文本语料录音生成的语音文件。
比如,对收集的文本语料,选取5名男性和5名女性录音人,每个人按照
日常说话的方式读出所述文本语料的内容,并且根据不同的句型采用不同的语
气朗读。同时,保证录音人对于每种语气需要读大体相当数量的文本。对录音
后的文件按照16KHz采样率、16bit量化进行A/D变换,以WAV格式保存该
文件。
步骤205,确定所述语音文件中的发音语气。
具体地,可以通过对所述语音文件进行语气分析,确定所述语音文件中的
发音语气。所述语气分析包括:包括韵律分析和频谱分析。
上述韵律分析包括基频提取和规整、一阶、二阶基频差分。其中,基频提
取和规整可以采用Praat基频提取算法,计算每一帧位置对应的基频值以及计
算该句的基频平均值(基频值为0的位置不参与计算),然后将所有基频值减
去整体的均值。
上述频谱分析包括计算平均频率幅度、共振峰参数提取。其中,计算平均
频率幅度即对于每一帧数据,采用离散傅里叶变换(DFT),计算出每一帧数
据平均幅度,即公式:
F = Σ i = 1 N A i F i Σ i = 1 N A i - - - ( 2 ) ]]>
其中,Fi为离散傅里叶变换时各个谐波频率,Ai为与各个谐波对应的幅度。
提取第一共振峰参数,对于每帧数据,采用线性预测法(LPC)求出N阶预测
系数,然后计算第一共振峰的频率,最后计算频率幅度和共振峰的一阶差分和
二阶差分。
对于上述韵律和频谱参数,可以按照时长平分成5份,对于每一份韵律和
频谱参数,对上述每种特征(即前面提到的韵律分析中涉及的参数:一阶二阶
基频差分、以及频谱分析中涉及的参数:平均频率幅度和共振峰参数)计算特
征的平均值,形成一个30维的观察矢量。
对于每份录音数据的文本,采用上述步骤203生成的文本分类器,计算出
该句文本属于各类语气的条件概率,和前面的频谱、韵律参数拼接在一起形成
一个33维分类特征。
步骤206,以所述发音语气为分类目标训练生成声学分类器。
对于每一条语句,对于除静寂段以外每一个音节计算平均频谱幅度、基频,
加上各维特征的一阶、二阶差分,组成一个矢量。以各语音文件中的发音语气
(包括陈述句、疑问句、感叹句)为分类目标训练隐支持向量机(SVM)分
类器,作为声学分类器。
需要说明的是,上述步骤202至步骤203表示的是训练文本分类器的过程,
步骤204至步骤206表示的是声学分类器的过程。在实际应用中,可以根据需
要选用,以生成文本分类器或声学分类器。当然,也可以同时生成文本分类器
和声学分类器。
通过上述过程,可以完成分类器的训练。利用已训练的分类器,可以检测
语句的语音及其文本,从而确定该语句的语气类型。
如图3所示,是本发明实施例中根据已训练的分类器确定语句的语气类型
的一种流程图,包括以下步骤:
步骤301,对当前需要识别的语句提取关键词。
步骤302,利用文本分类器计算上述语句属于每个类别的条件概率,同时
根据声学分类器对上述语句进行语气分析,包括韵律分析和频谱分析。
步骤303,根据计算得到的条件概率及语气分析结果,确定当前语句的语
气类型。
相应地,本发明实施例还提供一种实现语音识别中自动添加标点符号的系
统,如图4所示,是该系统的一种结构示意图。
在该实施例中,所述系统包括:
信号采集单元401,用于采集用户语音信号;
语音识别单元402,用于对所述用户语音信号进行语音识别,生成包含多
个语句的文字序列;
计算单元403,用于依次计算所述文字序列中语句间的停顿位置的时长;
判断单元404,用于判断所述时长是否小于预设的门限值;
第一标点符号添加单元405,用于在所述判断单元404判断所述时长小于
预设的门限值,在所述停顿位置添加逗号;
语句类型确定单元406,用于在所述判断单元404判断所述时长大于或等
于所述门限值,利用预先生成的分类器,确定所述停顿位置前的语句的语气类
型;
第二标点符号添加单元407,用于根据所述语句类型确定单元406确定的
语句类型在所述停顿位置添加标点符号。
上述门限值可以根据不同的语速来确定,比如在正常的语速下设为0.2s,
如果语速较慢,则设为0.3s,对此本发明实施例不做限定。
在本发明实施例中,语句类型可以包括:陈述句、疑问句和感叹句。相应
地,上述第二标点符号添加单元407具体可以在所述语句类型确定单元406
确定的语句类型为陈述句时,在所述停顿位置添加句号;为疑问句时,在所述
停顿位置添加问号;为感叹句时,在所述停顿位置添加感叹号。
本发明实施例实现语音识别中自动添加标点符号的系统,通过对采集的用
户语音信号进行语音识别,生成包含多个语句的文字序列;依次计算该文字序
列中语句间的停顿位置的时长;如果该时长小于预设的门限值,则在该停顿位
置添加逗号;如果该时长大于或等于所述门限值,则确定该停顿位置前的语句
的语气类型,并根据确定的语句类型在该停顿位置添加标点符号。从而简单高
效地实现标点符号的自动添加,并保证了标点符号添加的准确性和灵活性。
在实际应用中,上述语句类型确定单元406可以采用多种方式确定所述停
顿位置前的语句的语气类型,比如,通过预先训练生成的分类器确定所述停顿
位置前的语句的语气类型。该分类器可以由本发明实施例的系统生成,也可以
由其他系统生成,对此本发明实施例不做限定。
如图5所示,是本发明实施例实现语音识别中自动添加标点符号的系统的
另一种结构示意图。
与图4所示实施例不同的是,在该实施例中,所述实现语音识别中自动添
加标点符号的系统还包括:语料收集单元501和分类器生成单元502,其中:
语料收集单元501用于收集文本语料;
分类器生成单元502用于根据所述文本语料通过训练方式生成分类器,所
述分类器包括:文本分类器和/或声学分类器。
相应地,在该实施例中,语句类型确定单元406利用所述分类器生成单元
502预先生成的分类器,确定所述停顿位置前的语句的语气类型。
需要说明的是,在实际应用中,语料收集单元501可以自动从网络上收集
各种文本语料,每条语料不仅包含文字内容,而且还包含相应的标点符号。所
述文本语料主要以逗号、感叹号、问号和句号为标志,划分为句子单元。所述
文本语料包括不同的语气句子类型,如陈述句、感叹句、疑问句等,各句子的
长度及声调可以相同或不同。当然,上述语料收集单元501是可选的,比如,
也可以由人工从网络或书籍上收集所需的各种文本语料并提供给本发明实施
例的系统。
在本发明实施例中,上述分类器生成单元502可以包括:文本分类器训练
单元和/或声学分类器训练单元(未图示),其中:所述文本分类器训练单元,
用于根据所述文本语料通过训练方式生成文本分类器;所述声学分类器训练单
元,用于根据所述文本语料通过训练方式生成声学分类器。
在具体实现中,所述文本分类器训练单元可以包括:关键词提取子单元和
第一训练子单元,其中:
上述关键词提取子单元用于从上述语料收集单元501收集的文本语料中
提取关键词;
上述第一训练子单元用于根据所述关键词提取子单元501提取的关键词
训练生成文本分类器。
所述声学分类器训练单元可以包括:语音文件获取子单元、语气确定子单
元和第二训练子单元,其中:
上述语音文件获取子单元,用于获取不同的录音人对所述语料收集单元收
集的文本语料录音生成的语音文件;
上述语气确定子单元,用于确定所述语音文件中的发音语气;
上述第二训练子单元,用于以所述语气确定子单元确定的发音语气为分类
目标训练生成声学分类器。
利用上述分类器生成单元502生成文本分类器和/或声学分类器的详细过
程可参照前面本发明实施例实现语音识别中自动添加标点符号的方法中的描
述,在此不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相
似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之
处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得
比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施
例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是
物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以
位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择
其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在
不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发
明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同
时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用
范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。