demo2.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import snowboydecoder
  2. import sys
  3. import signal
  4. # Demo code for listening to two hotwords at the same time
  5. interrupted = False
  6. def signal_handler(signal, frame):
  7. global interrupted
  8. interrupted = True
  9. def interrupt_callback():
  10. global interrupted
  11. return interrupted
  12. if len(sys.argv) != 3:
  13. print("Error: need to specify 2 model names")
  14. print("Usage: python demo.py 1st.model 2nd.model")
  15. sys.exit(-1)
  16. models = sys.argv[1:]
  17. # capture SIGINT signal, e.g., Ctrl+C
  18. signal.signal(signal.SIGINT, signal_handler)
  19. sensitivity = [0.5]*len(models)
  20. detector = snowboydecoder.HotwordDetector(models, sensitivity=sensitivity)
  21. callbacks = [lambda: snowboydecoder.play_audio_file(snowboydecoder.DETECT_DING),
  22. lambda: snowboydecoder.play_audio_file(snowboydecoder.DETECT_DONG)]
  23. print('Listening... Press Ctrl+C to exit')
  24. # main loop
  25. # make sure you have the same numbers of callbacks and models
  26. detector.start(detected_callback=callbacks,
  27. interrupt_check=interrupt_callback,
  28. sleep_time=0.03)
  29. detector.terminate()