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