ai-slot-web-sdk
Version:
Effortlessly incorporate lifelike digital beings into your web applications, offering real-time conversations, actions, and facial expressions. They support a wide range of voices, languages, and emotional tones.
78 lines (62 loc) • 2.93 kB
Markdown
# Ai-Slot-Web-SDK: Engage in real-time interactions with your favorite characters directly in your web browser.
### Get started
Here are some examples that demonstrate the use of TypeScript bindings.
```ts
import { AiSlotClient } from 'ai-slot-web-sdk';
import { GetResponseResponse } from "ai-slot-web-sdk/dist/_proto/service/service_pb";
// Initiate the ai-slot client.
const aiSlotClient = useRef(null);
aiSlotClient.current = new AiSlotClient({
host: string, //Enter the host https://webstream.ai-slot.ai
apiKey: string, //Enter your API Key here,
characterId: string, //Enter your Character ID,
enableAudio: boolean, //Character audio is generated but will not be played.
sessionId: string, //The ongoing conversation session, which can be used to access chat history.
languageCode?: string,
textOnlyResponse?: boolean, //An optional parameter for chat-only applications (no audio response from the character).
micUsage?: boolean, //An optional parameter to disable microphone usage and access.
enableFacialData?: boolean, //An optional parameter for generating viseme data for lipsync and facial expressions.
faceModel?: 3, //OVR lipsync
})
// Register a callback for incoming responses. Keep in mind that it may be triggered multiple times if the response arrives in segments.
aiSlotClient.setResponseCallback((response: GetResponseResponse) => {
// live transcript, only available during audio mode.
if (response.hasUserQuery()) {
var transcript = response!.getUserQuery();
var isFinal = response!.getIsFinal();
}
if (response.hasAudioResponse()) {
var audioResponse = response?.getAudioResponse();
if (audioResponse.hasTextData()) {
// Response text.
console.log(audioResponse?.getTextData());
}
if (audioResponse.hasAudioData()) {
// Play or process audio response.
var audioByteArray: UInt8Array = audioResponse!.getAudioData_asU8();
}
}
});
// Send text input
var text = "How are you?";
aiSlotClient.sendTextChunk(text);
// Send audio chunks.
// Starts audio recording using default microphone.
aiSlotClient.startAudioChunk();
// Stop recording and finish submitting input.
aiSlotClient.endAudioChunk();
// End or Reset a conversation session.
aiSlotClient.resetSession();
```
### Facial Expressions
To enable facial expression functionality, initialize the `AiSlotClient` with the required parameters. Make sure to set the `enableFacialData` flag to `true` so that facial expression data is activated.
```javascript
aiSlotClient.current = new AiSlotClient({
host: 'https://webstream.ai-slot.ai',
apiKey: '<apiKey>',
characterId: '<characterId>',
enableAudio: true,
enableFacialData: true,
faceModel: 3, // OVR lipsync
});
```