問題タブ [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.
audio - オーディオ ファイルのスペクトログラム値について
現在、パワースペクトルがカルディフレームワークにどのように保存されているかを理解するのに苦労しています。
を使用していくつかのデータファイルを正常に作成したようです
これにより、次のように、さまざまなオーディオ ファイルのデータ ポイントを含む大きなファイルが得られます。
問題は、このデータ セットをどのように解釈すればよいかわからないことです。この前に fft が実行されることはわかっています。これは良いことだと思います。
上記の出力例は、長さが 1 秒のファイルからのものです。
スペクトグラムの計算にはすべての標準が使用されているため、サンプル周波数は 16 kHz、フレーム長 = 25 ミリ秒、オーバーラップ = 10 ミリ秒にする必要があります。最初のセットのデータ ポイントの数は 25186 です。
これらの情報が与えられた場合、何らかの方法で出力を解釈できますか?
通常、fft を実行するとき、周波数ビンのサイズは、 がサンプル周波数で、が FFT 長F_s/N=bin_size
である場所によって抽出できます。では、これは同じケースですか?16000/25186 = 0.6... Hz/ビン?F_s
N
それとも私はそれを間違って解釈していますか?
audio - librosa のプロットが異なるのはなぜですか?
現在、パラメーターが別のフレームワーク (Kaldi) の stfft プロセスに似ているように、librosa を使用して stfft を実行しようとしています。
オーディオファイルはfash-b-an251です
Kaldi は、16 KHz のサンプル周波数、window_size = 400 (25ms)、hop_length=160 (10ms) を使用してそれを行います。
これから抽出されたスペクトログラムは次のようになります。
これは基本的にここから取られます:
パラメーターに適合するように stfft 関数を変更しました..問題は、まったく異なるプロットを作成することです..
だから..私はlibrosaで間違っているのですか?..なぜこのプロットはkaldiで作成されたものと大きく異なるのですか?
何か不足していますか?
python - Tornado サーバーでリクエストタイムアウトを設定するには?
私は kaldi 用のgstreamer サーバーを実行しています。これは内部的に tornado を使用して、転写用の HTTP エンドポイントを提供します。例: example.com:8888/dynamic/recognize
これは関連するコードだと思います:
私は Tornado には詳しくありませんが、tornado.web.Application
docsを見ると、タイムアウトについての言及はありませんsettings
。
他にも同様の質問がいくつか見られました。たとえば、 this oneですが、クライアント側を扱っています。この回答は関連があるようですが、私の場合に適用する方法がわかりません。
linux - Ubuntu 16.04 での Kaldi ツールキットのインストール エラー
こんにちは、Ubuntu 16.04 に音声認識用の Kaldi ツールキットをインストールしようとしています。INSTALL ファイルの指示に従いました。
(1) tools/ に移動し、そこにある INSTALL の指示に従います。
ツールの INSTALL ファイルの手順に従い、次の出力を得ました。
$ extras/check_dependencies.sh
../tools/extras/check_dependencies.sh: all OK.
make
エラーなしで実行されました。見たい場合に備えて、最後の数行を次に示します
$メイク
今、私は次のステップに進みました
(2) src/ に移動し、そこで INSTALL の指示に従います。
src フォルダーで、configure
次の出力で実行されます
$ ./configure
Configuring ...
Backing up kaldi.mk to kaldi.mk.bak ...
Checking compiler g++-4.9 ...
Checking OpenFst library in /home/xxx/Downloads/kaldi/tools/openfst ...
Doing OS specific configurations ...
On Linux: Checking for linear algebra header files ...
Using ATLAS as the linear algebra library.
Successfully configured for Debian/Ubuntu Linux [dynamic libraries] with ATLASLIBS =/usr/lib/libatlas.so.3 /usr/lib/libf77blas.so.3 /usr/lib/libcblas.so.3 /usr/lib/liblapack_atlas.so.3
CUDA will not be used! If you have already installed cuda drivers
and cuda toolkit, try using --cudatk-dir=... option. Note: this is
only relevant for neural net experiments
Info: configuring Kaldi not to link with Speex (don't worry, it's only needed if you
intend to use 'compress-uncompress-speex', which is very unlikely)
SUCCESS
To compile: make clean -j; make depend -j; make -j
... or e.g. -j 10, instead of -j, to use a specified number of CPUs
debug mode enabled...
+ exit 0
$ make depend
もエラーなしで実行されました。しかし、makeを実行すると、次のエラーが表示されます(非常に長いため、すべてをコピーしているわけではありません。必要に応じて、完全な出力を投稿できます)
$メイク
ライブラリを手動で検索したこともあり、../tools/openfst の場所にあります。システム全体に openfst をインストールしようとしましたが、何も機能しませんでした。どんな助けでも感謝します。ありがとう!
audio - ログなしで MFCC 係数を抽出しますか?
私は現在、最後にDCTを実行せずにMFCC機能を使用してcnnをトレーニングする論文の作品を複製しようとしています。これは基本的に、フィルター バンクのエネルギーの対数です。
kaldi は make_mfcc.sh スクリプトを使用して MFCC 機能を計算できることを知っています。しかし、スクリプトを変更して、最後に DCT を実行せずに MFCC を計算することはできますか?
MFCC は、一般的に次のように導出されます。
信号 (ウィンドウ処理された抜粋) のフーリエ変換を行います。
- 上で取得したスペクトルのパワーを、三角形のオーバーラップ ウィンドウを使用してメル スケールにマッピングします。
- 各メル周波数でのパワーの対数を取ります。
- あたかも信号であるかのように、メル ログ ベキのリストの離散コサイン変換を取ります。
- MFCC は、結果として得られるスペクトルの振幅です。
speech-recognition - うーんの事後確率を抽出するにはどうすればよいですか?
モデルからフレーム レベルでアライメントを抽出しました。
各電話クラスは data/lang/phones.txt ファイルで定義されており、このファイルに従って電話を X 、 X_B 、X_I、X_E、X_S に分けることができます。
_B 音素開始 _E 音素終了、_S 音素シングルトン、_I 中間音素、X 単なる音素。
私は、各音素が 3 つの状態のうーんを使用してデコードされたという印象を受けました。したがって、3 つのフレーム => 3 つの特徴のセット => 3 つのシーケンス化された放出確率のセット => 与えられたフレーム レベルで電話をデコードすることが可能であると考えました。音素の決定。
しかし、これは当てはまらないようです。そのため、機能には静的、デルタ、デルタ-デルタからの情報が含まれている必要があります。
この場合、音素ごとに 3 つの状態の期待される事後確率を抽出することは可能ですか?
そして、1セットの機能(音素をデコードするのに十分な)が与えられた場合、それを事前に作成されたスクリプトを指定して音素にデコードすることは可能ですか?