使用TensorFlow.js进行语音识别-语音命令

新知榜官方账号

2023-12-03 16:14:26

迁移学习语音识别如何工作?

从历史上看,图像分类是普及深度神经网络的问题,尤其是视觉类型的神经网络——卷积神经网络(CNN)。今天,迁移学习用于其他类型的机器学习任务,如NLP和语音识别。我们不会详细介绍什么是CNN以及它们是如何工作的。然而,我们可以说CNN在2012年打破了ImageNet大规模视觉识别挑战赛(ILSVRC)的记录后得到了普及。该竞赛评估大规模对象检测和图像分类的算法。他们提供的数据集包含1000个图像类别和超过1万张图像。图像分类算法的目标是正确预测对象属于哪个类。自2年以来。本次比赛的每位获胜者都使用了CNN。训练深度神经网络可能具有计算性和耗时性。要获得真正好的结果,您需要大量的计算能力,这意味着大量的GPU,这意味着......嗯,很多钱。当然,您可以训练这些大型架构并在云环境中获得SOTA结果,但这也非常昂贵。有一段时间,这些架构对普通开发人员不可用。然而,迁移学习的概念改变了这种情况。特别是,对于这个问题,我们今天正在解决-语音识别。今天,我们可以使用最先进的架构,这些架构在ImageNet竞赛中获胜,这要归功于迁移学习和预训练模型。

预训练模型

预训练模型是以前在大型数据集上训练的保存网络。有两种方法可以使用它们。您可以将其用作开箱即用的解决方案,也可以将其与迁移学习一起使用。因为大型数据集通常用于某些全局解决方案,所以您可以自定义预先训练的模型并将其专门用于某些问题。通过这种方式,您可以利用一些最著名的神经网络,而不会在训练上浪费太多时间和资源。此外,您还可以通过修改所选图层的行为来微调这些模型。整个想法围绕着使用较低层的预训练CNN模型,并添加额外的层,这些层将为特定问题定制架构。从本质上讲,严肃的迁移学习模型通常由两部分组成。我们称它们为骨干和头脑。主干通常是在ImageNet数据集上预先训练的深度架构,没有顶层。Head是图像分类模型的一部分,用于预测自定义类。这些层将添加到预训练模型的顶部。有了这些系统,我们有两个阶段:瓶颈和培训阶段。在瓶颈阶段,特定数据集的图像通过主干架构运行,并存储结果。在训练阶段,来自主干的存储输出用于训练自定义层。有几个领域适合使用预先训练的模型,语音识别就是其中之一。此模型称为语音命令识别器。从本质上讲,它是一个JavaScript模块,可以识别由简单英语单词组成的口语命令。

语音识别如何工作?

当涉及到神经网络和音频的组合时,有很多方法。语音通常使用某种递归神经网络或LSTM来处理。但是,语音命令识别器使用称为卷积神经网络的简单体系结构,用于小占用量关键字发现。这种方法基于我们在上一篇文章中研究的图像识别和卷积神经网络。乍一看,这可能会令人困惑,因为音频是一个跨时间的一维连续信号,而不是2D空间问题。

谱图

此体系结构使用频谱图。这是信号频率频谱随时间变化的视觉表示。从本质上讲,定义了单词应该适合的时间窗口。这是通过将音频信号样本分组到段来完成的。完成此操作后,将分析频率的强度,并定义具有可能单词的段。然后将这些片段转换为频谱图,例如用于单词识别的单通道图像:然后,使用这种预处理制作的图像被馈送到多层卷积神经网络中。

演示

本文提供了一个使用语音命令进行绘制的演示。您可以使用命令“向上”,“向下”,“向左”和“右”在下面的画布上绘制。为了使此演示正常工作,您必须允许它使用麦克风。

使用TensorFlow.js实现语音识别

我们可以轻松地使用预先训练的TensorFlow.js模型。它们是一些简单应用程序的良好起点。我们甚至构建了一个此类应用程序的示例,您可以使用它使用语音命令进行绘制。这很酷,可能性是无穷无尽的。当然,您可以进一步训练这些模型,获得更好的结果,并将它们用于更复杂的解决方案。这意味着,您可以真正利用迁移学习。然而,这是另一个时代的故事。

本页网址:https://www.xinzhibang.net/article_detail-21868.html

寻求报道,请 点击这里 微信扫码咨询

相关工具

相关文章

相关快讯