GNU/Linux >> Linux の 問題 >  >> Linux

任意のオーディオ ファイルから音声の一部を抽出するための適切な方法は何ですか?

エナジーディテクター

音声アクティビティ検出には、ALIZE ライブラリに基づく MISTRAL (以前は LIA_RAL) 話者認識ツールキットの EnergyDetector プログラムを使用しています。

オーディオ ファイルではなく機能ファイルで機能するため、信号のエネルギーを抽出する必要があります。私は通常、対数エネルギー パラメーターを使用してケプストラム機能 (MFCC) を抽出し、このパラメーターを VAD に使用します。 SPro 信号処理ツールキットのユーティリティ部分である sfbcep` は、次の方法で使用できます:

sfbcep -F PCM16 -p 19 -e -D -A input.wav output.prm

19 MFCC + 対数エネルギー係数 + 1 次および 2 次のデルタ係数を抽出します。エネルギー係数は 19 番目で、EnergyDetector 構成ファイルで指定します。

次に、次のように EnergyDetector を実行します。

EnergyDetector --config cfg/EnergyDetector.cfg --inputFeatureFilename output 

回答の最後にある構成ファイルを使用する場合は、 output.prm を配置する必要があります prm/ で 、そして lbl/ でセグメンテーションを見つけるでしょう .

参考として、EnergyDetector 構成ファイルを添付します。

*** EnergyDetector Config File
***

loadFeatureFileExtension        .prm
minLLK                          -200
maxLLK                          1000
bigEndian                       false
loadFeatureFileFormat           SPRO4
saveFeatureFileFormat           SPRO4
saveFeatureFileSPro3DataKind    FBCEPSTRA
featureServerBufferSize         ALL_FEATURES
featureServerMemAlloc           50000000
featureFilesPath                prm/
mixtureFilesPath                gmm/
lstPath                         lst/
labelOutputFrames               speech
labelSelectedFrames             all
addDefaultLabel                 true
defaultLabel                    all
saveLabelFileExtension          .lbl
labelFilesPath                  lbl/    
frameLength                     0.01
segmentalMode                   file
nbTrainIt                       8       
varianceFlooring                0.0001
varianceCeiling                 1.5     
alpha                           0.25
mixtureDistribCount             3
featureServerMask               19      
vectSize                        1
baggedFrameProbabilityInit      0.1
thresholdMode                   weight

CMU スフィンクス

CMU Sphinx 音声認識ソフトウェアには、VAD が組み込まれています。これは C で書かれており、それをハックしてラベル ファイルを作成できるかもしれません。

最近追加されたのは、GStreamer のサポートです。これは、GStreamer メディア パイプラインでその VAD を使用できることを意味します。 GStreamer および Python での PocketSphinx の使用を参照してください -> 'vader' 要素

その他の VAD

また、音声/非音声分類を含むファイルを出力する AMR1 コーデックの修正版を使用していますが、そのソースがオンラインで見つかりません。申し訳ありません。


webrtcvad は、Google の優れた WebRTC Voice Activity Detection コードの Python ラッパーです。

探していることを正確に実行するファイル example.py が付属しています。.wav ファイルを指定すると、誰かが話している各インスタンスを見つけて、新しい別の .wav ファイルに書き出します。

webrtcvad API は、example.py が希望どおりに動作しない場合に備えて、非常にシンプルです:

import webrtcvad

vad = webrtcvad.Vad()
# sample must be 16-bit PCM audio data, either 8KHz, 16KHz or 32Khz,
# and 10, 20, or 30 milliseconds long.
print vad.is_voiced(sample)

こんにちは pyAudioAnalysis には無音除去機能があります。

このライブラリでは、無音部分の削除は次のように簡単です:

from pyAudioAnalysis import audioBasicIO as aIO from pyAudioAnalysis import audioSegmentation as aS [Fs, x] = aIO.readAudioFile("data/recording1.wav") segments = aS.silenceRemoval(x, Fs, 0.020, 0.020, smoothWindow = 1.0, Weight = 0.3, plot = True)

removal() を内部的に沈黙させます 半教師付きアプローチに従います。最初に、SVM モデルは、高エネルギーと低エネルギーの短期フレームを区別するようにトレーニングされます。この目的のために、最高エネルギー フレームの 10% と最低エネルギー フレームの 10% が使用されます。次に、SVM が記録全体に (確率論的出力で) 適用され、アクティブなセグメントを検出するために動的しきい値が使用されます。


Linux
  1. .so.2 ファイルとは何ですか?

  2. EC2 から ssh の known_hosts への IP の追加を停止するには?

  3. Windows の Linux の File コマンドに相当するものは何ですか?

  1. iノードは何に適していますか?

  2. Linux のすべての検索に代わるものは何ですか?

  3. Linux test -a コマンド テストとは何ですか?

  1. 上級ユーザー向けの優れた Linux/Unix の本は何ですか?

  2. libtool の .la ファイルは何のためのものですか?

  3. Linuxでのファイルタグ付けの良い解決策は何ですか?