CSND
2015-07-04 18:35:22 ailsaluo 阅读数 346
  • Mikrotik RouterOS 软路由基础教程

    基础课程,给大家对Mikrotik RouterOS 有一个基础的认识,并且对于新入门的网络管理人员,网络工程师来说,提供更快速更好的开箱即用的技术交付。 降低网络管理的工作强度,提升工作的效率。 通过学习,朋友们能自行横向对比思科,华为,还有一些国内的企业路由的,理解Mikrotik 路由器的实际优势。 本教程带了基础的原理讲解和实例操作,在我的博客里面都有对应的文章,欢迎大家CSND博客里面留言提问,一起成长。

    289 人正在学习 去看看 梁灿
第一天,知道了CSND的意思是
China Software Developer Network
IT路很长 我努力!!!!
2018-05-14 21:41:55 shichaog 阅读数 6500
  • Mikrotik RouterOS 软路由基础教程

    基础课程,给大家对Mikrotik RouterOS 有一个基础的认识,并且对于新入门的网络管理人员,网络工程师来说,提供更快速更好的开箱即用的技术交付。 降低网络管理的工作强度,提升工作的效率。 通过学习,朋友们能自行横向对比思科,华为,还有一些国内的企业路由的,理解Mikrotik 路由器的实际优势。 本教程带了基础的原理讲解和实例操作,在我的博客里面都有对应的文章,欢迎大家CSND博客里面留言提问,一起成长。

    289 人正在学习 去看看 梁灿

CSND已永久停更,最新版唯一来源点击下面链接跳转:

语音增强和语音识别网页书

 

有如下几个原因使得唤醒词识别具有难度

1.低功耗;

2.低成本;占用的运算资源少,包括cpu以及memory资源;

3.连续语音识别;

4.场景较为复杂;噪音(办公,居家,电视,自然,电器),远场(增强,波束),方言,口音(儿童,男、女)等

5.训练的语料集合

 

 

本文就唤醒词的理解和Amazon,sensory以及Apple,google,公开的唤醒词方法做个梳理

sensory

比较封闭的一家公司,sensory在树莓派上一个公开的数据是:

(采样率16KHz,16bit,ARMv7with neon)

 

在2018年5月其又推出不需要硬件加速的唤醒技术。

Apple

其在2017年10月发了篇文章讲述其在Applewatch和iPhone上的实现,2018年苹果也出了音响,是远场的,唤醒以及音效都挺好,文章讲述的是hey,Siri的识别技术,那时的技术基于DNN方法,将时域语音转到特征域,然后对特征进行模型的前向计算以获得概率分布,最终确定唤醒的概率。

