-- AI:计算机视觉、语音识别、NLP (Natural Language Processing) 
  人工智能正从比较初级的计算智能向更高层次的智能过渡。更高层次的智能包括 3 个阶段:感知(perception)智能,计算机视觉(computer vision),认知(cognition)阶段,
  第一个阶段是感知(perception)智能,机器要听得见、看得见。听得见是我们常说的语音识别,机器把人说的一句话,由声音信号转化成文字信息。
  然后,就是视觉,计算机视觉(computer vision),它能够看到东西,能够分辨一些人脸,或者是物体,甚至一些情绪之类的变化。
  通过感知阶段后,人工智能进入下一个认知(cognition)阶段。机器开始能够理解一些内容。比如说语音识别,机器只是识别出了这个文字,但它不能真正知道人要表达什么信息。这里涉及对自然语言理解。

-- 语音识别技术:矢量量化VQ,隐马尔科夫模型HMM 等
  目前主流的语音识别系统普遍采用基于深度神经网络和隐马尔可夫(Deep Neural Networks-Hidden Markov Model,DNN-HMM)的声学模型。声学模型的输入是传统的语音波形经过加窗、分帧,然后提取出来的频谱特征,如 PLP, MFCC 和 FBK等。而模型的输出一般采用不同粒度的声学建模单元,例如单音素 (mono-phone)、单音素状态、绑定的音素状态 (tri-phonestate) 等。从输入到输出之间可以采用不同的神经网络结构,将输入的声学特征映射得到不同输出建模单元的后验概率,然后再结合HMM进行解码得到最终的识别结果。
  最先进的语音技术方案大多都是以语音为基础的(phonetic-based),包括发音模型(Pronunciation models),声学模型(Acoustic Modelling)和语言模型(Language Model)等。通常情况下,这些模型大多都是以隐马尔可夫模型(HMM)和 N-gram 模型为核心的。
  语音识别方面主要用的网络是lstm和rnn网络,难点在于语音的分离,比如鸡尾酒会问题

