J.A.R.V.I.S-rust/stt_picovoice.py

147 lines
4.5 KiB
Python
Raw Normal View History

import time
import pvporcupine
from pvrecorder import PvRecorder
from rich import print
from utils.benchmark import Benchmark
import keyboard
from utils.time import sleep
porcupine = pvporcupine.create(
access_key='H2JhXpfLdGYG2wMqvc61tipo0uKZQvwkEfA26CAQQe5n1y7zfZGneQ==',
# keywords=['picovoice', 'bumblebee', 'aloha mora'],
keyword_paths=["./pv_custom_keywords/aloha-mora_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/Expellee-aramus_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/Lumas_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/Proud-to-go_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/A-Knocks_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/In-St-Your_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/The-pool-so_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/Lady-also_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/R-Vail-leo_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/Conceal_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/terrifical-status_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/Disillusion_en_windows_v2_1_0.ppn",
"./pv_custom_keywords/Can-finger_en_windows_v2_1_0.ppn"
],
sensitivities=[1] * 13
)
# `-1` is the default input audio device.
recorder = PvRecorder(device_index=0, frame_length=porcupine.frame_length)
recorder.start()
print('Using device: %s' % recorder.selected_device)
bench = Benchmark()
while True:
bench.start()
pcm = recorder.read()
keyword_index = porcupine.process(pcm)
end_time = bench.end()
if keyword_index == 0:
print("[gold1]Aloha mora[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("f")
elif keyword_index == 1:
print("[bright_red]Expelliarmus[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("F1")
sleep(0.05)
keyboard.press_and_release("2")
elif keyword_index == 2:
print("[gold1]Lumos[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("F1")
sleep(0.05)
keyboard.press_and_release("1")
elif keyword_index == 3:
print("[dodger_blue2]Protego[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press("q")
sleep(1/2)
keyboard.release("q")
elif keyword_index == 4:
print("[gold1]Nox[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("F1")
sleep(0.05)
keyboard.press_and_release("1")
elif keyword_index == 5:
print("[bright_red]Incendio[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("F2")
sleep(0.05)
keyboard.press_and_release("1")
elif keyword_index == 6:
print("[dodger_blue2]Depulso[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("F1")
sleep(0.05)
keyboard.press_and_release("4")
elif keyword_index == 7:
print("[gold1]Levioso[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("F1")
sleep(0.05)
keyboard.press_and_release("3")
elif keyword_index == 8:
print("[dodger_blue2]Revelio[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("R")
elif keyword_index == 9:
print("[dodger_blue2]Accio[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("F2")
sleep(0.05)
keyboard.press_and_release("3")
elif keyword_index == 10:
print("[bright_red]Petrificus Totalus[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("f")
elif keyword_index == 11:
print("[dodger_blue2]Disillusionment Spell[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("F2")
sleep(0.05)
keyboard.press_and_release("2")
elif keyword_index == 12:
print("[bright_red]Confringo Spell[/]")
print(f"[grey37]This took[/] [red]{end_time[1]}[/]")
keyboard.press_and_release("F2")
sleep(0.05)
keyboard.press_and_release("4")
#if keyword_index >= 0:
# break
porcupine.delete()