所有文章 > AI驱动 > 机器学习音频分析:构建人工智能驱动的声音检测应用
机器学习音频分析:构建人工智能驱动的声音检测应用

机器学习音频分析:构建人工智能驱动的声音检测应用

我们生活在一个充满声音的世界里:悦耳而烦人,低沉而高亢,安静而响亮,它们影响着我们的情绪和决定。我们的大脑不断处理声音,为我们提供有关环境的重要信息。但是,如果使用现代技术对声学信号进行分析,我们可以获取更多信息。

今天,我们拥有人工智能和机器学习,可以从语音、语音、打鼾、音乐、工业和交通噪音以及其他类型的声学信号中提取人类听不见的见解。在本文中,我们将分享我们在为医疗保健项目创建基于 AI 的声音识别解决方案时所学到的知识。

特别是,我们将解释如何获取音频数据,为分析做准备,并选择合适的 ML 模型以实现最高的预测准确性。但首先,让我们回顾一下基础知识:什么是音频分析,以及是什么使音频数据如此难以处理。

什么是音频分析?

音频分析是一个通过数字设备记录的音频信号进行转换、探索和解释的过程。为了理解可靠的数据,它应用了一系列技术,包括最先进的深度学习算法。音频分析已经在各个行业得到广泛采用,从娱乐到医疗保健再到制造业。下面我们将给出最流行的用例。

语音识别

语音识别是计算机使用自然语言处理技术区分口语的能力。它允许我们通过语音命令控制 PC、智能手机和其他设备,并向机器口述文本,而不是手动输入。Apple 的 Siri、亚马逊的 Alexa、Google Assistant 和 Microsoft 的 Cortana 是该技术深入到我们日常生活中的流行例子。

人声识别

人声识别旨在通过人们声音的独特特征来识别个体,而不是隔离单独的单词。该方法在安全系统中查找用于用户身份验证的应用程序。例如,Nuance Gatekeeper 生物识别引擎通过员工和客户在银行业的声音来验证他们。

音乐识别

音乐识别是 Shazam 等应用程序的一项流行功能,可帮助您从简短的样本中识别未知歌曲。音乐音频分析的另一个应用是流派分类:比如说,Spotify 运行其专有算法将曲目分组到各个类别中(他们的数据库包含 5,000 多个流派)

环境声音识别

环境声音识别侧重于识别我们周围的噪音,对汽车和制造行业承诺了一堆优势。这对理解物联网应用中的环境至关重要。

Audio Analytic 等系统可以“监听”车内和车外的事件,使车辆能够进行调整以提高驾驶员的安全性。另一个例子是 Bosch 的 SoundSee 技术,该技术可以分析机器噪音并促进预测性维护,以监控设备运行状况并防止代价高昂的故障。

医疗保健是环境声音识别派上用场的另一个领域。它提供了一种非侵入性的远程患者监测来检测跌倒等事件。除此之外,对咳嗽、打喷嚏、打鼾和其他声音的分析可以促进预筛查、确定患者的状况、评估公共场所的感染程度等等。

此类分析的一个实际用例是 Sleep.ai 它检测睡眠期间的磨牙和打鼾声。AltexSoft 为一家荷兰医疗保健初创公司创建的解决方案可帮助牙医识别和监测磨牙症,以最终了解这种异常的原因并对其进行治疗。

无论您分析哪种类型的声音,这一切都始于对音频数据及其特定特征的理解。

什么是音频数据?

音频数据以数字形式表示模拟声音,保留原始声音的主要属性。正如我们从学校的物理课上了解到的那样,声音是通过空气或水等介质传播的振动波,最终到达我们的耳朵。在分析音频数据时,它有三个关键特征需要考虑 — 时间周期、振幅和频率。

时间周期是指某个声音持续的时间长度,或者换句话说,完成一次振动循环所需的秒数。

振幅是以分贝 (dB) 为单位测量的声音强度,我们感知为响度。

以赫兹 (Hz) 为单位测量的频率表示每秒发生的声音振动次数。人们将频率解释为低音调或高音调。

虽然频率是一个客观参数,但音高是主观的。人类的听觉范围在 20 到 20,000 赫兹之间。科学家声称,大多数人认为所有低于 500 赫兹的声音都是低音调——比如飞机发动机的轰鸣声。反过来,对我们来说,高音调是超过 2,000 Hz 的一切(例如,哨声)。

