2404-173-语音识别算法入门的故事

介绍

我一直对语音识别比较感兴趣。所以,这次,我决定开个帖子记录从最开始了解的全过程。

更新记录

  • 2024-04-13

    1. 开帖子
  • 2024-04-14

    1. 看到一篇文章,关于alexa的营收情况和这种智能音箱的应收情况

第一章-发现

初见

小米声音识别算法模型在业界率先突破 50mAP

昨日,小米公司宣布,小米自研声音识别算法取得最新进展。据了解,在 Google 发布的 AudioSet 音频标记任务中,小米的声音识别算法模型首次在业界突破了 50 mAP,刷新了音频标记技术指标,成为截至目前性能最好的模型。

科普

什么是语音识别模型

我问了chatglm, 它告诉我如下:

声音识别算法模型通常指的是自动识别和理解语音的技术。这种技术使得机器能够接收并解释人类语音,进而执行相应的指令或者转换为文本信息。声音识别模型通常包括以下几种类型:

  1. 隐马尔可夫模型(HMM) :这是一种基于统计的模型,用于处理序列数据。在语音识别中,HMM可以用来建模语音信号的时间结构。
  2. 支持向量机(SVM) :SVM是一种强大的分类算法,可以用于语音识别中的特征分类。
  3. 人工神经网络(ANN) :ANN能够模拟人脑处理信息的方式,通过多层神经元来学习和识别复杂的模式。深度神经网络(DNN)是ANN的一种,它在语音识别中表现出色。
  4. 循环神经网络(RNN) :RNN特别适合处理序列数据,因为它们能够在网络中保持一个"隐藏状态",允许前面的输入影响后面的输出。长短期记忆网络(LSTM)和门控循环单元(GRU)是RNN的变体,在语音识别中广泛应用。
  5. 卷积神经网络(CNN) :CNN在图像识别领域取得了巨大成功,也可以用于语音识别,尤其是在提取音频信号的声学特征方面。
  6. Transformer和Self-Attention模型:Transformer模型,尤其是其中的自注意力机制,已经成为语音识别领域的重要技术。模型如BERT和其变体在语音识别中也非常流行。
  7. 端到端模型:这类模型直接将语音信号映射到文本,不需要单独的特征提取和模型训练步骤。例如,使用CTC(Connectionist Temporal Classification)损失函数的神经网络可以直接输出识别结果。 在实际应用中,这些模型可能会结合使用,以达到更高的识别准确率和效率。随着深度学习技术的发展,声音识别算法模型也在不断进步,使得语音交互成为智能系统的重要组成部分。

看来,要学不少算法的东西!

关于mAP是什么

在语音识别算法模型中,mAP(Mean Average Precision)是一个常用的性能衡量标准,尤其是在关键词检出(keyword spotting)任务中。mAP是从信息检索领域借用过来的一个指标,它衡量的是模型在一系列查询中的平均精度。 mAP的计算方式如下:

  1. 对于每个关键词,计算其平均精度(AP)。
  2. AP是通过对检索结果按照置信度排序后,计算每个检索点的精度,并求这些精度的平均值。
  3. mAP是所有关键词的AP的平均值。 这里的"精度"是指检索到的相关结果占所有检索结果的比例。在语音识别中,通常是指模型正确识别的关键词占所有识别尝试的比例。 mAP的范围是从0到1,其中1表示完美的性能,即模型在所有查询中都能以完美的精度检索到所有相关结果。mAP越高,表示模型的性能越好。 在语音识别中,mAP用于评估关键词检出系统在多个关键词上的总体性能,而不是单个关键词的性能。这是一个非常有用的指标,因为它考虑了模型在多个任务上的泛化能力。

接下来,我一直好奇什么是SVM,我在算法课程中听过支持向量机,但是非常模糊,所以我需要再重新学习一下。

SVM怎么学习

学习支持向量机(SVM)可以分为理论学习和实践应用两个部分。以下是一些建议帮助你学习SVM:

理论学习:

  1. 基础数学知识:在学习SVM之前,你需要有一定的数学基础,特别是线性代数、概率论和微积分。

  2. 了解机器学习基础:熟悉基本的机器学习概念,如监督学习、无监督学习、过拟合、模型评估等。

  3. 学习SVM的理论

    • 理解SVM的基本思想,即找到能够最大化分类边界的超平面。
    • 学习支持向量和间隔(margin)的概念。
    • 了解硬间隔和软间隔SVM,以及如何通过正则化处理非线性问题。
    • 学习核技巧(kernel trick),如何通过映射到高维空间来解决非线性问题。
  4. 阅读经典教材和论文

    • 《统计学习方法》- 李航
    • 《模式识别与机器学习》- Christopher Bishop
    • 《支持向量机》- Vladimir N. Vapnik(SVM的创始人之一)
  5. 在线课程和教程:参加在线课程,如Coursera、edX、Udacity上的机器学习课程,这些课程通常会有关于SVM的专门讲解。

