2013-09-27 2 views
0

Sphinx 4에서 오디오 파일을 복사하도록 설정할 때 시간 인덱스 (또는 프레임 번호)를 얻으려면 어떻게해야합니까?스핑크스 4 전사 시간 인덱스

코드 I는 다음과 같다을 사용하고 있습니다 :

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 보았지만 필요한 전사 시간 인덱스를 얻는 방법을 알아낼 수 있나요? :)

답변

1

프레임 번호는 100 프레임/초인 프레임 속도를 곱한 시간입니다.

어쨌든, 여기에 타이밍을 반환 자막 데모에 대한 패치를 찾을하십시오

http://sourceforge.net/mailarchive/forum.php?thread_name=1380033926.26218.12.camel%40localhost.localdomain&forum_name=cmusphinx-devel

패치는하지 1.0 베타 버전으로, Subversion을 트렁크에 적용됩니다.

이 부분은 주요 리팩토링 중이므로 API는 곧 폐기 될 예정입니다. 그러나 현재의 모든 복잡성없이 몇 번의 통화만으로 자막을 만들 수 있기를 바랍니다.