Answers:
语音识别并不像您想象的那样复杂。
首先,想象一下创建一个进行文本识别的马尔可夫链(MC)。您的程序读取了一堆(完美无误的)文本并计算状态(单词)和状态更改(下一个单词)。听起来你已经把这个记下来了。现在,您可以生成文本,或者使用MC的状态和转换概率,给某些文本预测下一个单词。
现在,假设您想在语音中使用MC。您只需让人们阅读与您的MC相似的文本就可以了,对吗?好吧...除了他们将以不同的方式发音这些单词:书面文字说“土豆”的地方,您实际上会听到“ po-TAY-toh”,“ po-TAH-toh”和“ pu-TAY”反之亦然:文本“ ate”和“八个”表示两个不同的状态,但(通常)发音相同。
您的算法不再看到基本状态(单词),而是看到每个单词的发音概率分布。您原来的MC隐藏在发音的后面,现在您的模型需要两层。
因此,您可以吸引很多人大声朗读您用于原始培训的文本,可以获得每个单词的发音分布,然后将您的原始模型与发音模型结合起来,就得到了一个隐马尔可夫模型( HMM)。
大多数现实世界中的问题都会是这样,因为现实世界中往往会很吵。您实际上并不会知道某物处于什么状态。相反,您将获得每种状态的各种指标:有时针对不同状态(“ ate”和“八个”)使用相同的指示器,有时针对同一状态使用不同的指示器(“ pu-TAY-toe”和“ pah-tah-TOE”)。因此,HMM更适合实际问题。
[两个注意事项:1)实际的语音识别在音素级别而不是单词级别起作用,并且2)我相信HMM是语音识别的王者,但最近已被深度神经网络所废止。
从根本上讲,HMM是状态无法完全观察到的马尔可夫模型,而只能通过一些嘈杂的观测值间接观察到。马尔可夫模型部分是在状态中施加时间依存关系的简单方法。相应地,HMM有用的问题是状态遵循马尔可夫模型的问题,但是您不能直接观察状态。
HMM可以执行多种操作。您可以做的一件有用的事情如下-考虑到目前为止的一系列嘈杂的观察,也许您想知道系统最可能的当前状态是什么。为此,您可以将马尔可夫链结构与观察值适当地结合起来以推断状态。同样,您可以扩展它以从观察序列中推断出整个状态序列(这是标准的)。
在科学和工程领域,这种模型一直得到使用。例如,也许您正在录制像c这样的简单动物的视频。线虫(蠕虫),并且只有少量的离散行为状态。您想从视频中用动物的行为状态标记每一帧。从单个帧来看,标记算法具有一定的错误/噪声。但是,您也可以使用马尔可夫链进行时间依赖性...如果在一帧中动物处于一种状态,则下一帧可能处于同一状态(也许某些状态仅允许过渡)某些其他州)。基本上,通过将嘈杂的单帧观测值与过渡的结构(由HMM进行组合)相结合,可以获得状态平滑的,平滑的,约束更好的状态估计序列。