Utforsk Azure Voice Live API
Tips
Se fanen Tekst og bilder for mer informasjon!
Voice live API gjør det mulig for utviklere å lage stemmeaktiverte applikasjoner med toveis kommunikasjon i sanntid. Denne enheten utforsker arkitekturen, konfigurasjonen og implementeringen.
Viktige funksjoner i Voice Live API
Voice live API gir sanntidskommunikasjon ved hjelp av WebSocket-tilkoblinger. Den støtter avanserte funksjoner som talegjenkjenning, tekst-til-tale-syntese, avatarstrømming og lydbehandling.
- JSON-formaterte hendelser administrerer samtaler, lydstrømmer og svar.
- Hendelser er kategorisert i klienthendelser (sendt fra klient til server) og serverhendelser (sendt fra server til klient).
Nøkkelfunksjoner inkluderer:
- Lydbehandling i sanntid med støtte for flere formater som PCM16 og G.711.
- Avanserte talealternativer, inkludert OpenAI-stemmer og egendefinerte Azure-stemmer.
- Avatarintegrasjon ved hjelp av WebRTC for video og animasjon.
- Innebygd støyreduksjon og ekkokansellering.
Note
Voice Live API er optimalisert for Microsoft Foundry-ressurser. Vi anbefaler å bruke Microsoft Foundry-ressurser for full funksjonstilgjengelighet og best mulig Microsoft Foundry-integrasjonsopplevelse.
Hvis du vil se en tabell over støttede modeller og regioner, kan du gå til Voice Live API-oversikten.
Koble til Voice Live API
Voice live-API-en støtter to godkjenningsmetoder: Microsoft Entra (nøkkelfri) og API-nøkkel. Microsoft Entra bruker tokenbasert autentisering for en Microsoft Foundry-ressurs. Du bruker et hentet godkjenningstoken ved hjelp av et Bearer token med overskriften Authorization .
For anbefalt nøkkelfri godkjenning med Microsoft Entra-ID må du tilordne rollen Cognitive Services-bruker til brukerkontoen eller en administrert identitet. Du genererer et token ved hjelp av Azure CLI eller Azure SDK-er. Tokenet må genereres med omfanget https://ai.azure.com/.default , eller det eldre https://cognitiveservices.azure.com/.default omfanget. Bruk tokenet i overskriften Authorization til WebSocket-tilkoblingsforespørselen, med formatet Bearer <token>.
For nøkkeltilgang kan en API-nøkkel angis på én av to måter. Du kan bruke et api-key tilkoblingshode på prehandshake-tilkoblingen. Dette alternativet er ikke tilgjengelig i et nettlesermiljø. Eller du kan bruke en api-key spørringsstrengparameter på forespørsels-URI-en. Spørringsstrengparametere krypteres når du bruker https/wss.
Note
Tilkoblingshodet api-key på prehandshake-tilkoblingen er ikke tilgjengelig i et nettlesermiljø.
WebSocket-endepunkt
Endepunktet som skal brukes, varierer avhengig av hvordan du vil ha tilgang til ressursene. Du kan få tilgang til ressurser via en tilkobling til Foundry-prosjektet når du implementerer en agent, eller via en direkte tilkobling til en modell.
-
Prosjekt tilknytning: Endepunktet er
wss://<your-ai-foundry-resource-name>.services.ai.azure.com/voice-live/realtime?api-version=2025-10-01 -
Modell tilkobling: Endepunktet er
wss://<your-ai-foundry-resource-name>.cognitiveservices.azure.com/voice-live/realtime?api-version=2025-10-01.
Endepunktet er det samme for alle modeller. Den eneste forskjellen er den nødvendige model spørringsparameteren, eller, når du bruker agenttjenesten, parameterne agent_id og project_id .
Voice Live API-hendelser
Klient- og serverhendelser forenkler kommunikasjon og kontroll i Voice live API. Viktige kundehendelser inkluderer:
-
session.update: Endre sesjonskonfigurasjoner. -
input_audio_buffer.append: Legg til lyddata i bufferen. -
response.create: Generer svar via modellslutning.
Serverhendelser gir tilbakemelding og statusoppdateringer:
-
session.updated: Bekreft endringer i øktkonfigurasjonen. -
response.done: Angi at svargenerering er fullført. -
conversation.item.created: Varsle når et nytt diskusjonselement legges til.
Hvis du vil ha en fullstendig liste over klient-/serverhendelser, kan du gå til Voice live API Reference.
Note
Riktig håndtering av hendelser sikrer sømløs interaksjon mellom klient og server.
Konfigurere øktinnstillinger for Voice live API
Ofte er den første hendelsen som sendes av oppringeren på en nylig etablert Voice live API-økt, hendelsen session.update . Denne hendelsen styrer et bredt sett med inn- og utdatavirkemåte. Øktinnstillingene kan oppdateres dynamisk ved hjelp av hendelsen session.update . Utviklere kan konfigurere stemmetyper, modaliteter, turdeteksjon og lydformater.
Eksempel på konfigurasjon:
{
"type": "session.update",
"session": {
"modalities": ["text", "audio"],
"voice": {
"type": "openai",
"name": "alloy"
},
"instructions": "You are a helpful assistant. Be concise and friendly.",
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"input_audio_sampling_rate": 24000,
"turn_detection": {
"type": "azure_semantic_vad",
"threshold": 0.5,
"prefix_padding_ms": 300,
"silence_duration_ms": 500
},
"temperature": 0.8,
"max_response_output_tokens": "inf"
}
}
Tips
Bruk semantisk VAD i Azure for intelligent turgjenkjenning og forbedret samtaleflyt.
Implementer lydbehandling i sanntid med Voice live API
Lydbehandling i sanntid er en kjernefunksjon i Voice live API. Utviklere kan legge til, forplikte og tømme lydbuffere ved hjelp av spesifikke klienthendelser.
- Legg til lyd: Legg til lydbyte i inngangsbufferen.
- Begå lyd: Behandle lydbufferen for transkripsjon eller svargenerering.
- Klar lyd: Fjern lyddata fra bufferen.
Støyreduksjon og ekkokansellering kan konfigureres for å forbedre lydkvaliteten. Eksempel:
{
"type": "session.update",
"session": {
"input_audio_noise_reduction": {
"type": "azure_deep_noise_suppression"
},
"input_audio_echo_cancellation": {
"type": "server_echo_cancellation"
}
}
}
Note
Støyreduksjon forbedrer VAD-nøyaktigheten og modellytelsen ved å filtrere inngangslyd.
Integrer avatarstrømming ved hjelp av Voice Live API
Voice live API støtter WebRTC-basert avatarstrømming for interaktive applikasjoner. Utviklere kan konfigurere innstillinger for video, animasjon og blandingsform.
- Bruk hendelsen
session.avatar.connecttil å gi klientens SDP-tilbud. - Konfigurer innstillinger for videooppløsning, bithastighet og kodek.
- Definer animasjonsutdata, for eksempel blandingsformer og visemer.
Eksempel på konfigurasjon:
{
"type": "session.avatar.connect",
"client_sdp": "<client_sdp>"
}
Tips
Bruk videoinnstillinger med høy oppløsning for å forbedre visuell kvalitet i avatarinteraksjoner.