音频数据文件格式

与文本和图像类似,音频是非结构化数据,这意味着它不会排列在具有连接行和列的表格中。相反,您可以以各种文件格式存储音频,例如

  • WAV 或 WAVE(波形音频文件格式)由 Microsoft 和 IBM 开发。它是一种无损或原始文件格式,这意味着它不会压缩原始录音;
  • 由 Apple 开发的 AIFF(音频交换文件格式)。与 WAV 一样,它适用于未压缩的音频;
  • FLAC(免费无损音频编解码器)由 Xiph.Org Foundation 开发,提供免费的多媒体格式和软件工具。FLAC 文件经过压缩但没有损失音质。
  • MP3(mpeg-1 音频第 3 层)由德国弗劳恩霍夫协会开发,并在全球范围内提供支持。它是最常见的文件格式,因为它使音乐易于存储在便携式设备上并通过 Internet 来回发送。尽管 mp3 会压缩音频,但它仍然提供可接受的音质。

我们建议使用 aiff 和 wav 文件进行分析,因为它们不会遗漏模拟声音中存在的任何信息。同时,请记住,这些和其他音频文件不能直接输入机器学习模型。为了使计算机能够理解音频,数据必须经历转换。

需要了解的音频数据转换基础知识

在深入研究音频文件的处理之前,我们需要介绍一些特定的术语,从声音数据收集到获得 ML 预测,您几乎在每一步都会遇到这些术语。值得注意的是,音频分析涉及与听不同的工作方式——即与图像一起工作。

波形是音频信号的基本视觉表示形式,它反映了振幅如何随时间变化。该图在水平 (X) 轴上显示时间,在垂直 (Y) 轴上显示振幅,但它没有告诉我们频率发生了什么变化。

波形示例。来源:用于机器学习的 Audio Singal Processing

频谱或频谱图是一个图表,其中 X 轴显示声波的频率,而 Y 轴表示其振幅。这种类型的声音数据可视化可帮助您分析频率内容,但会遗漏时间分量。

频谱图的示例。来源: Analytics Vidhya

频谱图是信号的详细视图,涵盖了声音的所有三个特征。您可以从 x 轴了解时间,从 y 轴了解频率,从颜色了解振幅。事件越响亮,颜色越亮,而寂静则以黑色表示。在一个图表上拥有三个维度非常方便:它允许您跟踪频率如何随时间变化,检查声音的所有完整度,并通过视觉发现各种问题区域(如噪声)和模式。

例如一个频谱图。来源:iZotope

Mel频谱图,其中mel代表旋律,是基于描述人们如何感知声音特征的mel尺度的频谱图类型。我们的耳朵比高频更能区分低频。你可以自己检查一下:尝试播放 500 到 1000 Hz 的音调,然后播放 10,000 到 10,500 Hz 的音调。前者的频率范围似乎比后者宽得多,但实际上它们是相同的。梅尔频谱图结合了人类听觉的这一独特特征,将赫兹的值转换为梅尔标度。这种方法广泛用于流派分类、歌曲中的乐器检测和语音情感识别。

梅尔频谱图的一个示例。资料来源:Devopedia

傅里叶变换 (FT) 是一种数学函数,可将信号分解为不同幅度和频率的尖峰。我们用它来将波形转换为相应的频谱图,以便从不同的角度查看相同的信号并执行频率分析。这是理解信号和排除其中错误的有力工具。

快速傅里叶变换 (FFT) 是计算傅里叶变换的算法。

应用 FFT 可从时间和频率角度查看相同的信号。来源:NTi Audio

短时傅里叶变换 (STFT) 是将波形转换为频谱图的傅里叶变换序列。

音频分析软件

当然,您不需要手动执行转换。您也不需要了解 FT、STFT 和音频分析中使用的其他技术背后的复杂数学。所有这些任务和许多其他任务都由音频分析软件自动完成,在大多数情况下,该软件支持以下操作:

  • 导入音频数据
  • 添加注释(标签)、
  • 编辑录音并将其拆分为多个部分,
  • 去除噪声,
  • 将信号转换为相应的视觉表示(波形、频谱图、频谱图、MEL 频谱图),
  • 执行预处理操作,
  • 分析时间和频率内容,
  • 提取音频特征等。最先进的平台还允许您训练机器学习模型,甚至为您提供预先训练的算法。