-- 语音识别研究与应用

  科大讯飞和百度语音识别。
  阿里巴巴达摩院机器智能实验室开源了新一代语音识别模型DFSMN,将全球语音识别准确率纪录提高至96.04%。这一数据测试基于世界最大的免费语音识别数据库LibriSpeech。对比目前业界使用最为广泛的LSTM模型,DFSMN模型训练速度更快、识别准确率更高。采用全新DFSMN模型的智能音响或智能家居设备,相比前代技术深度学习训练速度提到了3倍,语音识别速度提高了2倍。
  Firefox 浏览器背后的开发团队正在推出 Common Voice (https://voice.mozilla.org/zh-CN).
  Facebook AI 研究院近日开源了一款简单高效的端到端自动语音识别(ASR)系统 wav2letter,wav2letter 实现的是论文 Wav2Letter: an End-to-End ConvNet-based Speech Recognition System (https://arxiv.org/abs/1609.03193) 和 Letter-Based Speech Recognition with Gated ConvNets (https://arxiv.org/abs/1712.09444)中提出的架构。

两大底层矩阵库之一,是支撑开源语音社区的基石. https://github.com/xianyi/OpenBLAS-- 双麦阵列

   双麦阵列,双麦克风阵列,双麦阵列XFM10213降噪模块.双麦克风阵列,顾名思义在录音系统上只使用了2个麦克风。谷歌Home就采用了双麦克风的硬件配置.亚马逊Echo,谷歌Home,小度音箱。 智能家居。
   麦克风阵列入门-
  双麦克风阵列的效果是不是差很多呢?这取决于算法体系。双麦克和多麦克采用的技术路线虽然有类似之处,但算法体系存在较大区别。
由于麦克风越多越容易实现更好的降噪和语音增强效果,所以为了达到同样或者类似的效果,双麦克阵列技术相对多麦克阵列的算法技术挑战性更高。
  麦克风阵列其实就是一个声音采集的系统,该系统使用多个麦克风采集来自于不同空间方向的声音。麦克风按照指定要求排列后,加上相应的算法(排列+算法)就可以解决很多房间声学问题,比如声源定位、去混响、语音增强、盲源分离等。

  早在20世纪70、80年代,麦克风阵列已经被应用于语音信号处理的研究中,进入90年代以来,基于麦克风阵列的语音信号处理算法逐渐成为一个新的研究热点。而到了“声控时代”,这项技术的重要性显得尤为突出。
  在频率响应中也可以根据时域中波束形成与空间滤波器相仿的应用,分析出接收到语音信号音源的方向以及其变化。而这些分析都可以由极坐标图以波束形式来显示语音信号的强度与角度。
  通常在手机(如苹果iPhone、三星Galaxy系列等)和电脑(如联想小Y系列等)中常采用。采用该技术,能利用两个麦克风接收到声波的相位之间的差异对声波进行过滤,能最大限度将环境背景声音清除掉,只剩下需要的声波。对于在嘈杂的环境下采用这种配置的设备,能使听者听起来很清晰,无杂音。
  麦克风阵列与天线阵列不同的。

  能够解决的实际问题:噪声抑制。回声抑制。去混响。单或多声源定位。声源数目估计。源分离。鸡尾酒会效应。

> 语音数据样本
  VoxForge 是一个非常活跃的众包语音识别数据库和经过训练的模型库)。

基于 Julius 的语音识别样例- https://github.com/julius-speech/dictation-kit。
从人群中采集音频样本的开源项目,大约要收集 10,000 小时包含各种口音的音频。- https://github.com/mozilla/voice-web
  开源数据规模达1000小时的目前全球最大中文开源数据库AISHELL-2,并配套研发了更优秀的系统级recipe,AISHELL-2还配备了一套evaluation数据集,TEST&DEV数据包含了iOS、Android、高保真Mic三种设备,能使实验测试更科学和多样性。AISHELL-2数据库开源。
  中文开源数据库AISHELL-2- https://github.com/kaldi-asr/kaldi/tree/master/egs/aishell2

海量数据或用户数据。垂类。出行相关的一些垂直领域,涉及查询地点、酒店、餐馆、火车票、飞机票相关的信息,团队采集了大量这些领域的数据。

> 语音识别开源技术:Kaldi,openFst,OpenGrm,开源的语音识别工具:CMU Sphinx,Kaldi,HTK,Julius 和 ISIP 等

  五款基于 HMM 和 N-gram 模型的语音识别工具:CMU Sphinx,Kaldi,HTK,Julius 和 ISIP。它们都是开源世界的顶级项目,与 Dragon 和 Cortana 等商业语音识别工具不同,这些开源、免费的工具可以为开发者提供更大的自由度以及更低的开发成本,因此在开发圈始终保持着强大的生命力。
  1. Kaldi- https://github.com/tramphero/kaldi   Kaldi第三届线下技术交流会- https://www.lieyunwang.com/archives/444470

 Kaldi是目前全球最受欢迎的开源语音识别框架?Kaldi同样支持了开源的MRCP协议-unimrcp, 它可以作为一个邀请支持各种媒体资源的处理。
 Kaldi是一个免费的,开源的工具箱用于语音识别研究。Kaldi提供基于有限状态变换器(finite-state transducers,使用OpenFst)的语音识别系统
 Kaldi使用C++编写,核心库支持任何语音上下文大小的建模,子空间的高斯混合模型(SGMM)以及标准的高斯混合模型的声学模型建模,以及所有经常使用的线性变换和仿射变换。Kaldi源码以Apache License V2.0协议发布。
  Kaldi是一个非常强大的语音识别工具库,主要由“灵魂人物”Daniel Povey开发和维护,目前支持GMM-HMM、SGMM-HMM、DNN-HMM等多种语音识别的模型的训练和预测。其中DNN-HMM中的神经网络还可以由配置文件自定义,DNN、CNN、TDNN、LSTM以及Bidirectional-LSTM等神经网络结构均可支持,目前是Github上十分活跃的项目之一,很多国内外语音类技术公司的研发测试都是基于Kaldi做初始起步。
  kaldi还有基于iVector的说话人和环境自适应模型,可以提升整个语音识别系统的鲁棒性。以及语言模型(RNNLM),使用RNN语言模型做Rescoring,能更好地对长相关的单词做建模。kaldi的主流声学模型:Chain model,在公开数据集上WER能相对降低6%~8%,训练准则从CE+sMBR变成LF-MMI,能够实现三倍帧率的训练和解码,同时支持tdnn/lstm/rnn网络结构。
  基于Kaldi的声纹识别实践,快商通的核心技术是做声纹识别,先后基于Kaldi尝试了从i-vector(声学特征)、dnn ubm /i-vector基于端到端深度学习的说话人信息提取声纹识别主流方法,最终形成嵌入式的技术路线,目前正着力推动声纹识别技术在城市物联网、金融场景、公安司法、交通、医疗、教育等领域的应用方案快速落地。

  自动语音识别(Automatic speech recognition,ASR)的研究者可以有多种开源工具箱的选择用于构建一个识别系统。著名的有:HTK,Julius(这两种C语言实现),Sphinx-4(Java语言识别),RWTH ASR工具箱(C++实现)。Kaldi的主要用途是声学模型研究,因此,最相近的竞争者是HTK和RWTH ASR工具箱(RASR)。 DNN / HMM语音识别系统
  但是,对于Kaldi的特定需要: finite-state transducer(FST),扩展的线性代数支持和non-restrictive license,导致Kaldi的开发。

Kaldi包含的重要特性:
- 集成Finite State Transducer(编译OpenFst工具箱,作为一个库)
- 扩展的线性代数支持
- 可扩展设计
- 开源的license —— Apache v2.0, 最小限制的开源协议
- 完整的方法 —— Kaldi提供了完整的方法用于构建语音识别系统
- 周密的测试 —— 基本上所有的代码都有相应的测试例程

Kaldi工具箱:
1. Kaldi代码结构和设计选择,包括语音识别系统的各个部件介绍
2. 特性提取介绍
3. 声学模型
4. 语音决策树
5. 语言模型
6. 解码器(decoder)
7. 简要介绍基准结果

  2. openFst- http://www.openfst.org/twiki/bin/view/FST/FstQuickTour FST(finite-state transducers,有限状态机)
  openFST(FST在语音识别中的应用:语言模型文法、发音词典、上下文相关声学单元、HMM都可以用FST来表示;将它们复合在一起构成HCLG.fst与viterbi联合,可用来做语音识别的解码)。

- 安装openfst
sudo yum install openfst openfst-devel opengrm-ngram opengrm-ngram-devel
wget http://openfst.cs.nyu.edu/twiki/pub/GRM/ThraxDownload/thrax-1.1.0.tar.gz
tar xfv thrax-1.1.0.tar.gz
cd thrax-1.1.0
./configure
sudo make install