Account and Authentication
How do I obtain an API Key?
How do I obtain an API Key?
Does the License have an expiration date? Can it be reset?
Does the License have an expiration date? Can it be reset?
Quick Start Questions
How can I quickly call the one-time synthesis interface?
How can I quickly call the one-time synthesis interface?
audioFile, audioUrl, or textContent) and exactly one visual input (characterFile, characterUrl, or avatarId). For the common avatar TTS workflow, send avatarId and textContent.The initial response returns a taskId:GET /api/open/v1/video-compose/status?taskId={taskId} until the task reaches Published or Fail.What are the minimum steps required for the real-time digital person to connect for the first time?
What are the minimum steps required for the real-time digital person to connect for the first time?
- Choose either supported connection method:
- REST token flow: call
POST /api/open/v1/realtime-chat/connectionwith exactly one ofavatarIdorname, then connect to the returnedwsUrl. - Direct WebSocket flow: connect to
wss://transfer.navtalk.ai/wss/v2/realtime-chatwithlicenseand eithernameoravatarIdin the URL.
- REST token flow: call
- Wait for
conversation.connected.successevent containing session ID and ICE servers. - Optionally send conversation history via
conversation.item.createmessages. - Capture microphone audio and send it via
realtime.input_audio_buffer.append. - Receive AI response text/audio stream/video stream (WebRTC through the same connection).
Real-time WebSocket Connection Issues
What should I do if the WebSocket connection fails?
What should I do if the WebSocket connection fails?
- Is the license valid?
- Is the WebSocket address correct:
wss://transfer.navtalk.ai/wss/v2/realtime-chat? - If you use the REST token flow, are you connecting to the returned
wsUrlbefore it expires? - If you use the direct WebSocket flow, does the URL include
licenseand eithernameoravatarId? - Does Chrome allow microphone access?
Do I need to configure WebRTC to get the digital person's video on the webpage?
Do I need to configure WebRTC to get the digital person's video on the webpage?
video. Please ensure that after connecting to the WebSocket, you simultaneously establish a WebRTC video channel and bind it to the video tag to play.Character and Behavior Settings
How do I specify the character settings and greeting of the digital person?
How do I specify the character settings and greeting of the digital person?
prompt field of the realtime.input_config message, for example:Can I specify the tone of the digital person? What are the options?
Can I specify the tone of the digital person? What are the options?
voice: "nova", which supports the following 9 tones: alloy, shimmer, coral, echo, ballad, ash, sage, verse.See Voice Styles for complete descriptions and audio previews.Context and Memory Issues
How can I make the digital person remember the user's history of conversations?
How can I make the digital person remember the user's history of conversations?
- Embed conversation context in the
promptfield ofrealtime.input_configto simulate full context. - Use
conversation.item.createto send historical messages (only supports user messages) after receiving therealtime.session.createdevent.
Why can't the AI remember the previous conversation?
Why can't the AI remember the previous conversation?
- Does your
realtime.input_configmessage include contextual content in thepromptfield? - Did you send conversation history using
conversation.item.createafter receivingrealtime.session.created?
Function Call Issues
Why is there no response after configuring the function call?
Why is there no response after configuring the function call?
- Please confirm that the
toolsparameter has been correctly registered. - Check if you are listening for the
realtime.response.function_call_arguments.doneevent. - If the AI should continue after your business logic runs, send
realtime.function_call_outputwithdata.content,data.call_id, anddata.reply: "1".
After the function call result is pushed, why is there no response from the AI?
After the function call result is pushed, why is there no response from the AI?
reply: "1" on the realtime.function_call_output message:Media Interface Call Issues
How long will it take to receive results after synthesizing video and audio?
How long will it take to receive results after synthesizing video and audio?
GET /api/open/v1/video-compose/status?taskId={taskId} until the response data.status is Published or Fail.When generation succeeds, data.resultUrl contains the final generated video URL:Can I upload files directly?
Can I upload files directly?