首页 > 解决方案 > CTC:空格和空白有什么区别?

问题描述

在 2006 年关于连接主义时间分类的文章中,Alex Graves & co。介绍了一种解码语音的模型,有27个标签:26 个用于字母,一个用于空白,表示没有标签(我理解为静音)。

但是,我看到很多使用28个标签的 CTC 实现,一个是空白,另一个是空格。到目前为止,我还没有找到需要使用这两个标签的解释,对我来说,它们代表的是同一件事。

您能否解释一下 CTC 上下文中空白和空格之间的区别以及为什么需要这两个标签?

标签: speech-recognitionspeech-to-textspeechlabelingctc

解决方案


在连接主义时间分类中,空间只是一个空格,空白是“-”,我们用它来解决数据的重复出现。例如“pizza”将被编码为“piz-za”。

TLDR;

参考:https ://towardsdatascience.com/beam-search-decoding-in-ctc-trained-neural-networks-5a889a3d85a7

在 CTC 中存在如何对重复字符进行编码的问题。它通过引入一个伪字符(称为空白,但不要将其与“真正的”空白,即空白字符混淆)来解决。该特殊字符在正文中将用“-”表示。我们使用一种巧妙的编码模式来解决重复字符问题:在对文本进行编码时,我们可以在任意位置插入任意多个空格,这些空格在解码时会被删除。但是,我们必须在重复字符之间插入一个空格,例如“hello”。此外,我们可以随意重复每个字符。让我们看一些例子:“to”→“---ttttttooo”,或“-to-”,或“to”,“too”→“---ttttto-o”,或“-too-”,或“ to-o”,但不是“too” 如您所见,此模式还允许我们轻松创建相同文本的不同对齐方式,例如 “to”、“too”和“-to”都表示相同的文本(“to”),但与图像的对齐方式不同。NN 被训练以输出编码文本(在 NN 输出矩阵中编码)。


推荐阅读