Voice Live API support clarification for RAG + Avatar

Gupta, Brijesh K 0 Reputation points
2026-11-11T13:16:09.4466667+00:00

Hi Azure Support Team,

We are planning to use Azure Voice Live API for an use case:

Voice → Voice Live → RAG → grounded response with citations → Voice with Avatar

Could you please confirm:

  • Does Voice Live API natively support RAG, or should RAG be implemented externally?
  • Can Voice Live invoke Azure AI Search/vector search or our custom RAG API through tool/function calling during an active session?
  • Can updated/re-indexed enterprise content be retrieved dynamically for subsequent questions in the same conversation?
  • Does Voice Live provide citation/grounding metadata, or should citation mapping be maintained by our application?
  • Does Voice Live support real-time Azure Avatar integration and lip synchronization?
  • Can Voice Live audio be streamed directly to the Avatar service?
  • Which models support the required Voice Live + tool calling/RAG scenario?
  • What Azure resources, regions, quotas, preview restrictions, and networking requirements apply?
  • Do Voice Live/Avatar support Entra ID, Managed Identity, Private Endpoint and VNet scenarios?
  • Is there an official Azure reference architecture/sample for Voice Live + RAG/Azure AI Search + citations + Avatar?

Please also clarify which parts are provided natively by Azure Voice Live and which need to be implemented in our application/orchestration layer.

Thanks,

Azure Speech in Foundry Tools
0 comments No comments

1 answer

Sort by: Newest
  1. AI answer

    2026-11-11T13:17:33.1233333+00:00

    Implement RAG as a backend tool invoked from the active Voice Live session, return retrieved passages and source metadata to Voice Live, and configure Voice Live’s integrated avatar output for synchronized audio and video.

    Native capabilities versus application responsibilities

    Capability Voice Live / Azure provides Application or orchestration layer provides
    Speech interaction Real-time speech input, model inference, speech output, turn detection, WebSocket/WebRTC transport Client UI, session lifecycle, error handling
    RAG Function/tool calling and grounded-response support using the VoiceRAG pattern Azure AI Search/custom API query, retrieval policy, security trimming, prompt/tool-result construction
    Current content A tool can be called repeatedly during an active conversation Indexing/re-indexing and executing a fresh query for each relevant turn
    Citations Citation annotations can be emitted for supported hosted web/file-search tools Stable citation mapping for custom Azure AI Search or custom RAG tools
    Avatar Integrated standard/custom avatar output synchronized with Voice Live audio Rendering the returned WebRTC/video stream and reconnect handling

    Voice Live does not itself become the enterprise retrieval index. In the documented RAG flow, the application retrieves content, augments the model input, and generates the grounded answer; indexes can store citation fields such as title, URL, and file name.^1^

    1. Register a function such as search_enterprise_content in the Voice Live session.
    2. When Voice Live requests that function, your backend queries Azure AI Search/vector search or calls your existing RAG API.
    3. Return compact JSON containing passages plus stable source identifiers.
    4. Send the function result back to the same session and request model response generation.
    5. Persist the returned source metadata against the response/turn ID for UI citations.
    6. Configure avatar in the Voice Live session and establish the avatar WebRTC connection.

    Voice Live function calling is specifically designed for invoking external backends during a conversation. The application handles the function-call event, executes the function, sends its output back, and triggers the response.^2^

    A representative tool result should preserve citation data rather than returning only flattened text:

    {
      "answer_context": [
        {
          "text": "Retrieved passage...",
          "source_id": "policy-123",
          "title": "Travel Policy",
          "url": "https://example.contoso/policy/123",
          "last_updated": "2026-11-01"
        }
      ]
    }
    

    Because the function executes when requested, subsequent questions can query the latest searchable index state—even within the same Voice Live session. Whether an update is visible immediately depends on completion of your ingestion/indexing process, not conversation state.

    For custom tool results, maintain the authoritative mapping between response, passage, and source in your application. The API also defines response.audio_transcript.annotation.added for annotations such as citations produced by web or file search, but its schema depends on the annotation source; this should not be assumed to create citations automatically for arbitrary custom-tool JSON.^3^

    Avatar and audio transport

    Voice Live natively supports real-time avatars synchronized with audio. Configure the avatar parameter, perform SDP negotiation using session.avatar.connect, and render the returned stream. The integrated path returns synchronized avatar and audio; your application does not need to stream generated Voice Live audio into a separate Avatar API.^4^

    Avatar streaming is WebRTC-based by default, with video, animation, and blendshape support.^5^ For ordinary non-avatar browser/mobile audio, WebRTC is also recommended over WebSocket for latency and network resilience.^6^

    Models, resources, regions, and quotas

    • Use a Microsoft Foundry resource for full functionality. An Azure Speech in Foundry Tools resource does not support Foundry Agent Service integration or BYOM.
    • Voice Live supports GPT-Realtime, GPT-5, GPT-4.1, GPT-4o, Phi, and additional listed models. Availability differs by region and processing scope; select from the current model-region matrix rather than assuming every model is available in every Voice Live region.^7^
    • Choose a region satisfying all three requirements: Voice Live speech features, the selected LLM, and real-time avatar. Their regional matrices are separate.^8^
    • Standard S0 Voice Live limits include 100 new connections per minute and a maximum 60-minute session. Voice Live avatars also inherit real-time avatar limits, including two new connections per minute, 30 minutes speaking, and five minutes idle. Adjustable quota requests are available for specified S0 limits.^9^

    Do not select a model solely by model family: verify that the chosen model, API version, region, and tool-calling mode support the required combination.

    Identity and private networking

    Voice Live supports Microsoft Entra ID for a Microsoft Foundry resource. Assign Cognitive Services User and Foundry User to the calling user or managed identity, request a token for https://ai.azure.com/.default (or the documented legacy scope), and pass it as a Bearer [Token]^4^

    For the retrieval tier, Azure AI Search supports managed identity, RBAC, firewalls, and private endpoints.^10^ Place the RAG backend in a network that can resolve and reach the Search private endpoint.

    The cited Voice Live documentation establishes Entra ID and managed-identity authentication but does not establish end-to-end Voice Live Private Endpoint/VNet support. Confirm that requirement for the exact resource type, endpoint mode, region, and API version before treating Voice Live itself as privately reachable. Also account for WebSocket/WebRTC, ICE/STUN/TURN, DNS, and outbound identity endpoints in the network design.

    Samples and reference starting points

    There is no single documented sample here combining Voice Live, Azure AI Search RAG, citations, and Avatar end to end. Use these two official starting points:

    • aisearch-openai-rag-audio: voice-to-RAG with Azure AI Search and full-duplex real-time audio.^11^
    • The Voice Live JavaScript avatar sample referenced by the Voice Live avatar guide.^4^

    Combine them at the orchestration boundary: retain the RAG backend/tool contract and citation store from the first, and replace its output presentation with the integrated Voice Live avatar session.


    References

    1. Retrieval augmented generation (RAG) and indexes
    2. How to use function calling in a Voice Live session (programming-language-python)
    3. Voice Live 2026-04-10 API Reference
    4. How to use the Voice Live API
    5. Voice Live 2025-10-01 API Reference
    6. Voice Live API with WebRTC
    7. Voice Live API for real-time voice agents
    8. Supported regions for Azure Speech
    9. Quotas and limits for Azure Speech
    10. Configure your Azure AI Search service in the Azure portal
    11. Python samples for Azure AI Search
    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.