-1

Lors de l'analyse d'un fichier son d'une durée d'environ 1 minute, pocketsphinx divise le fichier en plusieurs résultats. Y a-t-il un moyen de changer le code pour retourner un seul énoncé? J'utilise le code basé sur continuous_test.py.pocketsphinx: renvoie un long résultat comme résultat unique

#!/usr/bin/python 

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') 
#stream = open('10001-90210-01803.wav', '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 
       decoder.start_utt() 
    else: 
     break 
decoder.end_utt() 
+0

Vous pourriez être en mesure de définir une valeur longue pour 'secondsOfSilenceToDetect' –

Répondre

-1
result = "" 

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() 
       result = result + decoder.hyp().hypstr 
       decoder.start_utt() 
    else: 
     break 
decoder.end_utt() 

return result 
+0

Ce juste concatène chaque résultat. Vous obtenez toujours tous les tags , par exemple. –

+0

result.replace ('', '') –

+0

Merci, mais cela ne me laisse toujours pas voir les scores de confiance globale, etc. Pourquoi et comment cela casse-t-il l'énoncé, plutôt que de retourner un résultat? –