Sphinx 4 で音声ファイルを書き起こすように設定した場合、時間インデックス (またはフレーム番号) を取得するにはどうすればよいですか?
私が使用しているコードは次のようになります。
audioURL = ...
AudioFileDataSource dataSource = (AudioFileDataSource) cm.lookup("audioFileDataSource");
dataSource.setAudioFile(audioURL, null);
Result result;
while ((result = Recognizer.recognize()) != null) {
Token token = result.getBestToken();
//DoubleData data = (DoubleData) token.getData();
//long frameNum = data.getFirstSampleNumber(); // data seem always null
String resultText = token.getWordPath(false, false);
...
}
私は結果/トークン オブジェクトから文字起こしの時間を取得しようとしました。たとえば、サブタイトル作成者が行うことと同様です。Result.getFrameNumber() と Token.getFrameNumber() を見つけましたが、オーディオ ファイル全体のコンテキストで結果が見つかった時間 (またはフレーム) ではなく、デコードされたフレーム数を返すようです。
AudioFileDataSource.getDuration()[=private] と Recognizer クラスを見ましたが、必要な転写された時間インデックスを取得する方法がわかりません..
アイデア?:)