Skip to main content

.AUDIO

Der AudioManagerService steuert die Sprachausgabe (Text-to-Speech) und das Mikrofon des Bots. Du kannst Texte vorlesen lassen, die Stimme wählen, das Mikrofon steuern und Betonungsanweisungen setzen.

Hinweis

Als voice-Parameter werden ausschließlich ElevenLabs Voice-IDs akzeptiert. Du findest die verfügbaren IDs in deinem ElevenLabs-Konto.


say(text, voice?)

Lässt den übergebenen Text per Text-to-Speech vorlesen. Optional kannst du eine bestimmte Stimme (ElevenLabs Voice-ID) angeben.

Signatur: say(text: string, voice?: string): Promise<void>

// Mit Standard-Stimme
await RAGAI.AUDIO.say('Hallo, wie kann ich dir helfen?');
// Mit bestimmter Stimme (ElevenLabs Voice-ID)
await RAGAI.AUDIO.say('Willkommen zurück!', 'EXAVITQu4vr4xnSDxMaL');

setText(text)

Überschreibt den Anzeigetext des Audio-Bots (z. B. den „Ich höre…"-Text). Nützlich, um dem Nutzer visuelles Feedback zu geben, während der Bot spricht oder zuhört.

Signatur: setText(text: string): void

RAGAI.AUDIO.setText('Einen Moment, ich denke nach...');

isMicMuted()

Prüft, ob das Mikrofon des Nutzers aktuell stumm geschaltet ist.

Signatur: isMicMuted(): boolean

if (RAGAI.AUDIO.isMicMuted()) {
console.log('Mikrofon ist stumm geschaltet');
} else {
console.log('Mikrofon ist aktiv');
}

unmuteMic()

Hebt die Stummschaltung des Nutzer-Mikrofons auf.

Signatur: unmuteMic(): void

RAGAI.AUDIO.unmuteMic();

muteMic()

Schaltet das Mikrofon des Nutzers stumm.

Signatur: muteMic(): void

RAGAI.AUDIO.muteMic();

setInstruction(text)

Setzt eine Betonungsanweisung für die Sprachausgabe. Diese Anweisung beeinflusst, wie der Text vorgelesen wird (z. B. Tonlage, Tempo, Emotion) und greift ab der nächsten Sprachausgabe.

Signatur: setInstruction(text: string): Promise

await RAGAI.AUDIO.setInstruction('Sprich langsam und freundlich, als würdest du einem Kind etwas erklären.');
await RAGAI.AUDIO.setInstruction('Sprich aufgeregt und enthusiastisch.');
await RAGAI.AUDIO.say('Das ist eine fantastische Nachricht!');

getInstruction()

Gibt die aktuell gesetzte Betonungsanweisung zurück.

Signatur: getInstruction(): Promise<string>

const anweisung = await RAGAI.AUDIO.getInstruction();
console.log('Aktuelle Betonungsanweisung:', anweisung);

stopSpeaking()

Bricht die aktuelle Sprachausgabe des Bots sofort ab.

Signatur: stopSpeaking(): void

RAGAI.AUDIO.stopSpeaking();

botSay(text, voice?)

Lässt den Bot einen Text vorlesen. Funktioniert ähnlich wie say, gibt aber die ID der Sprachausgabe zurück.

Signatur: botSay(text: string, voice?: string): Promise<string | undefined>

const id = await RAGAI.AUDIO.botSay('Challenge akzeptiert!', 'jBpfAIEiAUkTj5ASvOaM');
console.log('Sprachausgabe-ID:', id);

mp3BufferFromString(payload, voice?)

Erzeugt einen MP3-Audio-Buffer aus dem übergebenen Text. Nützlich, wenn du die Audiodaten weiterverarbeiten möchtest, statt sie direkt abzuspielen.

Signatur: mp3BufferFromString(payload: string, voice?: string): Promise<ArrayBuffer>

const buffer = await RAGAI.AUDIO.mp3BufferFromString('Dieser Text wird zu Audio konvertiert.');
console.log('Buffer-Größe:', buffer.byteLength, 'Bytes');
// Mit bestimmter Stimme
const buffer = await RAGAI.AUDIO.mp3BufferFromString('Hallo Welt', 'EXAVITQu4vr4xnSDxMaL');
const blob = new Blob([buffer], { type: 'audio/mpeg' });
const url = URL.createObjectURL(blob);
const audio = new Audio(url);
audio.play();

Vollständiges Beispiel

await RAGAI.WAITFOR.initialIdle();

// Betonungsanweisung setzen
await RAGAI.AUDIO.setInstruction('Sprich freundlich und einladend.');

// Begrüßung vorlesen
await RAGAI.AUDIO.say('Willkommen! Ich bin dein Lern-Assistent.');

// Mikrofon-Status prüfen und ggf. aktivieren
if (RAGAI.AUDIO.isMicMuted()) {
RAGAI.AUDIO.unmuteMic();
}

// Anzeigetext ändern
RAGAI.AUDIO.setText('Ich höre dir zu...');

// Nach einer Weile die Sprachausgabe stoppen
await RAGAI.WAITFOR.seconds(10);
RAGAI.AUDIO.stopSpeaking();