以下是音频分析中使用的最流行的工具列表。

Audacity 是一个免费的开源音频编辑器,用于拆分录音、去除噪声、将波形转换为频谱图并对其进行标记。Audacity 不需要编码技能。然而,其音频分析的工具并不十分先进。要执行后续步骤,您需要将数据集加载到 Python 或切换到专门专注于分析和/或机器学习的平台。

在 Audacity 中标记音频数据。来源:Towards Data Science

Tensorflow-io 包用于准备和增强音频数据,让你能够执行广泛的操作,包括噪声消除、将波形转换为频谱图、频率和时间掩码以使声音清晰可听等。该工具属于开源 TensorFlow 生态系统,涵盖端到端机器学习工作流程。因此,在预处理后,您可以在同一平台上训练 ML 模型。

Torchaudio 是 PyTorch 的音频处理库。它提供了多种用于处理和转换音频数据的工具。它支持各种音频格式,并提供必要的数据加载和预处理功能。

Librosa 是一个几乎包含音频和音乐分析所需的一切的开源Python库。它支持显示音频文件的特征、创建所有类型的音频数据可视化以及从中提取功能,仅举几例。

MathWorks 的 Audio Toolbox 提供了许多用于音频数据处理和分析的工具,从标记到估计信号指标,再到提取某些特征。它还附带了预先训练的机器学习和深度学习模型,可用于语音分析和声音识别。

音频数据分析步骤

现在我们已经对声音数据有了基本的了解,让我们快速浏览一下端到端音频分析项目的关键阶段。

  1. 获取以标准文件格式存储的特定于项目的音频数据。
  2. 使用软件工具为您的机器学习项目准备数据
  3. 从声音数据的视觉表示中提取音频特征。
  4. 选择机器学习模型并针对音频特征对其进行训练
使用机器学习进行音频分析的步骤

语音和声音数据采集

您可以通过三种方式获取数据以训练机器学习模型:使用免费的声音库或音频数据集,从数据提供商处购买数据,或者让领域专家参与收集数据。

免费数据源

网络上有很多这样的来源。但在这种情况下,我们无法控制数据的质量和数量,以及记录的一般方法。

声音库是按主题分组的免费音频片段。Freesound 和 BigSoundBank 等来源提供录音、环境声音、噪音,以及各种类型的内容。例如,你可以找到掌声的声音景观和带滑板声音的集合。

最重要的是,声音库并不是专门为机器学习项目准备的。因此,我们需要在布景完成、标签和质量控制方面执行额外的工作。

相反,音频数据集的创建考虑了特定的机器学习任务。例如,由机器听觉实验室提供的鸟类音频检测数据集包含在生物声学监测项目中收集的7000多个片段。另一个例子是ESC-50:环境声音分类数据集,包含2000个带标签的音频录音。每个文件长5秒,属于五个类别中的50个语义类之一。

Google的AudioSet是最大的音频数据集合之一。它包括超过 200 万个从 YouTube 视频中提取的人工标记的 10 秒声音剪辑。该数据集涵盖 632 个类别,从音乐和语音到碎片和牙刷声音。

商业数据集

就数据完整性而言,用于机器学习的商业音频集肯定比免费音频集更可靠。我们可以推荐 ProSoundEffects 销售数据集,以训练语音识别、环境声音分类、音频源分离和其他应用程序的模型。该公司总共有 357,000 个由电影声音专家录制的文件,分为 500+ 个类别。

但是,如果你正在寻找的声音数据过于特殊或罕见怎么办?如果你需要完全控制录音和标记怎么办?那么最好与同一行业中可靠的专家合作进行你的机器学习项目。

专家数据集

在使用 Sleep.ai 时,我们的任务是创建一个能够识别磨牙症患者在睡眠中通常发出的磨擦声的模型。显然,我们需要特殊数据,而这些数据无法通过开源获得。此外,数据可靠性和质量必须是最佳的,这样我们才能获得值得信赖的结果。

为了获得这样的数据集,这家初创公司与睡眠实验室合作,科学家们在人们睡觉时对其进行监测,以定义健康的睡眠模式并诊断睡眠障碍。专家使用各种设备来记录大脑活动、运动和其他事件。他们为我们准备了一个带有大约12,000个样本的标记数据集,包括磨牙和打鼾的声音。

