基于TensorFlow.js的英文语音识别研究与实现
2021-09-14李东升苏煜辉陈正铭
李东升 苏煜辉 陈正铭



摘要:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,而本文将介绍其衍生的js版本即TensorFlow.js框架,并且基于这个框架和浏览器环境加载一个预训练模型来实现语音识别简单孤立的英文单词的功能。通过对预训练模型的使用与优化研究,为进一步使用TensorFlow.js实现更加复杂的商业化功能做了前期探索。
关键词:预训练模型;TensorFlow.js;语音识别
1 概述
简单的语音识别实际上也是属于分类问题,而声音在计算机中是被当成声谱图,既然是图片类的,那么就可以使用卷积神经网络来构建训练模型[1]。实际上很多成熟的语音识别模型也是基于卷积神经网络构建的,本文也将采用Tfjs-model这个官方模型库里面的speech-commands这个预训练好的语音命令模型,该模型可以获取一秒的音频片段,十分适合用来实现一个简单的语音识别功能。
2 TensorFlow.js框架
2.1 TensorFlow.js特性
需要说明的是TensorFlow.js使用的是Tensor,也称为张量,有别于一般数组,它是向量和矩阵向更高维度的拓展,也可以近似的看成一个多维数组。而神经网络具有多个神经元和层,每一层都需要存储N维的数据[5],这些数据往往需要进行N层的遍历循环计算等,导致其数据结构比较复杂,因此就需要张量这样一个高维的数据结构来存储这些数据。
下文中的模型特指人工神经网络模型,主要由TensorFlow.js框架的sequential方法初始化并根据需求逐步添加输入层、隐藏层和输出层。每个神经网络模型里面都包含一个输入层、最少一个隐藏层、一个输出层,每个层由任意个(至少为1个)神经元构成。……
