问题标签 [kaldi]
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.
speech-recognition - 使用 Librosa 生成的频谱图看起来与 Kaldi 不一致?
我使用来自 Kaldi 的“egs/tidigits”代码生成了“七”话语的频谱图,使用 23 个 bin、20kHz 采样率、25ms 窗口和 10ms 移位。频谱图如下所示,通过 MATLAB imagesc 函数可视化:
我正在尝试使用 Librosa 作为 Kaldi 的替代品。我使用与上面相同数量的箱、采样率和窗口长度/移位设置我的代码如下。
但是,当我将生成的同一 WAV 文件的 Librosa 频谱图可视化时,它看起来会有所不同:
有人可以帮我理解为什么这些看起来如此不同吗?在我尝试过的其他 WAV 文件中,我注意到在上面的 Librosa 脚本中,我的擦音(如上例中“七”中的 /s/)正在被截断,这极大地影响了我的数字分类准确性。谢谢!
python - 我可以信任哪个工具?
我似乎不得不确定我可以信任的工具......
我一直在测试的工具是 Librosa 和 Kaldi,用于创建数据集,用于绘制音频文件的 40 个滤波器组能量的可视化。
在 kaldi 中使用这些配置提取滤波器组能量。
fbank.conf
librosa
使用plot绘制提取的数据。Librosa
使用matplotlib
pcolormesh
,这意味着除了librosa
提供更易于使用的 API 之外,应该没有任何区别。
输出:
在 Librosa 中创建的类似图如下:
输出这个:
尽管颜色不同,两者都显示出相似的图,但能量范围似乎有点不同。
Kaldi 的最小值/最大值为 -1.828067/22.70058
Librosa 的最小值/最大值为 -84.6796661558/-4.67966615584
问题是我试图将这些图存储为 numpy 数组,以便进一步处理。
这似乎创建了一个不同的图。使用 Librosa 数据,我将图创建为:
这是完美的......它类似于原始数据集......
但是对于 Kaldi,我从这段代码中得到了这个情节:
我从之前的帖子中发现,出现红色的原因可能是由于范围,并且之前的标准化会有所帮助 - 但这导致了这个:
但这绝不会与 Kaldi 情节中的原始情节有关……那么为什么会这样呢?.. 为什么我可以用从 Librosa 提取的能量而不是从 Kaldi 提取的能量来绘制它?
Librosa 的最小工作示例:
kaldi 的最小工作示例 - (真实数据):
kaldi - Kaldi:加载共享库时出错
我的脚本因加载共享库时出错而卡住
错误日志是:
python - 将类标签与波形图上的数据点对齐
我目前正在尝试将提取的目标值与波形图对齐。提取的目标值是确定说出的单词是否是(是,否,沉默)的音素类。
我一直在尝试将目标值与波形正确对齐,但不知何故最终导致目标类与其放置在波形上的位置之间不对齐。
该图显示了句子“no yes no no no no no yes no”的波形。类别标签如下 静音:0 是:1 否:2
前四个 0 有意义(用红色标记),因为在波形中看不到能量,因此它必须是无声的。但是第五个 0 (标记为绿色)没有意义。它显然不应该在说出某些内容时保持沉默,并且说出单词末尾的下一个标签是 2 类。然后沿着静音区域(标有蓝色)继续。
就像所有标签都向右移动一样,并且或多或少地错位了。我一直在注释波形的方式是这样的:
类标签是使用从使用 kaldi 训练的模型中提取的对齐方式提取的。
使用标准 kaldi 配置,意味着帧长度为 25 毫秒,重叠为 10 毫秒,用于训练/解码的特征是 MFCC。
问题:我是否错误地注释了数据点,如果不是,为什么会发生错位?
更新
@NikolayShmyrev 提醒我,我实际上是在训练之前重新采样了音频,这一定是显示不正确结果的原因之一。修复后,我仍然看到它检测到是/否的位置有一些错位..
代码现在是:
bash - Kaldi librispeech 数据准备错误
我正在尝试做 ASR 系统。我使用 kaldi 手册和 librispeech 语料库。在数据准备步骤中,我收到此错误
这里是发生此错误的一段代码
在文件 wav.scp 我得到这样的行:
在这个数据集中,我只有 flac 文件(他们通过提供的脚本下载),我不明白为什么我们搜索wav 文件?以及如何正确运行数据准备(我没有更改本手册中的源代码。
另外,如果您向我解释这段代码中发生了什么,那么我将非常感谢您,因为我不熟悉 bash 和 perl。
十分感谢!
linux - 安装 Kaldi,在 ubuntu 16.04 上编译 gst-kaldi-nnet2-online 时出错
我尝试做的是在我的 ubuntu 16.04 虚拟机上安装silvius-backend,但不幸的是,如果没有正确编译 kaldi 和gst-kaldi-nnet2-online ,它就无法工作。
我已经成功编译了kaldi,但是当我尝试编译gst-kaldi-nnet2-online时遇到错误。
我按照这些说明进行操作。
这是我所做的:
我正在使用Ubuntu 16.04。
我已经使用以下命令成功编译了kaldi :
在
kaldi/tools
-->sudo make CXX=g++-5
在
kaldi/src
-->sudo CXX=g++-5 ./configure --shared
,sudo make clean CXX=g++-5
,sudo make depend CXX=g++-5
,sudo make CXX=g++-5
我试着做
sudo make depend
,~/gst-kaldi-nnet2-online/src
我得到了这样的错误:
Makefile:6: * 找不到 Kaldi 的 makefile /home/tanel/tools/kaldi-trunk/src/kaldi.mk。发出 make 时使用 KALDI_ROOT 指定 Kaldi 的根目录,例如: KALDI_ROOT=/home/tanel/tools/kaldi-trunk make 。停止。
所以在这条路径中,我将路径更改为:“KALDI_ROOT=~/kaldi”
现在我收到这样的错误:
g++-5 -M -std=c++11 -I.. -I/home/silvius/kaldi/tools/openfst/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/lib/x86_64 -linux-gnu/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/glib-2.0 -I /usr/lib/x86_64-linux-gnu/glib-2.0/include -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/silvius/kaldi/tools/ATLAS_headers/include -msse -msse2 -pthread -g -fPIC -I~/kaldi/src *.cc > .depend.mk
在 gst-audio-source.cc:22:0: ./gst-audio-source.h:23:33 中包含的文件中:致命错误:matrix/kaldi-vector.h:没有此类文件或目录编译终止。在 ./gstkaldinnet2onlinedecoder.h:26:0 包含的文件中,来自 gstkaldinnet2onlinedecoder.cc:49: ././simple-options-gst.h:25:33: 致命错误:util/simple-options.h: 没有文件或目录编译终止。在 simple-options-gst.cc:20:0 中包含的文件中:./simple-options-gst.h:25:33:致命错误:util/simple-options.h:没有此类文件或目录编译终止。Makefile:76:目标“依赖”的配方失败制作:[依赖]错误1(忽略)
您也可以在此链接上看到图片上的错误
PS:我的文件夹的路径是:
我不知道下一步该做什么或有什么问题。自从在互联网上几天以来,我一直在寻找解决方案,但我一无所获。有人能帮我吗?
gstreamer - 与 GStreamer 一起使用时在 Kaldi 中断言
使用Alumae的 GStreamer 插件和以下管道:
appsrc source='appsrc' ! wavparse ! audioconvert ! audioresample ! queue ! kaldinnet2onlinedecoder <parameters snipped> ! filesink location=/tmp/test
我总是得到以下我不明白的断言
KALDI_ASSERT(current_log_post_.NumRows() == info_.frames_per_chunk /
info_.opts.frame_subsampling_factor &&
current_log_post_.NumCols() == info_.output_dim);
这个断言错误是关于什么的?如何解决?
仅供参考,推入管道的数据来自流式 wav 文件,并用wavenc替换kaldinnetonlinedecoder正确生成 Wav 文件而不是最后的文本文件。
编辑 这里是使用的参数:
供您参考,在 python 中使用管道文本表示但对其进行编码(即使用 Gst.Element_Factory.make 等)总是抛出异常
第二次更新 这是断言生成的完整堆栈跟踪
gpu - cudaError_t 1 : 从 'cublasCreate(&handle_)' 返回“__global__ 函数调用未配置”
我在 SGE 集群上使用 Kaldi 运行 ASR 实验,该集群由两个带有 TITAN XP 的工作站组成。随机我遇到以下问题:
错误 (nnet3-train[5.2.62~4-a2342]:FinalizeActiveGpu():cu-device.cc:217) cudaError_t 1:“__global__ 函数调用未配置”从 'cublasCreate(&handle_)' 返回
我猜 GPU 驱动程序或硬件有问题。
你能提供一些帮助吗?