音频数据准备

在 Sleep.io 的情况下,我们的团队跳过了这一步,将我们项目的数据准备任务委托给睡眠专家。这同样适用于从数据提供商处购买带注释的声音集合的人。但是,如果您只有原始数据,即以其中一种音频文件格式保存的录音,则需要为机器学习做好准备。

音频数据标注

数据标注或注释是用正确的答案标记原始数据以运行监督式机器学习的过程。在训练过程中,您的模型将学习识别新数据中的模式,并根据标签做出正确的预测。因此,它们的质量和准确性对于 ML 项目的成功至关重要。

尽管标记意味着软件工具的帮助和一定程度的自动化,但在大多数情况下,它仍然由专业注释者和/或领域专家手动执行。在我们的磨牙症检测项目中,睡眠专家听取了录音,并用磨牙或打鼾标签标记它们。

音频数据预处理

除了使用有意义的标签丰富数据外,我们还必须对可靠的数据进行预处理,以实现更好的预测准确性。以下是语音识别和声音分类项目的最基本步骤。

Framing 是指将连续的声音流切割成相同长度(通常为 20-40 ms)的短片段(帧),以便进一步进行分段处理。

窗口化是一种基本的音频处理技术,用于最大限度地减少频谱泄漏,频谱泄漏是一种常见的错误,会导致频率模糊并降低振幅精度。有几种窗口函数(Hamming、Hanning、Flat Top 等)适用于不同类型的信号,尽管 Hanning 变体在 95% 的情况下效果很好。

基本上,所有窗口都执行相同的操作:减小或平滑每帧开头和结尾的振幅,同时在中心增加振幅以保持平均值。

窗口化前后的信号波形。源:美国国家仪器

重叠添加 (OLA) 方法可防止丢失可能由窗口化引起的重要信息OLA 在相邻帧之间提供 30-50% 的重叠,允许修改它们而不会有失真的风险。并能够从窗口中准确重构原始信号。

重叠的窗口化示例。来源: 阿尔托大学维基

特征提取

音频特征或描述符是从预处理后的音频数据可视化计算得出的信号属性,它们可以分为以下三个领域:

  • 时域:由波形表示;
  • 频域:由频谱图表示;
  • 时频域:由语谱图表示。
音频数据可视化:时域波形、频域频谱以及时域和频域频谱图。来源: ML 的音频特征类型

时域特征

正如我们之前提到的,时域或时间特征是直接从原始波形中提取的。请注意,波形本身并不包含太多有关声音实际听起来如何的信息。它们仅指示振幅如何随时间变化。在下图中,我们可以看到空调和警报器波形看起来很相似,但可以肯定的是,这些声音不会相似。

波形示例。来源:Towards Data Science

现在让我们来看看我们可以从波形中提取的一些关键特征。

振幅包络 (AE) 跟踪帧内的振幅峰值,并显示它们如何随时间变化。使用 AE,您可以自动测量声音不同部分的持续时间(如下图所示)。AE 广泛用于起始检测以指示某个信号何时开始,以及用于音乐流派分类。

tico-tico 鸟歌唱的振幅包络。来源: Seewave: Sound Anaysis principles

短时能量 (STE) 显示短语音帧内的能量变化。它是一个强大的工具,用于分离有声和无声片段。

均方根能量(RMSE)提供了对信号平均能量的理解。它可以根据波形或频谱图计算。在第一种情况下,您将更快地获得结果。然而,频谱图可以更准确地表示能量随时间的变化。RMSE 对于音频分段和音乐流派分类特别有用。

过零率 (ZCR) 计算信号波在帧内穿过水平轴的次数。它是最重要的声学特征之一,广泛用于检测语音的存在与否,以及区分噪声与沉默、音乐与语音。

频域特征

频域特征比时域特征更难提取,因为该过程涉及使用 FT 或 STFT 将波形转换为频谱图或频谱图。然而,正是频率内容揭示了许多在时域中不可见或难以看到的重要声音特征。

最常见的频域特征包括

  • 平均频率中值频率,当频谱被分为两个具有相等振幅的区域时
  • 信噪比 (SNR) 比较所需声音的强度与背景鼻子,
  • 波段能量比 (BER),描述较高和较低频段之间的关系。换句话说。它测量低频相对于高频的主导程度。

