2016-06-22 4 views
1

pocketsphinxを使用して各セグメントの開始および終了タイム・スタンプを抽出しようとしています。以下のコードは、単語トークンを抽出するためのコードです。タイムスタンプにはどのようにアクセスできますか?セグメント・タイムスタンプin pocketsphinx

私はhttp://cmusphinx.sourceforge.net/doc/pocketsphinx/index.htmlここのドキュメントを見てみましたが、この方法に

#!/usr/bin/env python 
import os 

import sphinxbase as sb 
import pocketsphinx as ps 

MODELDIR = 'deps/pocketsphinx/model' 
DATADIR = 'deps/pocketsphinx/test/data' 

# Create a decoder with certain model 
config = ps.Decoder.default_config() 
config.set_string('-hmm', os.path.join(MODELDIR, 'en-us/en-us')) 
config.set_string('-lm', os.path.join(MODELDIR, 'en-us/en-us.lm.bin')) 
config.set_string('-dict', os.path.join(MODELDIR, 'en-us/cmudict-en-us.dict')) 
decoder = ps.Decoder(config) 

# Decode streaming data. 
decoder.start_utt() 
stream = open(os.path.join(DATADIR, 'goforward.raw'), 'rb') 
while True: 
    buf = stream.read(1024) 
    if buf: 
     decoder.process_raw(buf, False, False) 
    else: 
     break 
decoder.end_utt() 
stream.close() 
print('Best hypothesis segments:', [seg.word for seg in decoder.seg()]) 

答えて

1

を見つけることができなかったあなたは、フレームサイズは1/100秒であるipython

print('Best hypothesis segments:', [(seg.word, seg.start_frame, seg.end_frame) for seg in decoder.seg()]) 

でセグメントを探索することができます。

+0

よろしくお願い致します。 end_frame_iからstart_frame_i + 1までの時間は常に1フレームですか?セグメント間に長い休止がある場合はどうなりますか? –

+0

連続音声の場合、https://github.com/cmusphinx/pocketsphinx/blob/master/swig/python/test/continuous_test.pyのような連続処理が必要です。ストリームの先頭から時刻が正しく報告されます。無音期間は空になります。 –

+0

よろしくお願いいたします。そしてそれを使って、私はどのようにタイムスタンプにアクセスしますか?申し訳ありませんが、ドキュメントに問題があります –

関連する問題