实践应用:

  1. 使用Python或R等编程语言:这些语言有丰富的机器学习库,如scikit-learn,可以让你轻松实现SVM。

  2. 实践项目

    • 使用SVM处理简单的分类问题,如手写数字识别。
    • 尝试不同的核函数,观察对模型性能的影响。
    • 在真实数据集上应用SVM,如文本分类、图像识别等。
  3. 调参:学习如何通过交叉验证、网格搜索等技术来优化SVM模型的参数。

  4. 阅读源代码和文档:阅读scikit-learn等库中SVM的实现代码,加深对算法的理解。

  5. 参加竞赛和论坛:在Kaggle等数据科学竞赛平台上参加比赛,或加入机器学习社区和论坛,与其他学习者交流经验。

综合资源:

  • 书籍:《机器学习实战》
  • 在线课程:Coursera上的《机器学习》课程(吴恩达教授)
  • 教程和博客:网上有大量的免费教程和博客文章,可以提供不同角度的解释和实例。
  • 视频讲座:YouTube和其他视频平台上有很多关于SVM的讲座和教程。 通过结合理论学习、实践操作和不断的项目练习,你可以逐步深入理解SVM的原理和应用。记住,学习是一个迭代的过程,不断实践和回顾理论知识是提高的关键。

我想接下来给自己定个任务,就是快速的用SVM做个东西。我暂时打算先体验一下它的效果,然后再进行理论学习。

我想我需要去找三蓝一棕的视频,看看SVM的介绍,希望他有这系列视频。但是目前这个不是最重要的。

我其实现在真的很想体验一下SVM的效果。

什么是SVM

支持向量机(Support Vector Machine,简称SVM)是一种监督学习算法,用于分类和回归分析。SVM在机器学习中非常流行,特别是在分类问题中,因为它能够有效地处理高维空间的数据,并且在实际应用中通常能够提供非常好的性能。

基本概念:

  • 超平面:在二维空间中,超平面是一条直线;在三维空间中,它是一个平面。在更高维的空间中,超平面是一个分割数据点的边界。
  • 支持向量:在训练数据中,离超平面最近的那些数据点被称为支持向量。这些点是确定超平面位置的关键,因为超平面的位置是由支持向量决定的。

工作原理:

SVM的目标是找到一个最优的超平面,使得不同类别的数据点能够被最好地分开,同时最大化分类间隔(即支持向量到超平面的距离)。这种方法也被称为最大间隔分类器。

核技巧:

SVM使用核函数来处理非线性问题。核技巧允许算法在原始特征空间中不可分的数据通过映射到高维特征空间中变得可分。

SVM的类型:

  • 硬间隔SVM:当数据是线性可分的时候使用。
  • 软间隔SVM:当数据不是完全线性可分的时候使用,允许一些数据点违反间隔约束。
  • 非线性SVM:使用核函数将数据映射到高维空间,以便可以找到一个超平面来分隔数据。

应用:

SVM被广泛应用于文本和图像分类、生物信息学、手写识别等领域。

优点:

  • 效果好,特别是在特征维度较高时。
  • 使用核技巧可以很好地处理非线性问题。
  • 泛化能力较强,不容易过拟合。

缺点:

  • 训练时间较长,特别是对于大规模数据集。
  • 当特征数量远大于样本数量时,效果可能不佳。
  • 需要仔细选择核函数和正则化参数。 SVM是一个强大的机器学习工具,理解其原理和能够熟练应用它对于数据科学家和机器学习工程师来说是非常有价值的。

语音转文字产品

平时使用声音转文字的时候,我用过的产品有讯飞语音识别,可以支持小时级别的语音转文字,各种输入法,以及微信语音转文字。

怎么能做一个类似的东西呢?我自己也想拥有一个这样的东西。

而且,我之前看很多视频,音色替换,这个也非常的有意思。

我现在需要一个产品,接受一段声音文件,然后把其中的文字输出出来,应该非常简单的界面。

之前有听说过 whisper也很牛!但是,一直都没用过。

那么我就自己做一个单机版的吧!

意义所在

在参考1.2中提到,意义还是甚多的。