当然,这个领域还有许多其他特性值得研究。概括地说,它告诉我们声能如何在频率之间传播,而时域则显示信号如何随时间变化。

时频域特征

该域结合了时间和频率分量,并使用各种类型的频谱图作为声音的视觉表示。您可以从应用短时傅里叶变换的波形中获得频谱图。

最流行的时频域特征组之一是 mel 频率倒谱系数 (MFCC)。它们在人类听觉范围内工作,因此基于我们之前讨论的梅尔标度和梅尔频谱图。

毫无疑问,MFCC 的最初应用是语音和语音识别。但它们也被证明对音乐处理和医疗目的的声学诊断有效,包括打鼾检测。例如,工程学院(东密歇根大学)最近开发的一个深度学习模型就是在 1000 张打鼾声的 MFCC 图像(频谱图)上训练的。

打鼾声波形 (a) 及其 MFCC 频谱图 (b) 与冲厕声音波形 (c) 和相应的 MFCC 图像 (d) 的比较。来源:用于打鼾检测的深度学习模型(电子杂志,第 8 卷,第 9 期)

为了为 Sleep.ai 项目训练模型,我们的数据科学家从时域和频域中选择了一组最相关的特征。通过结合这些特征,他们创建了磨牙和打鼾声音的丰富档案。

选择和训练机器学习模型

由于音频特征以视觉形式出现(主要以频谱图的形式出现),因此它们成为依赖于深度神经网络的图像识别对象。有几种流行的架构在声音检测和分类方面表现出色。在这里,我们只关注两种常用的通过声音来识别睡眠问题的方法。

长短期记忆网络 (LSTM)

长短期记忆网络 (LSTM) 以其能够发现数据中的长期依赖关系并记住许多先前步骤中的信息而闻名。根据睡眠呼吸暂停检测研究,当使用 MFCC 特征作为输入来区分正常的打鼾声和异常的打鼾声时,LSTM 可以达到 87% 的准确率。

另一项研究显示了更好的结果:LSTM 以 95.3% 的准确率对正常和异常的打鼾事件进行分类。该神经网络使用了包括MFCCs和时间域中的短时能量在内的五种类型的特征进行训练。它们共同代表了打鼾的不同特征。

卷积神经网络 (CNN)

卷积神经网络在医疗保健和其他行业的计算机视觉领域处于领先地位。它们通常被称为图像识别任务的自然选择。CNN 架构在频谱图处理中的效率再次证明了这一说法的有效性。

在工程学院(东密歇根大学)的上述项目中,基于 CNN 的深度学习模型在打鼾声和非打鼾声的分类中达到了 96% 的准确率。

CNN 和 LSTM 架构的组合报告了几乎相同的结果。埃因霍温理工大学的科学家小组应用 CNN 模型从频谱图中提取特征,然后运行 LSTM 将 CNN 输出分类为打鼾和非打鼾事件。准确率值范围为 94.4% 到 95.9%,具体取决于用于录制打鼾声的麦克风的位置。

对于 Sleep.io 项目,AltexSoft 数据科学团队使用了两个 CNN(用于打鼾和磨擦检测),并在 TensorFlow 平台上对其进行训练。在模型达到 80% 以上的准确率后,它们被投入生产。随着从真实用户那里收集到的输入数据不断增加,它们的结果也在不断改进。

构建用于打鼾和磨牙检测的应用程序

为了让我们的音频分类算法面向更广泛的受众,我们将它们打包到一个 iOS 应用程序 Do I Snore 或 Grind 中,您可以从 App Store 免费下载。我们的用户体验团队创建了一个统一的流程,使用户能够记录睡眠期间的噪音、跟踪他们的睡眠周期、监控振动事件,并接收有关影响睡眠的因素的信息以及有关如何调整习惯的提示。所有音频数据分析都在设备上执行,因此即使没有 Internet 连接,您也会获得结果。

Do I Snore 还是 Grind App 界面

请注意,无论智能程度如何,没有任何健康应用程序可以替代真正的医生。AI 得出的结论必须经过您的牙医、医生或其他医学专家的验证。

原文链接:https://www.altexsoft.com/blog/audio-analysis/

#你可能也喜欢这些API文章!