# prueba_agente_tts.py import os import asyncio from livekit.agents import WorkerOptions, Worker, JobContext, AgentSession, Agent from livekit.plugins import openai LIVEKIT_URL = "ws://192.168.1.131:7880" LIVEKIT_API_KEY = "devkey" LIVEKIT_API_SECRET = "secret" ROOM_NAME = "mi_sala_prueba" PARTICIPANT_IDENTITY = "agente_tts" OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "sk-...tu_clave...") os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY async def entrypoint(ctx: JobContext): print("🎙️ Conectando agente al room LiveKit...") await ctx.connect() print(f"✅ Conectado a la sala: {ctx.room.name}") # Crear el modelo TTS tts_model = openai.realtime.RealtimeModel( model="gpt-4o-realtime-preview-2024-12-17", voice="alloy", ) # Crear agente agent = Agent(instructions="Eres un agente TTS de prueba con voz de OpenAI.") session = AgentSession(agent=agent, llm=tts_model) await session.start(room=ctx.room) print("🗣️ Agente hablando...") await session.generate_reply(text="Hola, soy el agente TTS de LiveKit.") await asyncio.sleep(5) print("👋 Cerrando sesión del agente.") await session.close() async def main(): opts = WorkerOptions( entrypoint_fnc=entrypoint, api_key=LIVEKIT_API_KEY, api_secret=LIVEKIT_API_SECRET, ws_url=LIVEKIT_URL, ) worker = Worker(opts) # 🔥 Esta es la línea correcta para unir al agente al room directamente await worker.run_in_room( room_name=ROOM_NAME, participant_identity=PARTICIPANT_IDENTITY, ) if __name__ == "__main__": asyncio.run(main())