无论是语音助手和聊天机器人,还是支持客户自助服务的问答系统,语音识别和对话式 AI 的应用频率与日俱增。涵盖金融和医疗健康等众多领域的各行各业,在其解决方案中采用 ASR 或对话式 AI。语音转文本的实际应用非常广泛:

  • 外科医生或飞机驾驶员等"忙碌的"专业人士可以在工作期间进行记录并发出命令。
  • 如果不能使用键盘,或者在开车时遇到危险,用户可以发出语音需求或口述消息。
  • 声控电话应答系统可以处理复杂的请求,而无需用户导航菜单。
  • 无法使用其他输入方式的残障人士可以使用语音,与计算机和其他自动化系统进行交互。
  • 自动转录的速度比人工转录的速度更快,并且成本更低。
  • 在大多数情况下,语音识别速度比打字速度更快。普通人每分钟大概可以说 150 个单字,但只能打 40 个字左右。使用密小难辨的智能手机键盘打字,性能甚至会更慢。
  • 现在,语音转文本在智能手机和台式电脑中的应用随处可见。特殊用途还可用于医学、法律和教育学科。随着其广泛应用成为主流,并且在家庭、汽车和办公室设备中广泛部署,学术界和业界已加大对此领域的研究力度。

别的不多说,我每天的个人语音操作手机的需求就很旺盛,但是现实并不能满足我的期望。我想开车用,我想写日记用,我想用语音操作手机,现在的都做的不够好,尤其是车载设备。

补充一下, 现在的客服声音也需要更好的拟人和智能。总之,语音操作是很重要的!

相关工作

在参考1.2中,英伟达的这篇文章里提到,ASR 是对话式 AI 应用程序流水线的第一阶段,使用自然语言与机器进行交流。典型的对话式 AI 应用程序使用三个子系统来处理和转录音频,即理解提出的问题(获取含义)、生成回复(文本),然后将回复反馈给人类。通过多个深度学习解决方案协同工作来实现这些步骤。首先,ASR 用于处理原始音频信号,并从中转录文本。其次,自然语言处理 (NLP) 用于从转录文本(ASR 输出)中提取含义。最后,语音合成或文字转语音 (TTS) 用于从文本中人工生成人类语音。各步骤均需构建和使用一个或多个深度学习模型,因此优化此多步骤流程非常复杂。也就是三个步骤, ASR,NLP,TTS。

参考

1.1 小米声音识别算法模型在业界率先突破 50mAP juejin.cn/post/727829...

1.2 什么是语音转文本? | 数据科学 | NVIDIA 术语表

第二章 alexa等语音助手

语音助手怎么盈利?比如Siri,小爱同学(小米公司的产品),天猫精灵(阿里旗下)。

这个工具现在无法直接赚钱,一般来说,能赚钱的就是打广告,靠流量挣钱。用户多了,随便插入点广告,但是人工智能产品不行,这个东西如果插入了太多的广告,就会破坏信任度,所以必须开启一种新的盈利模式。在我看来,就是针对功能本身收费。它可以提供统计功能,比如你问了助手哪些问题,它都记录着。它提供更加精准度操作,它能和软件操作结合起来。

盈利模式的尝试

刚刚我们只提了一个简单的设想,目前估计也只能暂时停留在设想层面,因为没法检验。

如果语音助手,能够更加精准的操作设备,能持续和人对话,那就好了。

参考2.1中提到,Alexa每周收到10亿次交互,但其中大多数对话都是播放音乐或询问天气之类的简单命令。"这些简单对话是无法盈利的。没有多少人愿意信任一个AI产品,不看图片或阅读评论就花钱或购买商品。

亚马逊还试图围绕Alexa技术与一些公司开展合作,让用户通过一个语音指令就可以购买达美乐的披萨或叫辆优步,而在这个过程中,亚马逊可以获取佣金。报道称:"由于使用不多,到2020年,该团队已停止发布销售目标。"

根据BusinessInsider的追踪调查,Alexa目前(2022年12月1日)在美国语音助手大战中排名第三,谷歌的Assistant有8150万用户,苹果的Siri有7760万用户,Alexa有7160万用户。

另外,各种应用平台、API等已经能让语音助手遍历网络上的大量信息,再把指令跟应用程序功能对接起来。

这一切听起来都很美,但如今的语音助手仍有着明确的功能边界。在大多数情况下,亚马逊Alexa只能完成简单的任务,例如设置闹钟、播放音乐、播报天气和在网上搜索简单信息等。这些功能要么指向性很强,根本就没多少犯错的空间,要么就是敏感性很低,哪怕做错了也没多大影响。但如果我们想要执行某些敏感、需要多次交互或者具有多模实质的任务,语音助手的可靠性就会急剧下降。

声音的本质就是在手不方便的时候,代替手来操作,程序必须提供语音接口。可以从程序级别提供语音接口,而非一定要先从操作系统层面提供。

人们目前关于智能音箱的盈利办法的共识,是如下:

首先就是销售硬件,例如亚马逊Echo、苹果HomePod或者谷歌Nest之类的智能音箱。在这种情况下,语音助手技术的商业价值就直接取决于设备价格、所能售出的设备数量以及客户更换这类设备的频率。换言之,这种商业模式跟智能手机很像,人们每隔几年就会掏几大千去买下一代iPhone或者Pixel手机。手机的使用频率高的多,音箱则不然。

但那可是手机,智能音箱缺少催人升级换代的动力。第一,人们不想为这些音箱支付很高的溢价,毕竟本身使用频率就不高;第二,智能音箱的升级空间也不大,一个麦克风、一个喇叭、再加个显示屏,也就差不多了;最后,用于支持语音助手的云服务也有升级和维护成本。所以综合来讲,用户对智能音箱的使用会给厂商带来持续存在的成本,并在日积月累后逐步超过当初销售音箱所创造的利润。这里来说,智能音箱就是主打一个声音,发挥空间很小。所以,它聊天的功能必须非常强大,它的发挥空间太小了。

第二种思路就是出售服务。在这种情况下,用户需要按月或按年付费才能使用手机或智能音箱上的语音助手。但让人单独付费真的很难,产品必须具有明确的价值才能说服用户为此买单。为了让这种商业模式取得成功,产品必须能够解决某些业界尚未解决的难题 ,或者创造足够直观的附加价值,进而与产品/市场相契合。遗憾的是,亚马逊Alexa和其他语音助手都达不到这样的高度,单独收费更是痴心妄想。

最后,有些朋友可能还指望着将亚马逊Alexa当成吸引用户购买其他产品的渠道,比如前面提到的网购操作界面。但语音助手天然就不适合这类操作,所以Alexa没法提供理想的购物体验。用户显然更愿意在手机或电脑上操作购物软件,那样更直观也更顺畅。

如今Alexa和Siri之所以还存在,就是因为其背后是两家财力极为雄厚的企业。双方可以不断砸钱进去,在承受亏损的同时慢慢摸索商业模式和技术可能性。

下一代语音助手又将朝哪个方向前进?也许有以下几种可能。

首先,等待AI技术的发展让语音助手愈发强大,从而为更多应用场景提供支持(例如主动式语音助手,由它在必要时主动询问意见,而非靠指令被动激活)。

另一种方案就是将现有通用型语音助手转化为面向特定场景的专业助手。如此一来,我们就能把语音助手集成到应用场景的上下文和工作流中,让它们有能力处理步骤更多、复杂度更高的任务。这种形式有望建立起B2B商业模式,特别是在那些需要大量手动操作的行业(例如制造业、饭店和酒店等)中,可以尝试用语音助手降本增效。正如第二代谷歌眼镜在手工领域获得了不错的市场认可,这类业务场景的附加价值也将远超普通消费级市场。

目前还很难确定未来的智能音箱到底还需不需要显示屏。毕竟我们的大部分日常事务都涉及视觉元素,而纯语音助手在应用上还有很多局限。技术发展应该会给出答案。

语音助手与NLP

如果纯粹把声音变成文字,然后转换成文字聊天,那么就丢失了语音中包含的情感信息。

所以,NLP不能仅仅是文字级别的,还要有声音级别的,即能合成带有语义和情绪声音。

这样想想,挺让人绝望的,因为我目前连NLP都还没有入门。

相关工作

2.1 中介绍了 alexa作为语音助手,它无法盈利的尴尬处境。

参考

2.1 1年巨亏100亿美元,亚马逊Alexa成烧钱"无底洞",语音助手为什么不赚钱?创事记新浪科技_新浪网 (sina.com.cn)

相关推荐
九圣残炎23 分钟前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
lulu_gh_yu28 分钟前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
丫头,冲鸭!!!1 小时前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法
Re.不晚1 小时前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
为什么这亚子2 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
2 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
~yY…s<#>2 小时前
【刷题17】最小栈、栈的压入弹出、逆波兰表达式
c语言·数据结构·c++·算法·leetcode
幸运超级加倍~3 小时前
软件设计师-上午题-16 算法(4-5分)
笔记·算法
yannan201903133 小时前
【算法】(Python)动态规划
python·算法·动态规划
埃菲尔铁塔_CV算法3 小时前
人工智能图像算法:开启视觉新时代的钥匙
人工智能·算法