From 92901ef36456b86a36122a1fbfd8ec7ffd28b00c Mon Sep 17 00:00:00 2001 From: pali112 Date: Sat, 18 Jan 2025 14:11:52 +0100 Subject: [PATCH] Dodany tryb emacs --- voskpl.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) mode change 100755 => 100644 voskpl.py diff --git a/voskpl.py b/voskpl.py old mode 100755 new mode 100644 index 31b3e0a..17af37d --- a/voskpl.py +++ b/voskpl.py @@ -13,6 +13,7 @@ model = Model(model_path) recognizer = KaldiRecognizer(model, 16000) listening = False # Flaga stanu nasłuchiwania +emacs_mode = False # Flaga trybu Emacs # Funkcja obsługi danych audio def callback(indata, frames, time, status): @@ -31,7 +32,10 @@ def callback(indata, frames, time, status): def insert_text_with_clipboard(text): try: pyperclip.copy(text) # Kopiowanie tekstu do schowka - pyautogui.hotkey('ctrl', 'v') # Symulacja wklejania + if emacs_mode: + pyautogui.hotkey('shift', 'insert') # Wklejanie w trybie Emacs + else: + pyautogui.hotkey('ctrl', 'v') # Standardowe wklejanie pyautogui.press('space') # Dodanie spacji (opcjonalne) except Exception as e: print(f"Błąd podczas wklejania tekstu: {e}", file=sys.stderr) @@ -62,12 +66,26 @@ def toggle_listening(): thread.daemon = True thread.start() +def toggle_emacs_mode(): + global emacs_mode + emacs_mode = not emacs_mode + update_emacs_button_state() + mode = "Emacs" if emacs_mode else "Standard" + print(f"Tryb wklejania: {mode}") + +# Aktualizacja stanu przycisków def update_button_state(): if listening: toggle_button.config(text="Stop", bg="red", fg="white") else: toggle_button.config(text="Start", bg="lightgrey", fg="black") +def update_emacs_button_state(): + if emacs_mode: + emacs_button.config(text="Tryb: Emacs", bg="blue", fg="white") + else: + emacs_button.config(text="Tryb: Standard", bg="lightgrey", fg="black") + # Funkcja obsługi skrótu klawiszowego def handle_shortcut(event): if event.keysym == 'F1': # F1 jako skrót klawiszowy @@ -75,15 +93,18 @@ def handle_shortcut(event): # Tworzenie GUI def create_gui(): - global toggle_button + global toggle_button, emacs_button root = tk.Tk() root.title("Vosk Rozpoznawanie Mowy") - root.geometry("300x150") + root.geometry("300x200") toggle_button = tk.Button(root, text="Start", command=toggle_listening, width=15, bg="lightgrey", fg="black") toggle_button.pack(pady=10) + emacs_button = tk.Button(root, text="Tryb: Standard", command=toggle_emacs_mode, width=15, bg="lightgrey", fg="black") + emacs_button.pack(pady=10) + exit_button = tk.Button(root, text="Wyjście", command=root.destroy, width=15) exit_button.pack(pady=10) @@ -95,4 +116,3 @@ def create_gui(): # Uruchomienie GUI if __name__ == "__main__": create_gui() -