Integrazioni

Sintesi vocale KugelAudio per LiveKit Agents

KugelAudio offre un plugin TTS ufficiale per LiveKit Agents in Python e TypeScript. Passatelo ad AgentSession come provider tts e il vostro agente parlerà con una voce KugelAudio.

Come funziona

Cosa fa l'integrazione

  • Una connessione aperta per agente

    Il plugin tiene aperto un WebSocket per agente, così ogni turno passa da una connessione già stabilita.

  • Preriscaldamento durante la chiamata

    Chiamate prewarm() mentre la chiamata si avvia e la prima risposta non dovrà attendere la connessione.

  • Timestamp per parola e rimozione del rumore

    Timestamp per parola opzionali per barge-in e sincronizzazione della trascrizione, e il miglioramento vocale di KugelAudio sull'audio in ingresso (Python).

Codice

Un agente vocale completo

Installazione con pip install "kugelaudio[livekit]" o npm install kugelaudio. Il worker legge KUGELAUDIO_API_KEY e le credenziali LiveKit dall'ambiente.

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) }));

Copiato dalla documentazione in docs.kugelaudio.com/integrations/livekit. Leggete la guida completa

Date al vostro agente una voce KugelAudio

Create un account, copiate una chiave API dalla dashboard e scegliete una voce. Tutte le integrazioni di questa pagina usano la stessa API.