【精工·科普】第七十六期:语音识别模型:实现更加便捷的人机交互

【精工·科普】

第七十六期:语音识别模型:实现更加便捷的人机交互

一、引言

在当今这个数字化与智能化飞速发展的时代,人机交互的方式正经历着前所未有的变革。

随着人工智能技术的不断突破,语音识别技术作为连接人类语言与机器理解的桥梁,正逐步渗透到我们日常生活的方方面面,从智能家居的语音控制到智能手机的语音助手,再到复杂场景下的自动客服系统,其身影无处不在。语音识别模型,作为这一领域的核心技术支撑,不仅极大地提升了人机交互的自然性和便捷性,还开启了人机交互的新纪元,让机器“听懂”人类语言成为可能。

图1 传统语音识别模型训练流程

二、基本原理

语音识别模型实现人机交互的过程关键在于语音信号的采集处理、特征提取和解码识别

(1)语音信号采集和预处理

首先使用麦克风设备将声波转换为电信号,再将这些电信号进一步被换为数字信号,以便计算机处理。然后通过去噪、归一化、分帧加窗等处理,去除背景噪声、调整信号的振幅,将连续的语音信号分割成短时帧(通常20-30毫秒每帧),对每个帧加窗(如汉明窗),提升采集的语音信号的平稳性,便于后续的特征提取。

图2 常用加窗函数——汉明窗

图3 分帧具体操作

(2)特征提取

从经过预处理的语音信号中通过短时傅里叶变化等方式分析并提取出可表示该语音本质的特征参数,如时域特征(短时能量、短时平均幅度、短时过零率等)及频域特征(基频、声强、共振峰等),利用这些特征参数进行有效的处理。

图4 语音“蓝天白云”波形及短时能量

(3)训练模型

提取的特征参数需要构建声学模型(将特征向量映射到声学单位)和语音模型(基于上下文预测词序列的概率)进行处理。近年来,深度神经网络 (DNN)、卷积神经网络 (CNN)、循环神经网络 (RNN) 和端到端的模型(如Transformer、CTC)等深度学习技术得到了广泛应用。通过大量语音数据的训练,模型能够学习到语音到文字的特征映射关系,从而提高语音识别的准确性。

(4)解码和识别

在模型训练完成后,需对输入的语音信号使用解码器进行识别和解码。解码器在语音识别系统中扮演着将声学特征转换为文本的关键角色。它结合声学模型、语言模型和发音字典,通过搜索最可能的词序列来实现语音识别。

图5 动态解码线型网络(上)及树型网络(下)示例

三、多种语音模型比较

当前已经有多种成熟的语音模型,适用于不同应用场景。本文主要介Speech_Recognition识别库、Vosk语音模型、百度SDK三种模型优缺点和适用场景。

(1)Speech_Recognition识别库

Speech_Recognition是一个基于Python的开源语音识别库,它允许开发者轻松地将音频文件或实时麦克风输入转化为文字。首先,Speech_Recognition满足多种主流语音 API如Google Web Speech API、IBM Watson、Microsoft Bing Voice Recognition等,Google Web Speech API支持硬编码到 SpeechRecognition 库中的默认API密钥,无需注册就可用同时,SpeechRecognition无需构建访问麦克风和从头开始处理音频文件的脚本, 只需几分钟即可自动完成音频输入、检索并运行。因此易用性很高。此外,SpeechRecognition 库可以识别多种语言的语音,适用于各种操作系统,并且在库中包含了一些内置的策略,用于处理语音识别过程中的常见问题,如背景噪声和断句不准确,提高了识别的准确性和稳定性。

对此识别库,主要有配合PocketSphinx与结合Google API这两种方式。

使用PocketSphinx主要需要进行唤醒词制作,默认下载的PocketSphinx内一般只有英文识别内容,为此,我们先下载了中文包。同时根据其唤醒词制作的需求,首先将需要的词制作成词典,再通过语音转换工具,制作出对应的语音指示文件,最终使用这些文件替换原本的识别文件,便可作为触发词模型使用。

虽然PocketSphinx是一个实时模型,可以实时处理和识别,但是其识别效果不佳,一方面可能是模型本身中文听辨能力就较差,无法比较准确识别,而另一方面可能是源自于词典转换文件可能并不那么精确,影响了模型的判断。

此外Google API方式识别,虽然可以在一定准确度下进行识别。但是不能实时识别,网速影响大,无法在网络不稳定下进行识别同时由于Google相较于百度是国外来源,有时候也会出现短暂的无法访问

图6 python语音识别库

(2)Vosk语音识别模型

Vosk语音工具包是一个基于Kaldi的开源语音识别工具包,它提供了离线语音识别功能和多种语言模型,适用于多种应用场景。

Vosk最大的优点之一是它的离线实时识别能力。它不需要连接到云端服务器进行语音识别,这意味着用户的语音数据不会离开设备,从而有效保护了用户的隐私。同时也避免了网络延迟对语音识别性能的影响,使得语音识别更加实时和可靠。

模型支持多种操作系统和平台,包括Windows、Linux、macOS以及嵌入式设备等。支持多种语言和方言的语音识别,包括英语、中文、法语、德语、西班牙语等二十多种语言,可以根据使用环境选择不同的模型。Vosk的模型相对较小,测试选用的vosk-model-small-cn-0.22模型大小仅为42Mb,但是能够提供连续的大词汇转录和零延迟响应,在资源受限的设备上运行,如Raspberry Pi上仍能保持较高的性能。

图7 vosk官网模型下载

(网址https://alphacephei.com/vosk/models)

同时,作为一个开源项目,Vosk允许开发者根据自己的需求进行定制和扩展。开发者可以优化和修改Vosk的源代码,以适应不同的应用场景和需求。此外,Vosk还提供了多种编程语言的接口(如Python、Java、C++等),方便开发者集成和使用。

当然,Vosk也存在一定的局限性,例如其对于一些非主流语言或口音较重的语言,其识别准确性可能有所下降,需要针对特定语言进行额外的优化和训练。而使用Vosk定制和训练新的语音识别模型相比起百度SDK这样成熟的、集成化的模型来说需要更加专业的知识和技能,这对于非专业或资源有限的用户来说可能是一个挑战。在面对高噪声环境下,Vosk模型识别的准确率会大幅下降,此外,在某些高性能要求的场景下,如需要同时处理多个语音输入或进行复杂的语音识别任务时,Vosk可能需要更多的硬件资源支持

(3)百度SDK

百度语音识别技术,凭借其国际领先的流式端到端语音语言一体化建模算法,深度融合了百度强大的自然语言处理技术,实现了令人瞩目的高准确率识别能力,特别是在近场中文普通话的识别上,准确率高达98%,展现了其卓越的词汇覆盖范围和识别精度。此外,百度SDK语音识别模型的设计充分考虑了跨平台与多设备的兼容性,不仅支持广泛的操作系统,还兼容多种编程语言,为用户提供了强大的泛用性和灵活性,满足了多样化的开发需求。

百度SDK还支持高度可配置的触发词系统,允许用户根据实际需求精细调整触发词的敏感度与复杂度,有效平衡识别率与误触发率,提升用户体验。针对实时音频流处理,百度SDK内置了智能断句与分割算法,能够更准确地识别并处理连续的语音输入,减少因语音片段分割不当导致的识别错误,提升整体识别效率。同时百度SDK,具备自适应学习功能,能够在用户使用过程中不断优化识别模型,针对特定用户或场景的语音特征进行微调,进一步提升识别准确性和个性化体验。当然,虽然SDK依赖在线识别,但百度也提供了灵活的解决方案,包括离线语音识别包,以应对网络不稳定或需要保护用户隐私的场景。

四、实际应用

选用了Vosk模型进行语音识别示例。需要先从官网上下载中文(想用其他语言根据需求下载)语音模型(vosk-model-small-cn-0.22这个比较小,但词库有限),并安装python(版本在3以上),同时在Python中安装Vosk库和麦克风pyaudio库(在终端输入pip install vosk/pyaudio)。可以先在电脑上运行了一个简易的Python脚本测试了Vosk模型的效果,根据测试结果调整模型、音频处理的参数,以提高识别的准确性和性能。

图8 vosk模型demo

基本上一些常用的词汇都能快速准确地识别出来:

图9 中(右)英(左)文语音模型识别结果示例

五、总结

END

随着人工智能技术的不断进步,语音识别技术已经成为我们日常生活中不可或缺的一部分。然而,语音识别技术仍面临诸多挑战,如复杂环境下的噪声干扰、方言及口音的多样性识别等。这要求我们在算法设计、模型训练及后处理等方面持续创新,以不断提升识别的准确性和鲁棒性。总而言之,语音识别模型作为人工智能领域的一项重要技术,其发展前景广阔且充满挑战。随着技术的不断进步和应用场景的日益丰富,我们有理由相信,未来的语音识别将更加智能、高效,成为连接人与数字世界的桥梁,引领我们迈向更加便捷、智能的生活新时代。

参考资料:

[1] 语音预处理之分帧加窗-CSDN博客

https://blog.csdn.net/weixin_42103947/article/details/122551019

[2](超详细)语音信号处理之特征提取_语音特征提取-CSDN博客

https://blog.csdn.net/qq_36002089/article/details/126849445

[3]百度开发者中心:https://developer.baidu.com

[4]python使用VOSK实现离线语音识别(中文普通话)_python vosk-CSDN博客

https://blog.csdn.net/svyee/article/details/127232464

往期推荐

_

《【精工·科普】携手共创:期待你的精工科普投稿!》

► 点击阅读

文稿|郭思敏

排版 |覃慧济

校对 |张政格

审核 |朱贵楠

--精工书院学生科技爱好者协会出品--