問題タブ [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.

0 投票する
1 に答える
697 参照

audio - オーディオ ファイルのスペクトログラム値について

現在、パワースペクトルがカルディフレームワークにどのように保存されているかを理解するのに苦労しています。

を使用していくつかのデータファイルを正常に作成したようです

これにより、次のように、さまざまなオーディオ ファイルのデータ ポイントを含む大きなファイルが得られます

問題は、このデータ セットをどのように解釈すればよいかわからないことです。この前に fft が実行されることはわかっています。これは良いことだと思います。

上記の出力例は、長さが 1 秒のファイルからのものです。
スペクトグラムの計算にはすべての標準が使用されているため、サンプル周波数は 16 kHz、フレーム長 = 25 ミリ秒、オーバーラップ = 10 ミリ秒にする必要があります。最初のセットのデータ ポイントの数は 25186 です。

これらの情報が与えられた場合、何らかの方法で出力を解釈できますか?

通常、fft を実行するとき、周波数ビンのサイズは、 がサンプル周波数で、が FFT 長F_s/N=bin_sizeである場所によって抽出できます。では、これは同じケースですか?16000/25186 = 0.6... Hz/ビン?F_sN

それとも私はそれを間違って解釈していますか?

0 投票する
1 に答える
1969 参照

audio - librosa のプロットが異なるのはなぜですか?

現在、パラメーターが別のフレームワーク (Kaldi) の stfft プロセスに似ているように、librosa を使用して stfft を実行しようとしています。

オーディオファイルはfash-b-an251です

Kaldi は、16 KHz のサンプル周波数、window_size = 400 (25ms)、hop_length=160 (10ms) を使用してそれを行います。

これから抽出されたスペクトログラムは次のようになります。

ここに画像の説明を入力 次に、librosa を使用して同じことを試みました。

これは基本的にここから取られます:

パラメーターに適合するように stfft 関数を変更しました..問題は、まったく異なるプロットを作成することです..

ここに画像の説明を入力

だから..私はlibrosaで間違っているのですか?..なぜこのプロットはkaldiで作成されたものと大きく異なるのですか?

何か不足していますか?

0 投票する
1 に答える
1043 参照

python - Tornado サーバーでリクエストタイムアウトを設定するには?

私は kaldi 用のgstreamer サーバーを実行しています。これは内部的に tornado を使用して、転写用の HTTP エンドポイントを提供します。例: example.com:8888/dynamic/recognize

これは関連するコードだと思います:

ソース

私は Tornado には詳しくありませんが、tornado.web.Application docsを見ると、タイムアウトについての言及はありませんsettings

他にも同様の質問がいくつか見られました。たとえば、 this oneですが、クライアント側を扱っています。この回答は関連があるようですが、私の場合に適用する方法がわかりません。

0 投票する
4 に答える
3876 参照

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 をインストールしようとしましたが、何も機能しませんでした。どんな助けでも感謝します。ありがとう!

0 投票する
1 に答える
235 参照

audio - ログなしで MFCC 係数を抽出しますか?

私は現在、最後にDCTを実行せずにMFCC機能を使用してcnnをトレーニングする論文の作品を複製しようとしています。これは基本的に、フィルター バンクのエネルギーの対数です。

kaldi は make_mfcc.sh スクリプトを使用して MFCC 機能を計算できることを知っています。しかし、スクリプトを変更して、最後に DCT を実行せずに MFCC を計算することはできますか?

MFCC は、一般的に次のように導出されます。

信号 (ウィンドウ処理された抜粋) のフーリエ変換を行います。

  1. 上で取得したスペクトルのパワーを、三角形のオーバーラップ ウィンドウを使用してメル スケールにマッピングします。
  2. 各メル周波数でのパワーの対数を取ります。
  3. あたかも信号であるかのように、メル ログ ベキのリストの離散コサイン変換を取ります。
  4. MFCC は、結果として得られるスペクトルの振幅です。
0 投票する
0 に答える
157 参照

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セットの機能(音素をデコードするのに十分な)が与えられた場合、それを事前に作成されたスクリプトを指定して音素にデコードすることは可能ですか?