====== OBS ====== Texto dinámico que lo coge de un fichero de texto \\ https://www.youtube.com/watch?v=78CcCbUYwgg Rótulo con animación. Hacer un grupo con texto y caja, botón derecho y "Show transaction" y "hide transaction" y se puede hacer que aparezca de derecha a izquierda\\ https://www.youtube.com/watch?v=1KhTqnv1SWE ====== Configurar tecla con voz ====== import pyaudio from vosk import Model, KaldiRecognizer import json import subprocess from gtts import gTTS import os # Cargar el modelo de Vosk model = Model("vosk-model-es-0.42") recognizer = KaldiRecognizer(model, 16000) p = pyaudio.PyAudio() # Configurar PyAudio para usar PulseAudio (índice 15) stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=8000, input_device_index=15) stream.start_stream() print("Esperando el comando de voz 'abracadabra rótulo uno'...") while True: data = stream.read(4000, exception_on_overflow=False) if recognizer.AcceptWaveform(data): result = recognizer.Result() result_json = json.loads(result) # Convertir a JSON para extraer el texto text = result_json.get("text", "") # Obtener el texto reconocido # Imprimir el texto detectado print(f"Texto detectado: {text}") # Comparar el texto detectado con el comando esperado if "abracadabra rótulo uno" in text.lower(): print("Comando detectado: Lanzando teclas 'ctrl + super + 1'") # Activar la ventana de OBS subprocess.run(["xdotool", "search", "--name", "^OBS.*Profile: Youtube Jose", "windowactivate"]) # Usa xdotool para simular la pulsación de teclas subprocess.run(["xdotool", "key", "ctrl+super+1"]) # Generar y reproducir el mensaje de audio en los auriculares Bluetooth tts = gTTS("rótulo uno ok", lang='es') tts.save("mensaje.mp3") # Reproducir el archivo de audio con mpv subprocess.run(["mpv", "--audio-device=pipewire", "mensaje.mp3"]) # subprocess.run(["mpv", "--audio-device=pipewire/bluez_output.6F_32_EA_6B_C2_86.1", "mensaje.mp3"]) os.remove("mensaje.mp3") # Elimina el archivo después de reproducirlo