Commit 97da3ae0 by 孟霞

合并分支 'master' 到 'mengxia'

Master

查看合并请求 !1053
parents f69a0f78 1578d0e9
......@@ -76,7 +76,7 @@
\parinterval 经过上面的描述可以看出,音频的表示实际上是一个非常长的采样点序列,这导致了直接使用现有的深度学习技术处理音频序列较为困难。并且,原始的音频信号中可能包含着较多的噪声、环境声或冗余信息,也会对模型产生干扰。因此,一般会对音频序列进行处理来提取声学特征,具体为将长序列的采样点序列转换为短序列的特征向量序列,再用于下游系统。虽然已有一些工作不依赖特征提取,直接在原始的采样点序列上进行声学建模和模型训练\upcite{DBLP:conf/interspeech/SainathWSWV15},但目前的主流方法仍然是基于声学特征进行建模\upcite{DBLP:conf/icassp/MohamedHP12}
\parinterval 声学特征提取的第一步是预处理。其流程主要是对音频进行{\small\bfnew{预加重}}(Pre-emphasis)\index{预加重}\index{Pre-emphasis}{\small\bfnew{分帧}}\index{分帧}(Framing)\index{Framing}{\small\bfnew{加窗}}\index{加窗}(Windowing)\index{Windowing}。预加重是通过增强音频信号中的高频部分来减弱语音中对高频信号的抑制,使频谱更加顺滑。分帧(原理如图\ref{fig:17-3}所示)是基于短时平稳假设,即根据生物学特征,语音信号是一个缓慢变化的过程,10ms$\thicksim$30ms的信号片段是相对平稳的。基于这个假设,一般将每25ms作为一帧来提取特征,这个时间称为{\small\bfnew{帧长}}\index{帧长}(Frame Length)\index{Frame Length}。同时,为了保证不同帧之间的信号平滑性,使每两个相邻帧之间存在一定的重合部分。一般每隔10ms取一帧,这个时长称为{\small\bfnew{帧移}}\index{帧移}(Frame Shift)\index{Frame Shift}。为了缓解分帧带来的频谱泄漏问题,需要对每帧的信号进行加窗处理使其幅度在两渐变到0,一般采用的是{\small\bfnew{汉明窗}}\index{汉明窗}(Hamming)\index{Hamming}\upcite{洪青阳2020语音识别原理与应用}
\parinterval 声学特征提取的第一步是预处理。其流程主要是对音频进行{\small\bfnew{预加重}}(Pre-emphasis)\index{预加重}\index{Pre-emphasis}{\small\bfnew{分帧}}\index{分帧}(Framing)\index{Framing}{\small\bfnew{加窗}}\index{加窗}(Windowing)\index{Windowing}。预加重是通过增强音频信号中的高频部分来减弱语音中对高频信号的抑制,使频谱更加顺滑。分帧(原理如图\ref{fig:17-3}所示)是基于短时平稳假设,即根据生物学特征,语音信号是一个缓慢变化的过程,10ms$\thicksim$30ms的信号片段是相对平稳的。基于这个假设,一般将每25ms作为一帧来提取特征,这个时间称为{\small\bfnew{帧长}}\index{帧长}(Frame Length)\index{Frame Length}。同时,为了保证不同帧之间的信号平滑性,使每两个相邻帧之间存在一定的重合部分。一般每隔10ms取一帧,这个时长称为{\small\bfnew{帧移}}\index{帧移}(Frame Shift)\index{Frame Shift}。为了缓解分帧带来的频谱泄漏问题,需要对每帧的信号进行加窗处理使其幅度在两渐变到0,一般采用的是{\small\bfnew{汉明窗}}\index{汉明窗}(Hamming)\index{Hamming}\upcite{洪青阳2020语音识别原理与应用}
%----------------------------------------------------------------------------------------------------
\begin{figure}[htp]
\centering
......@@ -120,7 +120,7 @@
%----------------------------------------------------------------------------------------------------
\vspace{-1em}
\parinterval 语音识别目前广泛使用基于Transformer的模型结构(见{\chaptertwelve}),如图\ref{fig:17-5}所示。可以看出,相比文本翻译,语音识别模型结构上唯一的区别在于编码器的输入为声学特征,以及编码器底层会使用额外的卷积层来减小输入序列的长度。这是由于语音对应的特征序列过长,在计算注意力模型的时候,会占用大量的内存/显存,并增加训练时间。因此,一个常用的做法是在语音特征上进行两层步长为2的卷积操作,从而将输入序列的长度缩小为之前的1/4。通过使用大量的语音-标注平行数据对模型进行训练,可以得到高质量的语音识别模型。
\parinterval 语音识别目前广泛使用基于Transformer的模型结构(见{\chaptertwelve}),如图\ref{fig:17-5}所示。可以看出,相比文本翻译,语音识别模型结构上唯一的区别在于编码器的输入为声学特征,以及编码器底层会使用额外的卷积层来减小输入序列的长度。这是由于语音对应的特征序列过长,在计算注意力模型的时候,会占用大量的内存显存,并增加训练时间。因此,一个常用的做法是在语音特征上进行两层步长为2的卷积操作,从而将输入序列的长度缩小为之前的1/4。通过使用大量的语音-标注平行数据对模型进行训练,可以得到高质量的语音识别模型。
\parinterval 为了降低语音识别的错误对下游系统的影响,通常也会用词格来取代One-best语音识别结果。除此之外,另一种思路是通过一个后处理模型修正识别结果中的错误,再送给文本翻译模型进行翻译。也可以进一步对文本做{\small\bfnew{顺滑}}\index{顺滑}(Disfluency Detection\index{Disfluency Detection})处理,使得送给翻译系统的文本更加干净、流畅,比如除去一些导致停顿的语气词。这一做法在工业界得到了广泛应用,但由于每个模型只能串行地计算,也会带来额外的计算代价以及运算时间。第三种思路是训练更加健壮的文本翻译模型,使其可以处理输入中存在的噪声或误差\upcite{DBLP:conf/acl/LiuTMCZ18}
......@@ -223,7 +223,7 @@
\end{figure}
%----------------------------------------------------------------------------------------------------
\parinterval 另外一种多任务学习的思想是通过两个解码器,分别预测语音对应的源语言句子和目标语言句子,具体有图\ref{fig:17-10}展示的三种方式\upcite{DBLP:conf/naacl/AnastasopoulosC18,DBLP:conf/asru/BaharBN19}。图\ref{fig:17-10}(a)中采用单编码器-双解码器的方式,两个解码器根据编码器的表示,分别预测源语言句子和目标语言句子,从而使编码器训练地更加充分。这种做法的好处在于源语言的文本生成任务可以辅助翻译过程,相当于为源语言语音提供了额外的“模态”信息。图\ref{fig:17-10}(b)则通过使用两个级联的解码器,先利用第一个解码器生成源语言句子,然后再利用第一个解码器的表示,通过第二个解码器生成目标语言句子。这种方法通过增加一个中间输出,降低了模型的训练难度,但同时也会带来额外的解码耗时,因为两个解码器需要串行地进行生成。图\ref{fig:17-10}(c) 中模型更进一步,第二个码器联合编码器和第一个解码器的表示进行生成,更充分地利用了已有信息。
\parinterval 另外一种多任务学习的思想是通过两个解码器,分别预测语音对应的源语言句子和目标语言句子,具体有图\ref{fig:17-10}展示的三种方式\upcite{DBLP:conf/naacl/AnastasopoulosC18,DBLP:conf/asru/BaharBN19}。图\ref{fig:17-10}(a)中采用单编码器-双解码器的方式,两个解码器根据编码器的表示,分别预测源语言句子和目标语言句子,从而使编码器训练地更加充分。这种做法的好处在于源语言的文本生成任务可以辅助翻译过程,相当于为源语言语音提供了额外的“模态”信息。图\ref{fig:17-10}(b)则通过使用两个级联的解码器,先利用第一个解码器生成源语言句子,然后再利用第一个解码器的表示,通过第二个解码器生成目标语言句子。这种方法通过增加一个中间输出,降低了模型的训练难度,但同时也会带来额外的解码耗时,因为两个解码器需要串行地进行生成。图\ref{fig:17-10}(c) 中模型更进一步,第二个码器联合编码器和第一个解码器的表示进行生成,更充分地利用了已有信息。
%----------------------------------------------------------------------------------------------------
\begin{figure}[htp]
\centering
......
......@@ -55,18 +55,18 @@
\item 机器翻译可以与文档解析、语音识别、光学字符识别(OCR)和视频字幕提取等技术相结合,丰富机器翻译的应用模式。具体的:
\begin{itemize}
\item 文档解析技术可以帮助实现Word文档翻译、PDF文档翻译、WPS 文档翻译、邮件翻译等更多格式文档自动翻译的目标,也可以作为插件嵌入到各种办公平台中,成为智能办公好助手。
\item 文档解析技术可以实现Word文档翻译、PDF文档翻译、WPS 文档翻译、邮件翻译等更多格式文档自动翻译的目标,也可以作为插件嵌入到各种办公平台中,成为智能办公好助手。
\item 语音识别与机器翻译是绝配,语音翻译用途广泛,比如翻译机、语音翻译APP和会议AI同传应用。但目前存在一些问题,比如很多实际应用场景中语音识别效果欠佳,造成错误蔓延,导致机器翻译结果不够理想;另外就算小语种的语音识别效果很好,但资源稀缺型小语种翻译性能不够好,最终的语音翻译效果就不会好。
\item OCR技术可以帮助实现扫描笔和翻译笔的应用、出国旅游的拍照翻译功能,将来还可以与穿戴式设备相结合,比如智能眼镜等等。视频字幕翻译能够帮助我们欣赏没有中文字幕的国外电影和电视节目,比如到达任何一个国家,打开电视都能够看到中文字幕,也是非常酷的应用。
\item OCR技术可以帮助实现扫描笔和翻译笔的应用、出国旅游的拍照翻译功能,将来还可以与穿戴式设备相结合,比如智能眼镜等等。视频字幕翻译能够帮助我们观看没有中文字幕的国外电影和电视节目,比如到达任何一个国家,打开电视都能够看到中文字幕,也是非常酷的应用。
\end{itemize}
上面提到的机器翻译技术大多采用串行流水线,只是简单将两个或者多个不同的技术连接在一起,比如语音翻译过程可以分两步:语音识别和机器翻译。其它翻译模式也大同小异。简单的串行流水线技术框架的最大问题是错误蔓延,一旦某个技术环节的准确率不高,最后的结果就不会太好($90\% \times 90\%=81\% $)。并且,后续的技术环节不一定有能力纠正前面技术环节引入的错误,最终导致用户体验不够好。很多人认为,英中AI会议同传用户体验不够好,问题出在机器翻译技术上。其实,问题主要出在语音识别环节。学术界正在研究的端到端的机器翻译技术,不是采用串行流水线技术架构,而是采用一步到位的方式,这理论上能够缓解错误蔓延的问题,但目前的效果还不够理想,期待学术界取得新的突破。
\item 机器翻译技术可以辅助人工翻译。即使双语句对训练集合规模已经非常大、机器翻译技术也在不断优化,但机器翻译的结果仍然不可能完美,出现译文错误是难免的。如果我们想利用机器翻译技术辅助人工翻译,比较常见的方式是译后编辑,即由人对自动译文进行修改(详见{\chapterfour})。这就很自然地产生了两个实际问题:第一个问题是,自动译文是否具有编辑价值?一个简便的计算方法就是编辑距离,即人工需要通过多少次增、删、改动作完成译后编辑。其次数越少,说明机器翻译对人工翻译的帮助越大。编辑距离本质上是一种译文质量评价的方法,可以考虑推荐具有较高译后编辑价值的自动译文给人工译员。第二个问题是,当机器翻译出现错误,且被人工译后编辑修正后,能否通过一种有效的错误反馈机制帮助机器翻译系统提高性能。学术界也有很多人研究这个问题,目前还没有取得令人满意的结果。除此之外,还有一些问题,如人机交互的用户体验,该需求很自然地带起了交互式机器翻译技术(详见{\chaptereighteen})研究的热潮,希望在最大程度上发挥人机协同合作的效果,这个也是值得研究的课题。
\end{itemize}
\parinterval 接下来,简单谈谈笔者对第四代机器翻译技术发展趋势的看法。通常,我们分别将基于规则的方法、统计机器翻译和神经机器翻译称为第一、第二和第三代机器翻译技术。有人说,第四代机器翻译技术会是基于知识的机器翻译技术;也有人说,是无监督机器翻译技术或者新的机器翻译范式,等等。在讨论第四代机器翻译技术这个问题之前,我们先思考一个问题:在翻译品质上,新一代机器翻译技术是否应该比目前的好?现在的实验结果显示,比如拿商用的英汉汉英新闻机器翻译系统举例,经过几亿双语句对的训练学习,机器翻译译文准确率的人工评估得分可以达到$80\%-90\%$$100\%$为满分,值越高说明译文准确率越高),那我们需要回答的一个简单问题是:所谓的第四代机器翻译技术准备在新闻领域翻译达到怎样的准确率呢?只比现在高$2$$3$个百分点,达到$92\%$或者$93\%$这一结果,估计无法获得新一代机器翻译技术这一称谓。
\parinterval 接下来,简单谈谈笔者对第四代机器翻译技术发展趋势的看法。通常,我们分别将基于规则的方法、统计机器翻译和神经机器翻译称为第一、第二和第三代机器翻译技术。有人说,第四代机器翻译技术会是基于知识的机器翻译技术;也有人说,是无监督机器翻译技术或者新的机器翻译范式,等等。在讨论第四代机器翻译技术这个问题之前,我们先思考一个问题:在翻译品质上,新一代机器翻译技术是否应该比目前的好?现在的实验结果显示,商用的英汉汉英新闻机器翻译系统,经过几亿双语句对的训练学习,机器翻译译文准确率的人工评估得分可以达到$80\%-90\%$$100\%$为满分,值越高说明译文准确率越高),那我们需要回答的一个简单问题是:所谓的第四代机器翻译技术准备在新闻领域翻译达到怎样的准确率呢?只比现在高$2$$3$个百分点,达到$92\%$或者$93\%$这一结果,估计无法获得新一代机器翻译技术这一称谓。
\parinterval 从历史发展观的维度考虑,新一代的技术必然存在,换句话说,第四代机器翻译技术一定会出现,只是不知道在什么时候而已。神经机器翻译的红利还没有被挖尽,还存在很好的发展空间,在可预期的将来,神经机器翻译技术还属于主流技术,但会产生大量变种。我们愿意把新一代机器翻译技术称为面向具体应用场景的第四代机器翻译技术,它在本质上是针对不同应用条件、不同应用场景提出的能力更强的机器翻译技术。它将不是一个简单的技术,而是一个技术集合,这是完全可能的。从另一方面讲,当前的机器翻译不具有很好的解释性,其与语言学的关系并不明确。那么在第四代机器翻译技术中,是否能让研究人员或使用者更方便地了解它的工作原理,并可以根据其原理对其进行干预。甚至,我们还可以研究更合理的面向机器翻译解释性的方法,笔者相信这也是未来需要突破的点。
......
......@@ -52,7 +52,7 @@
\node [secnode,anchor=south west,fill=cyan!20,minimum width=14.0em,align=center] (sec13) at ([yshift=0.5em,xshift=0.5em]part4.south west) {第十三章\hspace{1em} 神经机器翻译模型训练};
\node [secnode,anchor=west,fill=cyan!20,minimum width=14.0em,align=center] (sec14) at ([xshift=0.6em]sec13.east) {第十四章\hspace{1em} 神经机器翻译模型推断};
\node [secnode,anchor=south west,fill=green!30,minimum width=9em,minimum height=4.5em,align=center] (sec15) at ([yshift=0.8em]sec13.north west) {第十五章\\ 神经机器翻译 \\ 结构优化};
\node [secnode,anchor=south west,fill=green!30,minimum width=9em,minimum height=4.5em,align=center] (sec16) at ([xshift=0.8em]sec15.south east) {第十六章\\ 低资源 \\ 神经机器翻译};
\node [secnode,anchor=south west,fill=green!30,minimum width=9em,minimum height=4.5em,align=center] (sec16) at ([xshift=0.8em]sec15.south east) {第十六章\\ 低资源神经 \\ 机器翻译};
\node [secnode,anchor=south west,fill=green!30,minimum width=9em,minimum height=4.5em,align=center] (sec17) at ([xshift=0.8em]sec16.south east) {第十七章\\ 多模态、多层次 \\ 机器翻译};
\node [secnode,anchor=south west,fill=amber!25,minimum width=28.7em,align=center] (sec18) at ([yshift=0.8em]sec15.north west) {第十八章\hspace{1em} 机器翻译应用技术};
\node [rectangle,draw,dotted,thick,inner sep=0.1em,fill opacity=1] [fit = (sec13) (sec14)] (nmtbasebox) {};
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论