采样率也是采用16KHz,对语音进行分段做STFT,段长约10ms。大约200ms时长的语音被送入声学模型中,DNN计算后语音特征被映射到预先分类好的声学特征类中,大约有20个类别。DNN模型主要包括的就是矩阵乘法(对于无浮点或者功耗考虑是可以进行量化的)非线性运算(也有的模型还需要采用normalization,最后一层的非线性常常采用softmax进行分类(mcu级别的也可以对其进行简化)

Hey Siri的识别模型如下:

 

 

 

 

 

其hiddenlayer的层数通常采用五层,神经元的size取相同的,根据不同的硬件配置选择32,128或者192.该模型最后映射的是声学模型计算的发音概率,这里的发音不是音素级别的,也不是指单词级别的,而是介于音素和单词之间的多个音素的结合体(是音节或者比音节更大一些),在汉语中基本上一个汉子就是一个音节,音节有声母和韵母组成,汉语无音调音节有400多个,带语调的有1300多个。为了便于识别,Apple选的词siri(['si:ri])的前后元音都在里面。

个人觉得 这个选择非常务实,非常为用户考虑。

 

而且选择了两个谐振较为明显的前后元音。那么基于音节粒度的识别会存在一个问题,200ms没法把完整的”HeySiri”的特征全部囊括进去,但是这里softmax的输出却是指明有没有唤醒,这通过增加RNN层(黄色的两层)来实现的,这样就保留的序列的时间关联性。RNN层的实现如下:

$$F_{i,t}=max{s_i+F_{i,t-1},m_{i-1}+F_{i-1, t-1}}+q_{i,t}$$

其中:

F_{i,t}是声学模型累计得分值,q_{i,t}是声学模型输出(音节的对数得分),s_i是处在状态i的代价,m_i是从状态i转移的代价。s_i和m_i是根据训练集中数据分段时长确定的(和HMM的状态转移类似)。

 

公式的实现如上图。手机上的完整实现如下:

 

 

 

 

google

唤醒词“okgoogle”,据说是根据《SMALL-FOOTPRINTKEYWORD SPOTTING USING DEEP NEURALNETWORKS》这篇文章,不过google出了好几篇文章,并且为了推广他们的tensorflow,自带了kws的例子,其基于词级别的识别。识别架构如下:

 

为了减少功耗,这里多了一个VAD模块,将13维的PLP特征及其一阶和二阶delta值输入训练过的有30个分量(正交基)的对角协方差GMM模型,该模型的输出就是是否是语音,然后之后会外接一个滑动处理的状态机。

当VAD模块检测到是语音的时候,对25ms的语音数据计算40维的log-fbank,滑动窗长选择了10ms。

其对后验概率的处理以及平滑策略有些差异。

其它常用网络模型

 

由于CNN能够处理更细节的时频信息;所以在很多场景中都会遇到使用CNN的场景,但是CNN有个比较大的缺点就是计算量大,所以会使用depth-wise之类的变种以降低运算量,在实际使用中也有将多个模型混合在一起使用,比如CNN+RNN,DNN+RNN,RNN有LSTM和GRU结构。除了上面的模型还有基于CTC的kws识别网络。相关的paper都有。我绝对对于入门者而言,不应该问“到底那种网络结构好”这类的问题。

NN方法的个人理解

 

在上述网络结构图中,出现的最多的就是圆圈,这些圆圈基本就是矩阵乘加以及非线性运算。这些圈的背后意义我的理解是:正交基

    太阳光照射的物理反射和自身颜色一样的光而吸收(不会完全吸收)其它颜色的光,如果要问一个辣椒(假设只有红色,黄色和绿色)是什么颜色的,那么就可以用x,y,z三个正交基来分别表示红色,黄色和绿色,我们可以采集辣椒反射的太阳光谱,分别求反射光谱属于x,y,z三个坐标轴上的值,可以知道对于红色辣椒,其得到的x分量肯定大于y,z方向上的分量。对于其它颜色的辣椒类似。则一个辣椒的颜色就可以使用具有三个正交基解决。这是可以把网络的输入看成是光谱的特征,圈圈表示的网络就是在提取其在三个正交基x,y,z上的分量,最后的非线性输入就是惩罚和奖励各个正交基上的分量。

 

对于七色的物理颜色识别问题,则可以使用具有七个正交基来解决。对于使用音节做为识别单位的ASR系统可以使用1300(中文约有1300个带声调的音节)个正交基来识别。所以所有的问题都可以划分为找到正确的正交基数量,并且让其正交。

 

回到网络模型中的圈圈,这些圈圈之间可以是正交的,层于层之间的圈圈也可以正交的,所以可以知道对于一个每层具有64个圈圈(神经元),共三层的这种层级的结构可达的正交基的数量是:

64*64×64(1层和2层)这么多个正交基,在网络模型训练时会采用非线性隔开层与层之间的强联系,所以正交基的数量约有64*64*2这么多,这么一个小小的模型就有这么多正交基已经非常不错了。

现在的正交基获取方式是使用Adam,SGD随机梯度方法+训练数据的方法,由于数据并不能涵盖显现实生活中的所有场景(所有正交基),也有方法弥补SGD方法的不足,如dropout,normalization等,但是这使得得到的正交基大大折扣。

针对语音场景弥补正交基不足现在采用的方法主要是前端语音增强,外加追求覆盖使用场景的语料,以及模型改进,语音增强主要就是抑制噪声,混响以及自身音源的影响,追求覆盖使用场景的语料一方面是录一方面是针对使用场景的人为加噪声。如何在模型上改进也是值得尝试的,如早期使用DNN方法,后来使用CNN+DNN就是人为减小了获取正交基的难度,模型的改进牵涉到特征的选取,时频特征现在是基本都会采用的特征,那么时域到频域的窗长该如何选择,窗长滑动该如何选取,加噪声的影响,使用MFCC还是log-fbank。

当然还要考虑的一个非常重要的影响就是实现的硬件平台的资源情况,谁都知道对于kws场景两层CNN要比不用CNN好,但是增加的参数量和运算量可是可能翻了翻,尽管使用了如8比特量化,利用硬件的SIMD特性,有些场景还是无法使用的。

2011-09-08 18:26:33 javaxiongxing 阅读数 265
  • Mikrotik RouterOS 软路由基础教程

    基础课程,给大家对Mikrotik RouterOS 有一个基础的认识,并且对于新入门的网络管理人员,网络工程师来说,提供更快速更好的开箱即用的技术交付。 降低网络管理的工作强度,提升工作的效率。 通过学习,朋友们能自行横向对比思科,华为,还有一些国内的企业路由的,理解Mikrotik 路由器的实际优势。 本教程带了基础的原理讲解和实例操作,在我的博客里面都有对应的文章,欢迎大家CSND博客里面留言提问,一起成长。

    289 人正在学习 去看看 梁灿

 大家好

很高兴驻站CSND,很高兴认识你们!

2019-02-14 09:46:55 yelang10000 阅读数 69
  • Mikrotik RouterOS 软路由基础教程

    基础课程,给大家对Mikrotik RouterOS 有一个基础的认识,并且对于新入门的网络管理人员,网络工程师来说,提供更快速更好的开箱即用的技术交付。 降低网络管理的工作强度,提升工作的效率。 通过学习,朋友们能自行横向对比思科,华为,还有一些国内的企业路由的,理解Mikrotik 路由器的实际优势。 本教程带了基础的原理讲解和实例操作,在我的博客里面都有对应的文章,欢迎大家CSND博客里面留言提问,一起成长。

    289 人正在学习 去看看 梁灿

      作为程序员,第一句还是经典的Hello World 。首次使用CSND写博客,分享自己工作生活中自己有价值的技术点或者生活趣事。我相信技术的价值在于分享。人不能只会索取别人,还要学会给与。

2019-09-23 01:09:51 qq_42240333 阅读数 14
  • Mikrotik RouterOS 软路由基础教程

    基础课程,给大家对Mikrotik RouterOS 有一个基础的认识,并且对于新入门的网络管理人员,网络工程师来说,提供更快速更好的开箱即用的技术交付。 降低网络管理的工作强度,提升工作的效率。 通过学习,朋友们能自行横向对比思科,华为,还有一些国内的企业路由的,理解Mikrotik 路由器的实际优势。 本教程带了基础的原理讲解和实例操作,在我的博客里面都有对应的文章,欢迎大家CSND博客里面留言提问,一起成长。

    289 人正在学习 去看看 梁灿

我们按惯例来讲,先讲讲Markdown是什么,然后后面是一个自己练习的教程,不过由于CSND已经帮我们把基本所有的语法都放在了他的“帮助文档”里,基本上我们编辑文档只需要翻到相应的位置就可以得到对应的Markdown实例,但是由于我个人还在其他地方也用到Markdown,所以介绍完以后 还有继续把Markdown的用法简单使用一下。

Markdown简介

Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。

由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、reddit、Diaspora、Stack Exchange、OpenStreetMap 、SourceForge等。甚至Markdown能被使用来撰写电子书。

CommonMark

从2012年开始,包括Jeff Atwood和John MacFarlane在内的一群人启动了标准化工作。一个社区网站现在旨在“记录可用于文档作者和开发人员的各种工具和资源,以及各种markdown实现的实现者 “。 2014年9月,Gruber反对在这一工作中继续使用”Markdown“这个名字,其被更名为CommonMark 。CommonMark.org发布了规范、参考实现和测试包的几个版本,以及 “[计划]在2018年宣布最终的1.0规范和测试包。

GFM

2017年,GitHub发布了基于CommonMark的GitHub Flavored Markdown(GFM)的正式规范。除了表格、删除线、自动链接和任务列表被GitHub规范作为扩展添加之外,它遵循CommonMark规范。 GitHub还相应地更改了其站点上使用的解析器,这要求更改某些文档 - 例如,GFM现在要求创建标题的哈希符号由空格字符分隔。

Markdown Extra

Markdown Extra是一种轻量级标记语言,基于在PHP(最初)、Python和Ruby中实现的Markdown。它添加了普通Markdown语法不具备的功能。内容管理系统支持Markdown Extra,例如Drupal,TYPO3和MediaWiki。

它为Markdown添加了以下功能:

HTML块内的markdown标记
具有id / class属性的元素
围栏代码块
表格
定义清单
脚注
缩写

以上来自维基百科——Markdown


接下来就是Markdown 的各个指令的使用示例了。

1.标题

Markdown支持六级标题,在排版的时候 用“#”来确定是第几级标题。

# 一级标题

## 二级标题

### 三级标题

#### 四级标题

##### 五级标题
###### 六级标题

文本样式

强调文本
加粗文本
标记文本
删除文本

引用文本

列表

  • 主列表
    • 副列表
      • 副副列表
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

连接

百度一下
Wings32的个人主页

Alt
图片居中,在网址后面加“#pic_center”
Alt
再在后面 加“=像素x像素”就可以使得图片呈居中且改变图片大小
Alt

代码片

可以设定是什么语言的代码片

def hello_world():
	print('hello world')
hellp_world()

表格

项目 价格
电脑 1000¥
手机 500¥
30¥

LaTex 数学公式

Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N

Γ(z)=0tz1etdt. \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

插入甘特图

即 在代码框 用的是 mermaid 的文本格式

Mon 06Mon 13已完成 进行中 计划中 现有任务Adding GANTT diagram functionality to mermaid

插入UML图

张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

插入Mermaid流程图

链接
长方形
圆角长方形
菱形
圆形

插入Flowchart流程图

Created with Raphaël 2.2.0开始s = s+1y = y-1确认?结束yesno

csnd 我来了!

阅读数 467

WebRTC语音处理

阅读数 6688

没有更多推荐了,返回首页