波形比较

我正在进行一个个人研究项目。

我的目标是通过将一个声音的波形与数据库中的波形进行比较,来识别该声音并判断它是否属于国际音标。我在Mathematica、SciPy和PyBrain方面有一些技能。

在第一阶段,我仅使用美式英语的音标。我在网上找到了一些简单的英语音标音频文件测试库。这里的技巧是:

我想将一个音频文件分解成对应不同音节的波形——这需要一个学习算法。因此,’I like apples’ 将被分割成组成该句子的音节波形。

然后每个波形与英语音标的波形进行比较。我还不确定如何做这部分。我在考虑使用Praat来检测波形,捕获波形的图像并通过图像分析与数据库中存储的波形进行比较(这做起来挺有趣的)。

这里的问题是我不知道如何让Praat自动生成波形文件,然后将其按音节分割成波形块。逻辑上,我会为学习算法准备测试案例,并教计算机完成这项工作。

如果不需要波形图像——我能否使用快速傅里叶变换来比较两个fft——在x%的误差范围内认为它是y音节呢?


回答:

你可以尝试Praat脚本

仅使用FFT会得到相当糟糕的结果。一个非常长的特征向量将很难进行分割和训练。这对于单个音节来说是数千个点。一些深度神经网络能够处理,但前提是你要正确设计它们并提供庞大的训练集。使用神经网络的优点是它们可以从“原始数据”中为你构建特征(我认为fft也属于“原始数据”)。然而,当你处理声音时,并不那么需要——你可以手动设计特征。对于声音,科学非常清楚声音具有哪些类型的“特征”。

你可以使用像Yaafe这样的库来计算这些特征。我推荐即使你不是在C++或Python中进行操作也去查看它——我提供的链接也提供了计算它们的公式。我在我的kiwi分类器中使用了一些这些特征。

另一个好的方法来自于scikit-talkbox,它提供了你可能需要的工具。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注