Integrationen

KugelAudio Text-to-Speech für LiveKit Agents

KugelAudio liefert ein offizielles TTS-Plugin für LiveKit Agents in Python und TypeScript. Übergeben Sie es der AgentSession als tts-Provider, und Ihr Agent spricht mit einer KugelAudio-Stimme.

So funktioniert es

Was die Integration leistet

  • Eine stehende Verbindung pro Agent

    Das Plugin hält pro Agent eine WebSocket-Verbindung offen, sodass jeder Gesprächszug über eine bereits aufgebaute Verbindung streamt.

  • Vorwärmen beim Anrufaufbau

    Rufen Sie prewarm() auf, während der Anruf aufgebaut wird. Die erste Antwort wartet dann nicht auf den Verbindungsaufbau.

  • Wort-Zeitstempel und Rauschentfernung

    Optional Wort-Zeitstempel für Barge-in und Transkript-Synchronisation sowie KugelAudio-Sprachverbesserung auf dem Eingangssignal (Python).

Code

Ein vollständiger Voice Agent

Installation mit pip install "kugelaudio[livekit]" oder npm install kugelaudio. Der Worker liest KUGELAUDIO_API_KEY und die LiveKit-Zugangsdaten aus der Umgebung.

Python
from livekit.agents import Agent, AgentSession, JobContext
from livekit.agents import WorkerOptions, cli
from livekit.plugins import deepgram, openai, silero
from kugelaudio.livekit import TTS as KugelAudioTTS

async def entrypoint(ctx: JobContext):
    await ctx.connect()

    tts = KugelAudioTTS(model="kugel-3.5", voice_id=1071, language="en")
    tts.prewarm()

    session = AgentSession(
        stt=deepgram.STT(),
        llm=openai.LLM(model="gpt-4o-mini"),
        tts=tts,
        vad=silero.VAD.load(),
    )
    await session.start(
        room=ctx.room,
        agent=Agent(instructions="You are a helpful voice assistant."),
    )
    await session.say("Hello! How can I help you?")

if __name__ == "__main__":
    cli.run_app(WorkerOptions(entrypoint_fnc=entrypoint))
TypeScript
import { fileURLToPath } from 'node:url';
import { WorkerOptions, cli, defineAgent, voice } from '@livekit/agents';
import * as deepgram from '@livekit/agents-plugin-deepgram';
import * as openai from '@livekit/agents-plugin-openai';
import * as silero from '@livekit/agents-plugin-silero';
import { TTS as KugelAudioTTS } from 'kugelaudio/livekit';

export default defineAgent({
  entry: async (ctx) => {
    await ctx.connect();

    const tts = new KugelAudioTTS({
      model: 'kugel-3.5',
      voiceId: 1071,
      language: 'en',
    });
    tts.prewarm();

    const session = new voice.AgentSession({
      stt: new deepgram.STT(),
      llm: new openai.LLM({ model: 'gpt-4o-mini' }),
      tts,
      vad: await silero.VAD.load(),
    });
    await session.start({
      agent: new voice.Agent({
        instructions: 'You are a helpful voice assistant.',
      }),
      room: ctx.room,
    });
    await session.say('Hello! How can I help you?');
  },
});

cli.runApp(new WorkerOptions({ agent: fileURLToPath(import.meta.url) }));

Übernommen aus der Dokumentation unter docs.kugelaudio.com/integrations/livekit. Zur vollständigen Anleitung

Geben Sie Ihrem Agenten eine KugelAudio-Stimme

Konto anlegen, API-Schlüssel im Dashboard kopieren, Stimme auswählen. Alle Integrationen auf dieser Seite nutzen dieselbe API.