Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.42 KB | None | 0 0
  1. from os import environ, path
  2. import pyaudio
  3. from pocketsphinx.pocketsphinx import *
  4. from sphinxbase.sphinxbase import *
  5. from pocketsphinx import get_model_path
  6.  
  7. MODELDIR = get_model_path()
  8.  
  9. config = Decoder.default_config()
  10. config.set_string('-hmm', path.join(MODELDIR, 'ru-ru\\zero_ru.cd_cont_4000'))
  11. config.set_string('-lm', path.join(MODELDIR, 'ru-ru\\ru.lm'))
  12. config.set_string('-dict', path.join(MODELDIR, 'ru-ru\\ru.dic'))
  13. config.set_string('-logfn', 'nul')
  14.  
  15. print('Загрузка...')
  16.  
  17. decoder = Decoder(config)
  18.  
  19. p = pyaudio.PyAudio()
  20. stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=1024)
  21.  
  22. stream.start_stream()
  23.  
  24. in_speech_bf = False
  25. decoder.start_utt()
  26.  
  27. print('Готово.')
  28.  
  29. end = False
  30. while True:
  31.     if end:
  32.         break
  33.         print('Распознана команда выхода, завершение работы.')
  34.     end = False
  35.     buf = stream.read(1024)
  36.     if buf:
  37.         decoder.process_raw(buf, False, False)
  38.         if decoder.get_in_speech() != in_speech_bf:
  39.             in_speech_bf = decoder.get_in_speech()
  40.             if not in_speech_bf:
  41.                 decoder.end_utt()
  42.                 for word in decoder.hyp().hypstr.split():
  43.                     print(word)
  44.                     if word == 'выход':
  45.                         end = True
  46.                 decoder.start_utt()
  47.     else:
  48.         break
  49.  
  50. decoder.end_utt()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement