问题标签 [mfcc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3683 浏览

matlab - 使用 Matlab hmmtrain 从 MFCC 训练语音 HMM

我阅读了很多关于此的文章,但我只是不明白我必须如何进行。

我正在尝试使用 HMM 的 MFCC 功能构建一个基本的语音识别系统,我正在使用此处提供的数据。我正在使用 Matlab 来执行此操作。

到目前为止,我已经使用这个库从语音文件中提取了 MFCC 向量。我不明白如何将这些功能用于 HMM。

你能解释一下我如何训练HMM吗?我正在使用在 matlab 中找到的 hmm 实现。请不要将我推荐给其他图书馆,因为我实际上是在尝试了解 hmm 的工作原理。

  • 如何初始化转换和发射矩阵?

  • 我假设每个状态都会在单词中发出一个特定的音素,那么为了训练 HMM,我们应该如何传递 MFCC 向量?

  • 我应该采取哪些步骤来训练 HMM?

HMM的matlab实现函数在这里给出

编辑:已经很长时间了,但我想这个问题仍然与它所获得的浏览量有关,我确实解决了这个问题,代码可以在我的 GitHub 上找到

0 投票
1 回答
981 浏览

mfcc - 如何在 Android 上的 PocketSphinx 中提取 MFCC 特征

我最近下载了适用于 Android Studio 的 PocketSphinx Android Demo。它适用于我的 Galaxy S5,我对准确性感到惊讶。但是,出于以下几个原因,我正在努力提取 MFCC 功能:

  1. 有一个解释如何使用 FrontEnd 类来生成 MFCC 功能,但它是为 Sphinx-4 实现编写的。我应该如何以及在哪里实现包含以下行的 sphinx 属性文件:

    <"组件名称="mfcFrontEnd" type="edu.cmu.sphinx.frontend.FrontEnd">

  2. 这导致了我如何在 PocketSphinx 中使用 Sphinx-4 库的问题?

0 投票
1 回答
813 浏览

audio - librosa mfcc 是否有频率选择 API

是否有允许我选择传递给 MFCC 算法的频段的 API?

假设我有 2 个不同的麦克风,每个都有不同的频率范围,一个 0~12000Hz,另一个 0~20000Hz 显然,第一个和第二个结果的 FFT 会非常不同,即使他们正在录制以保存声源。例如,我们设置 n_component 13,我们有一个低频源(10Hz)和一个中频源(6000Hz),第一个将有一个 FFT,高光在索引 0 和 6,第二个的高光将位于 0 和3.

MFCC 的结果向量将具有它们不应该具有的大欧几里得距离。

如果我可以选择频率上限,则可以在计算 FFT 结果后切断 10000Hz 以上的频率。那么 MFCC 向量将更有可能接近。

如果有办法或一些调整可以实现这一点,请告诉我。(低通滤波器不适用于这种情况)

非常感谢!

以下是频谱图显示的差异(相同声源不同麦克风)

差异

0 投票
1 回答
1554 浏览

machine-learning - 使用 MFCC 的简单单词检测器

我正在使用梅尔频率倒谱系数实现语音识别软件。特别是系统必须识别单个指定的单词。由于音频文件,我在一个有 12 行(MFCC)和与语音帧数一样多的列的矩阵中获得了 MFCC。我取行的平均值,所以我得到一个只有 12 行的向量(第 i 行是所有帧的所有第 i 个 MFCC 的平均值)。我的问题是如何训练分类器来检测单词?我有一个只有正样本的训练集,我从几个音频文件中获得的 MFCC(同一个词的几个注册)。

0 投票
1 回答
109 浏览

matlab - 在使用 MFCC 的 ASR 系统中提取了哪些特征或使用哪些参数来区分用户?

MFCC 在测试阶段从扬声器中提取了哪些特征?

我知道如何计算 mfcc 步骤的方法是:

  • 我将信号分成 10 到 30 毫秒的小帧

  • 应用窗口功能(建议在声音应用中使用嗡嗡声 [原文如此])

  • 计算信号的傅里叶变换,

  • 使用 DFT,计算梅尔频率倒谱系数:

    • 获取功率谱:|DFT|^2

    • 计算三角组滤波器以将 hz 标度转换为 mel 标度

    • 获取对数谱

    • 应用离散余弦变换

通过这样做,我得到了系数。但我想知道这些系数与用户语音的关系。这些系数代表什么?

0 投票
1 回答
1276 浏览

speech-recognition - 使用 Aquila 库将两个口语单词与 MFCC 和 DTW 进行比较

我正在尝试使用aquila库找到口语之间的相似性。我目前的做法如下。
1)首先我把口语分解成更小的框架。
2)然后对每一帧应用MFCC并将结果存储在一个向量中。
3)最后使用DTW计算距离。

这是我正在使用的代码。

它工作正常,只是它不够准确。有时它显示口语“开始”和“停止”之间的距离比两个口语“开始”之间的距离更小。

我的代码正确吗?如何改进程序以便获得更准确的结果?任何帮助将不胜感激。

谢谢。

0 投票
2 回答
422 浏览

signal-processing - 您是否仍然可以在不使用 MFCC 将其转换为模拟信号的情况下从数字信号中提取特征?

我正在开发一个后端语音识别软件,用户可以在其中导入 mp3 文件。如何从这个数字音频文件中提取特征?我应该先将其转换回模拟吗?

0 投票
1 回答
590 浏览

c# - 如何在 C# 和 MFCC 提取中使用 OpenSmile

我想在 C# 中使用 OpenSmile 库并提取 WAV 文件的 MFCC 功能,但我不知道如何使用 'OpenSmile_Release.dll' 有没有人可以帮助我?

0 投票
2 回答
1562 浏览

signal-processing - 如何使用 octave 获得 mfcc 功能

我的目标是在 octave 上创建加载音频文件(wav、flac)的程序,计算其 mfcc 功能并将它们作为输出。问题是我对 octave 没有太多经验,无法让 octave 加载音频文件,这就是为什么我不确定提取算法是否正确的原因。是否有加载文件并获取其功能的简单方法?

0 投票
1 回答
4098 浏览

python - Python 音频信号分类 MFCC 特征神经网络

我正在尝试将音频信号从语音分类到情绪。为此,我正在提取音频信号的 MFCC 特征并将它们输入一个简单的神经网络(使用 PyBrain 的 BackpropTrainer 训练的 FeedForwardNetwork)。不幸的是,结果非常糟糕。结果,从 5 个类中,网络似乎几乎总是提出相同的类。

我有 5 类情绪和大约 7000 个标记的音频文件,我将它们划分为每个类的 80% 用于训练网络,20% 用于测试网络。

这个想法是使用小窗口并从中提取 MFCC 特征以生成大量训练示例。在评估中,来自一个文件的所有窗口都被评估,多数票决定预测标签。

好的,现在,您可以看到结果在类中的分布非常糟糕。0 类和 2 类永远无法预测。我认为,这暗示我的网络或更可能是我的数据存在问题。

我可以在这里发布很多代码,但我认为在下图中显示我为获得 MFCC 功能而采取的所有步骤更有意义。请注意,我使用整个信号而不加窗只是为了说明。这看起来好吗?MFCC 值非常大,不应该更小吗?(我在将它们输入网络之前将它们缩小,然后使用 minmaxscaler 将所有数据扩展到 [-2,2],也尝试了 [0,1])

从信号到 MFCC 的步骤

这是我用于 Melfilter 库的代码,我直接在离散余弦变换之前应用它以提取 MFCC 特征(我从这里得到它:stackoverflow):

我该怎么做才能获得更好的预测结果?