• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

cwilling

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

自然语言第二课(语言辨识)

如何做语音辨识呢

  我们需要一个model或者一个Function,它的输入语音信号,它的输出就是文字。

  对于一个语音辨识系统而言,它输入和输出的语音和表示被表示成什么呢?

    输入的声音会被表示成为一串的向量,它的强度用T来表示,它的dimension(尺寸)用d表示。

      输出的文字会被表示成为一串token(标志,象征),它的长度用N来表示,它有V种的token。

 

 

一般而言,T是大于N的 。

Token

  Phoneme

    在语音辨识当中,比较强壮的一种token叫Phoneme,可以想成英文的音标。通过语音辨识输出一段Phoneme,再通过手上拥有的Lexicon来将Phoneme来转换成一串看得懂的字词。类似于下图。

 

  Phoneme还是会有很多缺点,比如说你要翻译它,必须需要一本Lexicon,同时要获取Phoneme需要一些语言知识的支撑,如果去向不同的语言学家询问,不同的语言文献调查,还是会得到不一样的Phoneme.

   Grapheme

    基于上面Phoneme的缺点,我们引入Grapheme.什么是Grapheme?就是书写的基本单位,什么是书写单位呢?就是英文的26个字母。如下图

    例如one_punch_man,因为机器要识别一个单词,需要一个空格来确定单词结束,因此token的N=13,因为文本中不仅需要有空格,还要有逗号,句号等的标点符号,因此token的V种类就不单单只是英文的26个,因此V=26+。

    如果是中文的话,我们就以一个方块字来作为一个书写单位。如下图。

    “一拳超人”,有四个方块字,因此token的N=4,但V就可以是成千上万种,但一般对于普通人来说,基本4000是很多的了。

    英文跟中文的区别就是,中文词跟词之间没有空格。

    综上所述,我们需要的Lexicon就直接解放。我们就不需要什么语言学家的知识支持,我们只需要拿到文字,读取文字的书写单位就可以进行语音辨识。

    但是很强的Grapheme还是会有缺点,有时候会拼错字,因为太复杂。

  Word

    词单元,对于很多语言来说,可能词数会非常多,像土耳其语,一个词甚至可以非常长,无法穷举。

  Morpheme

    表意的最小单元,英语的话就是把前缀后缀也拆出来,可以通过语言学和统计学的方法来获取。
  Bytes

    二进制单元,语言无关(都可以用UTF-8编码),直接从字节层面获取信息,token大小不超过256。

 

2019年的数据显示

 

    同时还有很多有趣的结合比如说输入语音,直接输出word embedding。输入英文语音,直接输出中文文字。输入语音,进行intent classification(意图分类),输入想要的答案。输入语音,进行slot filling从而知道要得到的信息(比如说时间,地点)

 

Acoustic Feature(声学特征)  

  传统的语音识别方法,会将语音讯号抽帧(取一个窗口),一个25ms的frame有400个采样点(16KHz)。或者会用MFCC将它转为39维的向量,近年来非常流行的是用filter bank output方法转换为80维的向量。然后窗口右移10ms,再用同样的方法取向量。窗口之间是有重叠的。  一个窗口的讯号我们会用傅里叶变换映射到频域空间。频谱和声音之间的关联性是非常强的。接着我们会用一些根据人发声器官发声原理设计的filter bank来对频谱过滤,取log后再做DCT就可以得到MFCC向量。这些我们叫作声学特征。————https://www.cnblogs.com/yanqiang/p/13255650.html

 

搜索

复制

posted on 2022-09-17 21:28  陈willing  阅读(169)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3