.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.
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();