Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.39 KB | None | 0 0
  1. import snowboydecoder
  2. import sys
  3. import signal
  4. import pyttsx3
  5.  
  6. interrupted = False
  7.  
  8.  
  9. def signal_handler(signal, frame):
  10. global interrupted
  11. interrupted = True
  12.  
  13.  
  14. def interrupt_callback():
  15. global interrupted
  16. return interrupted
  17.  
  18. flaga=0
  19. wynik=0
  20.  
  21. def operacja():
  22. global flaga
  23. a=input("Operacja (-, +, *, / ) : ")
  24.  
  25. if a == "-":
  26. flaga=2
  27. elif a == "+":
  28. flaga=1
  29. elif a == "*":
  30. flaga=3
  31. elif a == "/":
  32. flaga=4
  33. else:
  34. print("nie znana operacja")
  35. operacja()
  36.  
  37. def spiewaj(wynik):
  38. engine = pyttsx3.init() # object creation
  39.  
  40. """ RATE"""
  41. rate = engine.getProperty('rate') # getting details of current speaking rate
  42. #print (rate) #printing current voice rate
  43. engine.setProperty('rate', 125) # setting up new voice rate
  44.  
  45.  
  46. """VOLUME"""
  47. volume = engine.getProperty('volume') #getting to know current volume level (min=0 and max=1)
  48. #print (volume) #printing current volume level
  49. engine.setProperty('volume',1.0) # setting up volume level between 0 and 1
  50.  
  51. """VOICE"""
  52. voices = engine.getProperty('voices') #getting details of current voice
  53. for voice in voices:
  54. #print(voice)
  55. if voice.languages[0] == b'\x05pl':
  56. engine.setProperty('voice', voice.id)
  57. break
  58. engine.setProperty('voice', voices[0].id) #changing index, changes voices. o for male
  59. #engine.setProperty('voice', voices[1].id) #changing index, changes voices. 1 for female
  60.  
  61. engine.say("Wynik")
  62. engine.say(wynik)
  63.  
  64. #engine.say('My current speaking rate is ' + str(rate))
  65. engine.runAndWait()
  66. engine.stop()
  67.  
  68.  
  69. def liczba(znak):
  70. global wynik
  71. abc = znak
  72. print("liczba:", abc)
  73.  
  74. if flaga == 1:
  75. wynik=wynik+abc
  76. elif flaga == 2:
  77. wynik=wynik-abc
  78. elif flaga == 3:
  79. wynik=wynik*abc
  80. elif flaga == 4:
  81. wynik=wynik/abc
  82. elif flaga == 0:
  83. wynik=abc
  84. else:
  85. print("???")
  86.  
  87. print("wynik:", wynik)
  88. spiewaj(wynik)
  89. operacja()
  90.  
  91.  
  92.  
  93. #engine.say("Hello World!")
  94. #engine.say('My current speaking rate is ' + str(rate))
  95.  
  96.  
  97.  
  98. #models = sys.argv[1:]
  99. models = ["baza/jeden.pmdl","baza/dwa.pmdl", "baza/trzy.pmdl", "baza/cztery.pmdl", "baza/piec.pmdl", "baza/szesc.pmdl", "baza/siedem.pmdl", "baza/osiem.pmdl", "baza/dziewiec.pmdl", "baza/dziesiec.pmdl"]
  100. #models = ["baza/jeden.pmdl","baza/dwa.pmdl", "baza/trzy.pmdl", "baza/cztery.pmdl", "baza/piec.pmdl", "baza/szesc.pmdl", "baza/siedem.pmdl", "baza/osiem.pmdl", "baza/dziewiec.pmdl", "baza/dziesiec.pmdl", "baza/odjac.pmdl", "baza/dodac.pmdl", "baza/pomnozyc.pmdl", "baza/podzielic.pmdl"]
  101.  
  102. signal.signal(signal.SIGINT, signal_handler)
  103.  
  104. sensitivity = [0.5]*len(models)
  105. detector = snowboydecoder.HotwordDetector(models, sensitivity=sensitivity)
  106. callbacks = [lambda: liczba(1), lambda: liczba(2), lambda: liczba(3), lambda: liczba(4), lambda: liczba(5), lambda: liczba(6), lambda: liczba(7), lambda: liczba(8), lambda: liczba(9), lambda: liczba(10)]
  107. #callbacks = [lambda: liczba(1), lambda: liczba(2), lambda: liczba(3), lambda: liczba(4), lambda: liczba(5), lambda: liczba(6), lambda: liczba(7), lambda: liczba(8), lambda: liczba(9), lambda: liczba(10), lambda: odjac(), lambda: dodac(), lambda: pomnozyc(), lambda: podzielic()]
  108.  
  109.  
  110. # main loop
  111. # make sure you have the same numbers of callbacks and models
  112. detector.start(detected_callback=callbacks,
  113.  
  114. interrupt_check=interrupt_callback,
  115. sleep_time=0.03)
  116.  
  117. detector.terminate()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement