0006mathew

pocketsphinx

Apr 5th, 2016
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. import sys,os
  2. import pyaudio
  3. import wave
  4. from pocketsphinx.pocketsphinx import *
  5. from sphinxbase.sphinxbase import *
  6. hmdir = "/home/orion/pocketsphinx-master/model/en-us/en-us/"
  7. lmd = "/home/orion/pocketsphinx-master/model/en-us/en-us.lm.bin"
  8. dictd = "/home/orion/pocketsphinx-master/model/en-us/cmudict-en-us.dict"
  9.  
  10.  
  11. def decodeSpeech(hmmd,lmdir,dictp,wavfile):
  12. config = Decoder.default_config()
  13. config.set_string('-hmm', hmmd)
  14. config.set_string('-lm', lmdir)
  15. config.set_string('-dict', dictp)
  16. decoder = Decoder(config)
  17. decoder.start_utt()
  18. stream = open(wavfile, 'rb')
  19. while True:
  20. buf = stream.read(1024)
  21. if buf:
  22. decoder.process_raw(buf, False, False)
  23. else:
  24. break
  25. decoder.end_utt()
  26. result = decoder.hyp()
  27. print "haha"
  28. print result
  29. return result
  30.  
  31. CHUNK = 1024
  32. FORMAT = pyaudio.paInt16
  33. CHANNELS = 1
  34. RATE = 16000
  35. RECORD_SECONDS = 10
  36.  
  37. for x in range(10):
  38. fn = "o"+str(x)+".wav"
  39. p = pyaudio.PyAudio()
  40. stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK)
  41. print("* recording")
  42. frames = []
  43. for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
  44. data = stream.read(CHUNK)
  45. frames.append(data)
  46. print("* done recording")
  47. stream.stop_stream()
  48. stream.close()
  49. p.terminate()
  50. wf = wave.open(fn, 'wb')
  51. wf.setnchannels(CHANNELS)
  52. wf.setsampwidth(p.get_sample_size(FORMAT))
  53. wf.setframerate(RATE)
  54. wf.writeframes(b''.join(frames))
  55. wf.close()
  56. wavfile = fn
  57. recognised = decodeSpeech(hmdir,lmd,dictd,wavfile)
  58. print "kira pwolich"
  59. print recognised
Add Comment
Please, Sign In to add comment