问题标签 [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 - 使用 Kaldi-ASR 识别语音命令?
我的女儿和我正在建造一匹机器人马。一个设计目标是使用语音识别来识别给马的命令并做出相应的反应。由于大多数命令几乎不是英语单词,因此我需要一些可以创建自定义单词的东西。我在 Kaldi-ASR 的日常工作中有一些经验,所以我想我会先研究它的功能。
识别语法将包含几个命令:Walk(走路或两个接吻的声音)、Trot(TT-ro-TT)、Gallop(Gee-yup)、Stop(哇)、“Go faster”命令(来吧或咯咯的舌头)加上马的名字和一些像“好孩子”这样的短语和一些听起来像咯咯的声音。
它将运行的硬件将受到限制,可能是 Raspberry Pi 4。(但如果这种类型的识别有显着的速度优势,我可以谈论更强大的东西。)
第一个挑战是,即使是同一个人发出的马指令也会有很多不同的重点、节奏和口音。EG Giddy-up 的发音可能像 Giddy Up、GEE up、EE-YUP、gee-UP 等
。第二个是一些马的命令不是单词:咯咯的舌头,接吻的声音是两个主要的。
第一个问题:Kaldi 会适合这个吗?(我使用它,但对它背后的理论知之甚少。)它是否能很好地处理大量的发音?它可以用于诸如咯咯的舌头或发出接吻的声音之类的非单词话语吗?如果没有这种类型的识别,是否有更好的识别引擎?
第二个问题:我如何处理各种发音?考虑它们不同的单词并分别训练它们,或者如果我给它大量的样本数据来训练,Kaldi 是否能够处理它?IOW,将发音分成不同的单词会得到更好的识别,还是使用在训练音频中有很多变化的单个单词训练?
关于如何最好地训练这些类型的声音的任何其他提示也很受欢迎。
awk - 读取/写入文件中的奇怪 awk 输出
我正在开发一个关于使用 Tedlium 数据集的现有示例的 Kaldi 项目。每一步都运行良好,直到清理阶段。我有一个长度不匹配的问题。检查所有脚本后,我发现问题出在 lattice_oracle_align.sh
参考:https ://github.com/kaldi-asr/kaldi/blob/master/egs/wsj/s5/steps/cleanup/lattice_oracle_align.sh
我相信问题出在第 142 行。
上面的行应该逐行读取 per_utt_details.tx,每次读取 #csid 时都应该在 edits.txt 中写入一行 per_utt_details 中的文本如下所示。
per_utt_details.txt 中有 1073046 行。我预计edits.txt 中有268262 行。但是,edits.txt 中只存在 48746 行。
asp.net-core - dot net core 3.1 Web 应用程序中的语音到文本,而不使用 azure 等云服务
我正在尝试在我的 .net core 3.1 Web 应用程序上实现语音到文本,而不使用 Azure、AWS 或 Google 等任何云服务。
我找到了 deepspeech、kaldi、pocketpheonix 等选项。看起来它们可以在 .net 核心应用程序上实现,但作为 .net 核心和后端开发的初学者,我不知道如何使用它们,而且它们的文档对初学者不太友好。
因此,如果您可以简要概述如何在 .net core 上实现这些 api 或链接到一些文章,那将非常有帮助。
speech-recognition - 构造 TableReader 时出错:rspecifier 是 scp:data/train/split1/1/feats.scp
我按照 kaldi for dummies 教程进行操作,但在 MONO TRAINING 部分遇到此错误:===== MONO TRAINING =====
steps/train_mono.sh --nj 1 --cmd run.pl data/train data/lang exp/mono steps/train_mono.sh:初始化单声道系统。feat-to-dim 'ark,s,cs:apply-cmvn --utt2spk=ark:data/train/split1/1/utt2spk scp:data/train/split1/1/cmvn.scp scp:data/train/split1 /1/feats.scp 方舟:- | 添加增量方舟:- 方舟:- |' - apply-cmvn --utt2spk=ark:data/train/split1/1/utt2spk scp:data/train/split1/1/cmvn.scp scp:data/train/split1/1/feats.scp ark:- add-三角洲方舟:- 方舟:-
WARNING (apply-cmvn[5.5.863~1-813b7]:Open():util/kaldi-table-inl.h:106) 无法打开脚本文件 data/train/split1/1/feats.scp
错误 (apply-cmvn[5.5.863~1-813b7]:SequentialTableReader():util/kaldi-table-inl.h:860) 构造 TableReader 时出错:rspecifier is scp:data/train/split1/1/feats.scp
[堆栈跟踪:] /home/jasonbourne/kaldi/src/lib/libkaldi-base.so(kaldi::MessageLogger::LogMessage() const+0xb42) [0x7f046fa3c692] apply-cmvn(kaldi::MessageLogger::LogAndThrow ::operator=(kaldi::MessageLogger const&)+0x21) [0x55f1724e2f3f] apply-cmvn(kaldi::SequentialTableReaderkaldi::KaldiObjectHolder<kaldi::Matrix<float > >::SequentialTableReader(std::__cxx11::basic_string<char , std::char_traits, std::allocator > const&)+0xc2) [0x55f1724ea550] apply-cmvn(main+0x79b) [0x55f1724e0995] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [ 0x7f046eea6bf7] apply-cmvn(_start+0x2a) [0x55f1724e011a]
kaldi::KaldiFatalErrorERROR (feat-to-dim[5.5.863~1-813b7]:main():feat-to-dim.cc:58) 无法读取任何功能(空存档?)
我尝试在digits/data/train/文件夹中删除自动生成的拆分文件夹,然后再次运行,但仍然是同样的问题
我不应该有任何 utf8 问题,因为我只是在尝试说 1、2、3 的音频,并且相应的文本也是 1、2、3
我还找到了一个 youtube ( https://www.youtube.com/watch?v=IEMVk7r8_-M ) 教程,假设是在克隆他的代码 ( https://github.com/Muradean/kaldi_toy_example ) 然后执行运行后,它应该已经可以工作了,但我得到了同样的错误:Error constructoring TableReader: rspecifier is scp:data/train/split1/1/feats.scp
对不起,我是新手。我希望你能指导我。
python - 需要为每次转录重新加载 vosk 模型?
我使用的 vosk 模型是 vosk-model-en-us-aspire-0.2 (1.4GB)。每次都需要相当长的时间来加载 vosk 模型。每次都需要重新创建vosk对象吗?如果我们只加载一次模型,加载模型需要很长时间。它可以节省至少一半的时间。
python - 如何将 Python 字典转换为 Numpy 数组?
因此,来自 Python 的 sklearn 库的逻辑回归具有.fit()
将x_train
(特征)和y_train
(标签)作为参数来训练分类器的函数。
看起来x_train.shape = (number_of_samples, number_of_features)
对于 x_train 我应该使用提取的 xvector.scp 文件,我正在阅读如下:
我可以像这样打印内容:
现在 b 变量就像一个字典,你可以得到对应 id 的 x 向量值。我想使用 sklearn Logistic Regression 对 x 向量进行分类,为了使用 .fit() 方法,我应该将数组作为参数传递。
我的问题是如何制作一个只包含 xvector 变量的数组?
PS:file_ids 大约是 100 万,每个 xvector 的长度为 512,对于数组来说太大了
kaldi - 在多个解码线程中共享语法 Fst 的正确方法
可以在多个解码线程之间共享grammar-fst
类型吗?HCLG.fst
准确的说,我打算ConstGrammerFst
在多个线程中共享一个指针,在这里我会使用不同的SingleUtteranceNnet3DecoderTpl
解码器实例来使用共享的实例ConstGrammerFst
进行解码。
我们已经有一个工作系统,Fst<StdArc>
在内存中在多个解码器之间共享,并且系统运行良好。
但是当我们尝试使用时,ConstGrammerFst
我们会在压力测试中得到以下错误。
对于极少数文件而不是所有文件,我们会随机收到这些错误。因此,我想知道ConstGrammerFst
线程是否安全?
python - 部署经过 Kaldi 训练的 ASR 模型以实时转录文本的方法
正如标题所说,我正在尝试找到一种方法来部署经过 kaldi 训练的模型来转录实时音频信息。
emscripten - 传递任何 -msse、-msse2、-msse3、-mssse3、-msse4.1、-msse4.2、-mavx、-mfpu=neon 标志也需要传递 -msimd128
我在编译 Kaldi 时遇到了一些问题wasm
:https ://gitlab.inria.fr/kaldi.web/kaldi-wasm/-/wikis/build_details.md#cpp-bind
我首先按照这些指示编译了 clapack-wasm:https ://prod-gitlab.inria.fr/kaldi.web/clapack-wasm 并得到了以下文件:
我将 Kaldi 配置为wasm
:
但是,然后,我得到这些错误:
- 操作系统:Ubuntu 18.04.4 桌面
- gcc : gcc 版本 9.3.0 (Ubuntu 9.3.0-11ubuntu0~18.04.1)
如何解决这些错误消息并使其工作?
shell - 如何解决这个 Kaldi ASR MFCC 特征提取
我面临一些与 Kaldi 特征提取相关的问题。我是 Kaldi 的新手,请帮帮我。
操作系统:Ubuntu 18.04 我目前正在尝试提取 MFCC 功能并从语音中获取 VAD,当我运行文件 mfcc.sh 时
我收到了这个错误
即使我正确提供了 kaldi 路径,它也会向我显示此错误,如果需要,我会提供更多详细信息。请帮我解决这个问题。
谢谢