Java教程

牛叉的无监督语音识别模型

本文主要是介绍牛叉的无监督语音识别模型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

今年五月份facebook推出了语音识别wav2vec的无监督版本,感觉很厉害的样子。想起多年前,实验室里,研究语音识别的师兄师姐到处收集语音样本,甚至自己录音,然后花很多时间处理样本。那无监督的语音识别是不是就不用那么麻烦了。虽然没有研究过语音识别,不过这个无监督还是蛮诱人的,于是就阅读了一下是怎么回事。   读完后第一感觉就是,很有创意。论文的细节就不去讨论,我们就去intuition方面来聊一聊,无监督的语音识别是否具有可行性,wav2vec-u是不是真的可以。   wav2vec-u 要解决的问题是用一个语音库和一个文本库训练出一个语音识别的模型。问题的核心是语音库和文本库没有映射关系,也就是没有传统语音识别所需要的语音集以及相应的字幕文本集。听上去很厉害是不是的。特别是如果这个模型可行,那数据随手可以拿,文本可以是wiki的文本,新闻文本; 录音可以是任何录音,会议录音和有声书等大量资源可取。对于小语种,如果这个模型可能,大大减少了数据成本。   那理论上这个到底可行否? 我有个习惯,如果要问机器可以做到否,我经常会先问,人可以不可以做到。hmm,让人学会看字,然后脱离文字学会听说,最后看看能不能自己找到映射关系,可以吗。问题是,我们学语言不是这么学的,所以真的不知道是不是可以。   接着我又想到了我自己的经历。我有英文阅读的习惯,所以我看懂的单词比会说的单词(发音准确)多很多,虽然很多单词不太确定发音如何,但不妨碍我听英文书,因为在某个上下文语境下,听到的不太确定的单词发音会映射到那个语境下的书写单词,于是就听懂了。基于这样一个事实,语音识别可以做到是 如果数据集中某些单词没有对应的文本,模型还是可以工作的。   但还是没有回答最初的问题,如果所有发音都不知道,可以做到不。   最近看小学生的数学题时候,正好找到了几个例子,可以帮助我们回答这个问题。 这个数学,大家相信都可以解答出来。花朵就好比语音,而数字好比文本。数字以及加减乘除关系清楚,就好比文本我们都认识了,而给出的式子正好是某些映射以及对应的上下文,好比我听英文书的例子,是可以很容易实现。 而当映射关系完全没有了时候,就变成以下的数学题了。

 

 

既然已经说是数学题了,也就是说可解的。

  

但我们也不能很放心的宣布,无监督的语音识别模型是可以完美解决的的。无监督语音识别的数据集和这个数学题是有区别的。主要区别就是文字多,组合多变,语义多变,多音字等,和数学公式比起来复杂度数量级不是差几个。因为组合的多变,并不是所有的发音都可以找到对应的文本,所以模型也就有局限性。

 

那wav2vec-u到底是如何工作的呢。其实也是蛮好理解的,base是一个GAN模型,以语音数据为源做generator来生成文本,然后用文本库做discriminator来仲裁这个识别是不是对的。generator和discriminator都是复杂的神经网络,通过对抗的学习,来完美这个模型。问题就是如果一句话的发音凑巧映射到完全不搭边的说得通的文本,那discriminator也是发现不出来的,那可能就有点麻烦了。如果两边的数据都不够充分,这个是很容易发生的。 (来自Facebook网页) 当然Facebook自己也说了,这个模型只是验证了一个方向,它的质量和几年前的有监督学习模型差不多。但好处就是模型的成本降低很多,不仅在数据方面,即使在模型训练方面与其他SOTA语音模型或语言模型比起来小很多。 当然模型本身也有可以提高的空间。毕竟这还是第一稿。 论文的细节很多,也用到了wav2vec前几个版本的技术。建议做语音识别的DS们都读一下这个系列。 另外,Facebook自己的AI网页上的视频很好的解释了模型是如何工作的。https://ai.facebook.com/blog/wav2vec-unsupervised-speech-recognition-without-supervision/

 

阅读更多作者原创,关注微信公众号:  

 

 

这篇关于牛叉的无监督语音识别模型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!