2016-08-06 55 views
-1

Ich habe sowohl pocketsphinx und sphinxbase Pakete in Python installiert und eingerichtet. Ich habe auch Code der Spracherkennung für Github genommen und sowohl Daten-und Modus-Verzeichnis nach Bedarf geändert, aber immer noch kann es nicht per Stimme streamen, wenn ich versuche, es durch "python test.py" auszuführen Hier ist der Code:Python pocketsphinx Erkennung vom Mikrofon

#!/usr/bin/env python 
import os 
import sphinxbase as sb 
import pocketsphinx as ps 

MODELDIR = '/usr/lib/python2.7/site-packages/speech_recognition/pocketsphinx-data' 
DATADIR='/usr/lib/python2.7/site-packages/speech_recognition/pocketsphinx-data' 
# Create a decoder with certain model 
config = ps.Decoder.default_config() 
config.set_string('-hmm', "/usr/lib/python2.7/site-packages/speech_recognition/pocketsphinx-data/en-US/acoustic-model") 
config.set_string('-lm', os.path.join(MODELDIR, 'en-US/language-model.lm.bin')) 
config.set_string('-dict', os.path.join(MODELDIR, 'en-US/pronounciation-dictionary.dict')) 
decoder = ps.Decoder(config) 

# Decode streaming data. 
decoder.start_utt() 
stream = open(os.path.join(DATADIR, 'en-US/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()]) 

Bitte sagen Sie mir, wie Sie es ausführen.

+0

Sie benötigen die Beschreibung des Problems Sie –

+0

sehen Eigentlich gibt es auf dem Terminal nicht genau das Problem, zu liefern. Es druckt alle Details der Module korrekt, aber es streamt nicht (nehme irgendeinen Vice-Eingang), wenn ich versuche, es auszuführen. –

+0

Für Aufnahme-Mikrofon müssen Sie pyaudio Stream nehmen, können Sie Proben in Quellen finden –

Antwort

2

Kontinuierliche Erkennung von Mikrofon sollte wie folgt aussehen:

#!/usr/bin/python 

from os import environ, path 
import pyaudio 

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

MODELDIR = "../../../model" 

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')) 
decoder = Decoder(config) 

p = pyaudio.PyAudio() 
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=1024) 
stream.start_stream() 

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()