2016-07-28 2 views
3

Я пытаюсь сделать распознавание речи с помощью python. В дополнение к этому, мне нужно получить время начала и конца каждого слова.Python - смещение времени распознавания речи

Я бы предпочел использовать бесплатную библиотеку, которая может справиться с этим. Я слышал, что Sphinx может это сделать, но я не мог найти примеров (для python).

Буду признателен за любую помощь или предложения.

ответ

0

Что-то вроде этого:

from os import environ, path 

from pocketsphinx.pocketsphinx import * 
from sphinxbase.sphinxbase import * 

MODELDIR = "../../../model" 
DATADIR = "../../../test/data" 

config = Decoder.default_config() 
config.set_string('-hmm', path.join(MODELDIR, 'en-us/en-us')) 
config.set_string('-lm', path.join(MODELDIR, 'en-us/en-us.lm.bin')) 
config.set_string('-dict', path.join(MODELDIR, 'en-us/cmudict-en-us.dict')) 
config.set_string('-logfn', '/dev/null') 
decoder = Decoder(config) 

stream = open(path.join(DATADIR, 'goforward.raw'), 'rb') 

in_speech_bf = False 
decoder.start_utt() 
while True: 
    buf = stream.read(1024) 
    if buf: 
     decoder.process_raw(buf, False, False) 
     if decoder.get_in_speech() != in_speech_bf: 
      in_speech_bf = decoder.get_in_speech() 
      if not in_speech_bf: 
       decoder.end_utt() 
       print ('Result:', decoder.hyp().hypstr) 
       print ([(seg.word, seg.prob, seg.start_frame, seg.end_frame) for seg in decoder.seg()]) 
       decoder.start_utt() 
    else: 
     break 
decoder.end_utt() 

Больше примеров here.

Смежные вопросы