0

I am trying to use Pocketsphinx for voice recognition. When I was trying to include it in python, using this file:

#!/usr/bin/python

from os import environ, path

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

MODELDIR = "pocketsphinx-5prealpha/model"
DATADIR = "pocketsphinx-5prealpha/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)

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

But when I run the file, I get an error from pyAudio saying Invalid Sample Rate. This is the output that I get: Error Screenshot

  • 1
    Apparently, your sound device (whatever it is) does not support 16 kHz. – CL. Mar 7 '17 at 8:51
  • So, how can I reduce it? If i reduce it will it be ok? – Alok Naushad Mar 7 '17 at 11:09
  • 1
    Use a supported rate. I don't know your hardware, but try 48 or 44.1 kHz. – CL. Mar 7 '17 at 11:51
  • 1
    Yes... It worked when I put 44100.. Thanks! But now i have got the error input overflowed... i have checked with almost all of the questions. One said trying to change the chunk value but it didn't work for me when i put a few values... I will try... Can you give a solution?? – Alok Naushad Mar 11 '17 at 16:16
  • You need a larger buffer size (as large as possible). But if your CPU is too slow, no amount of buffering will help. – CL. Mar 11 '17 at 19:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.