UNPKG

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