Jak używać interfejsu API voice live

Interfejs API Voice Live zapewnia wydajny interfejs WebSocket w porównaniu z API usługi Azure OpenAI Realtime.

Jeśli nie określono inaczej, interfejs API Voice Live używa tych samych zdarzeń co interfejs API usługi Azure OpenAI w czasie rzeczywistym. Ten dokument zawiera odniesienie do właściwości wiadomości zdarzeń specyficznych dla interfejsu API Voice Live.

Tip

W większości przypadków użyj interfejsu API voice live z usługą WebRTC do przesyłania strumieniowego audio w czasie rzeczywistym w aplikacjach po stronie klienta, takich jak aplikacja internetowa lub aplikacja mobilna. Usługa WebRTC jest przeznaczona dla scenariuszy przesyłania strumieniowego audio w czasie rzeczywistym o małych opóźnieniach.

Obsługiwane modele i regiony

Aby zapoznać się z tabelą obsługiwanych modeli i regionów, zobacz Omówienie interfejsu API voice live.

Authentication

Zasób Microsoft Foundry lub zasób Azure Speech w Foundry Tools Services jest wymagany do korzystania z interfejsu API Voice Live.

Note

Korzystanie z interfejsu API usługi Voice Live jest zoptymalizowane pod kątem zasobów firmy Microsoft Foundry. Zalecamy korzystanie z zasobów rozwiązania Microsoft Foundry w celu zapewnienia pełnej dostępności funkcji i najlepszego środowiska integracji rozwiązania Microsoft Foundry.
Zasoby usług Azure Speech Services nie obsługują integracji usługi Microsoft Foundry Agent Service i modelu byOM (bring-your-own-model).

Punkt końcowy protokołu WebSocket

Punkt końcowy protokołu WebSocket dla interfejsu API Voice Live to wss://<your-ai-foundry-resource-name>.services.ai.azure.com/voice-live/realtime?api-version=2026-04-10 lub, w przypadku starszych zasobów, wss://<your-ai-foundry-resource-name>.cognitiveservices.azure.com/voice-live/realtime?api-version=2026-04-10. Punkt końcowy jest taki sam dla wszystkich modeli. Jedyną różnicą jest wymagany model parametr zapytania lub, w przypadku korzystania z usługi Agent, parametry agent_id oraz project_id.

Na przykład punkt końcowy zasobu z domeną niestandardową to wss://<your-ai-foundry-resource-name>.services.ai.azure.com/voice-live/realtime?api-version=2026-04-10&model=gpt-realtime

Credentials

Interfejs API Voice Live obsługuje dwie metody uwierzytelniania:

  • Microsoft Entra (zalecane): użyj uwierzytelniania opartego na tokenach dla zasobu usługi Microsoft Foundry. Zastosuj pobrany token uwierzytelniania, używając tokenu Bearer z nagłówkiem Authorization.
  • Klucz interfejsu API: Element api-key można udostępnić na jeden z dwóch sposobów:
    • Używanie nagłówka połączenia api-key na połączeniu przed nawiązaniem. Ta opcja nie jest dostępna w środowisku przeglądarki.
    • Korzystając z parametru ciągu zapytań api-key w identyfikatorze URI żądania. Parametry ciągu zapytania są szyfrowane podczas korzystania z protokołu https/wss.

W przypadku zalecanego uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft należy wykonać następujące czynności:

  • Przypisz rolę Cognitive Services User i Foundry User do swojego konta użytkownika lub tożsamości zarządzanej. Role można przypisać w portalu Azure w sekcji Kontrola dostępu (IAM)>Dodawanie przypisania roli.

    Ważne

    Niedawno zmieniono nazwy ról RBAC w usłudze Foundry. Użytkownik Foundry, właściciel Foundry, właściciel konta Foundry i menedżer projektu Foundry były wcześniej nazywane odpowiednio użytkownikiem Azure AI, właścicielem Azure AI, właścicielem konta Azure AI i menedżerem projektu Azure AI. Poprzednie nazwy mogą być nadal widoczne w niektórych miejscach, podczas gdy zmiana nazwy jest wdrażana. Identyfikatory ról i uprawnienia podstawowe są niezmienione przez zmianę nazwy.

  • Generowanie tokenu przy użyciu interfejsu wiersza polecenia platformy Azure lub zestawów SDK platformy Azure. Token musi zostać wygenerowany z zakresem https://ai.azure.com/.default lub starszym https://cognitiveservices.azure.com/.default zakresem.

  • Użyj tokenu w Authorization nagłówku żądania połączenia protokołu WebSocket z formatem Bearer <token>.

Konfiguracja sesji

Często pierwszym zdarzeniem wysyłanym przez obiekt wywołujący w nowo utworzonej sesji interfejsu API Voice Live jest zdarzenie session.update. To zdarzenie kontroluje szeroki zestaw zachowań dotyczących danych wejściowych i wyjściowych, a właściwości dotyczące generowania wyjścia i odpowiedzi można następnie zastąpić później przy użyciu zdarzenia response.create.

Oto przykładowy session.update komunikat, który konfiguruje kilka aspektów sesji, w tym wykrywanie obrotu, przetwarzanie dźwięku wejściowego i wyjście głosowe. Większość parametrów sesji jest opcjonalna i może zostać pominięta, jeśli nie jest to konieczne.

{
    "instructions": "You are a helpful AI assistant responding in natural, engaging language.",
    "turn_detection": {
        "type": "azure_semantic_vad",
        "silence_duration_ms": 500,
    },
    "input_audio_noise_reduction": {"type": "azure_deep_noise_suppression"},
    "input_audio_echo_cancellation": {"type": "server_echo_cancellation"},
    "voice": {
        "name": "en-US-Ava:DragonHDLatestNeural",
        "type": "azure-standard",
        "temperature": 0.8,
    },
}

Ważne

Właściwość "instructions" nie jest obsługiwana w przypadku korzystania z agenta niestandardowego.

Serwer odpowiada za pomocą session.updated zdarzenia, aby potwierdzić konfigurację sesji.

Właściwości sesji

W poniższych sekcjach opisano właściwości session obiektu, które można skonfigurować w session.update komunikacie.

Tip

Aby uzyskać kompleksowe opisy obsługiwanych zdarzeń i właściwości, zapoznaj się z dokumentacją dotyczącą zdarzeń w czasie rzeczywistym interfejsu API Azure OpenAI. Ten dokument stanowi odniesienie do właściwości komunikatów o zdarzeniach, które są rozszerzane za pośrednictwem interfejsu API Voice Live.

Właściwości wejściowego dźwięku

Właściwości wejściowego dźwięku można użyć do skonfigurowania wejściowego strumienia audio.

Property Typ Wymagane lub opcjonalne Description
input_audio_sampling_rate liczba całkowita Optional Częstotliwość próbkowania wejściowego dźwięku.

Obsługiwane wartości to 16000 i 24000. Wartość domyślna to 24000.
input_audio_echo_cancellation obiekt Optional Zwiększa jakość dźwięku wejściowego, usuwając echo z własnego głosu modelu bez konieczności tłumienia echa po stronie użytkownika.

Ustaw właściwość type dla input_audio_echo_cancellation, aby włączyć anulowanie echa.

Obsługiwana wartość type to server_echo_cancellation, która jest używana, gdy głos modelu jest odtwarzany użytkownikowi końcowemu za pośrednictwem głośnika, a mikrofon odbiera własny głos modelu.
input_audio_noise_reduction obiekt Optional Zwiększa jakość dźwięku wejściowego przez pomijanie lub usuwanie szumu tła środowiska.

Ustaw właściwość type dla input_audio_noise_reduction, aby włączyć tłumienie szumu.

Obsługiwana wartość type to azure_deep_noise_suppression, która optymalizuje dźwięk dla osób mówiących znajdujących się najbliżej mikrofonu.

Tę właściwość można ustawić na near_field lub far_field jeśli używasz interfejsu API usługi Azure OpenAI Realtime.

Oto przykład właściwości wejściowego dźwięku w obiekcie sesji:

{
    "input_audio_sampling_rate": 24000,
    "input_audio_noise_reduction": {"type": "azure_deep_noise_suppression"},
    "input_audio_echo_cancellation": {"type": "server_echo_cancellation"},
}

Tłumienie szumu i anulowanie echa

Tłumienie szumu zwiększa jakość dźwięku wejściowego przez pomijanie lub usuwanie szumu tła środowiska. Pomijanie szumu pomaga modelowi zrozumieć użytkownika końcowego z większą dokładnością i poprawić dokładność sygnałów, takich jak wykrywanie przerw i wykrywanie końca obrotu.

Anulowanie echa serwera zwiększa jakość dźwięku wejściowego, usuwając echo z własnego głosu modelu. W ten sposób anulowanie echa po stronie klienta nie jest wymagane. Anulowanie echa serwera jest przydatne, gdy głos modelu jest odtwarzany użytkownikowi końcowemu za pośrednictwem głośnika. Pomaga to uniknąć sytuacji, w której mikrofon wychwytuje głos modelu.

Note

Usługa zakłada, że klient odtwarza dźwięk odpowiedzi natychmiast po ich odebraniu. Jeśli odtwarzanie jest opóźnione przez ponad dwie sekundy, ma to wpływ na jakość anulowania echa.

Ulepszenia konwersacyjne

Interfejs API Voice Live oferuje ulepszenia konwersacyjne, które zapewniają niezawodność naturalnego przepływu konwersacji użytkownika końcowego.

Parametry wykrywania zakrętów

Wykrywanie rozpoczęcia i zakończenia wypowiedzi to proces wykrywania, kiedy użytkownik końcowy zaczął mówić lub przestał mówić. Interfejs API Voice Live opiera się na właściwości interfejsu API Azure OpenAI Realtime turn_detection w celu skonfigurowania wykrywania kolei. Typy azure_semantic_vad i azure_multilingual_semantic_vad to kluczowe wyróżniki między Voice Live API a Realtime API usługi Azure OpenAI.

Property Typ Wymagane lub opcjonalne Description
type ciąg Optional Typ systemu wykrywania zakrętów do użycia. Typ server_vad wykrywa początek i koniec mowy na podstawie głośności audio.

Na podstawie wypowiedzianych słów, typ semantic_vad używa klasyfikatora semantycznego do wykrywania, kiedy użytkownik zakończył mówienie. Tego typu można używać tylko z modelami gpt-realtime i gpt-realtime-mini .

Typ azure_semantic_vad , a azure_semantic_vad_multilingual także wykrywa początek i koniec mowy na podstawie semantycznego znaczenia i może być używany ze wszystkimi modelami. Dalsze semantyczne wykrywanie aktywności głosowej (VAD) w Azure może również poprawić wykrywanie zmiany mówcy, usuwając słowa wypełniające w celu zmniejszenia liczby fałszywych alarmów podczas przerywania rozmowy.

Wartość domyślna to server_vad.
threshold float Optional Próg aktywacji (0.0–1.0). Wyższy próg wymaga wyższego sygnału ufności użytkownika próbującego mówić (wartość domyślna: 0,5). Dostępne z typami server_vad, azure_semantic_vadi azure_semantic_vad_multilingual.
prefix_padding_ms liczba całkowita Optional Ilość dźwięku mierzona w milisekundach do uwzględnienia przed rozpoczęciem sygnału wykrywania mowy. Począwszy od wersji interfejsu API 2026-04-10, wartość domyślna wynosi 400 dla server_vad oraz 420 dla azure_semantic_vad i azure_semantic_vad_multilingual. W przypadku wcześniejszych wersji interfejsu API wartość domyślna to 300 dla wszystkich typów.
speech_duration_ms liczba całkowita Optional Czas trwania dźwięku mowy użytkownika mierzony w milisekundach wymagany do rozpoczęcia wykrywania. Wartość domyślna to 200 ms dla i 80 ms dla server_vadazure_semantic_vad i azure_semantic_vad_multilingual.
silence_duration_ms liczba całkowita Optional Czas trwania ciszy użytkownika mierzony w milisekundach w celu wykrycia końca mowy (wartość domyślna: 500).
remove_filler_words typ logiczny (boolowski) Optional Określa, czy usunąć wyrazy wypełniacze, aby zmniejszyć współczynnik fałszywych alarmów w przypadku przerywania wypowiedzi (ang. barge-in).
Aby włączyć tę właściwość, należy ustawić wartość true. Wykryte wyrazy wypełnienia w języku angielskim to ['ah', 'umm', 'mm', 'uh', 'huh', 'oh', 'yeah', 'hmm']. Usługa ignoruje te słowa, gdy istnieje bieżąca odpowiedź. Funkcja usuwania wyrazów wypełniacza zakłada, że klient odtwarza dźwięk odpowiedzi natychmiast po ich odebraniu.
Wartość domyślna to false.
languages string[] Optional Język będzie używany do zwiększenia dokładności poprzez redukcję liczby zastosowanych języków (wartość domyślna: brak). Typ azure_semantic_vad obsługuje głównie język angielski. Typ azure_semantic_vad_multilingual jest również dostępny do obsługi szerszej gamy języków: angielski, hiszpański, francuski, włoski, niemiecki (DE), japoński, portugalski, chiński, koreański, hindi. Inne języki zostaną zignorowane. Dostępne z typami azure_semantic_vad i azure_semantic_vad_multilingual.
create_response typ logiczny (boolowski) Optional Włącz lub wyłącz, czy odpowiedź jest generowana (wartość domyślna: true).
eagerness ciąg Optional To sposób kontrolowania, jak bardzo model jest skłonny przerywać użytkownikowi poprzez dostosowanie maksymalnego czasu oczekiwania na przerwanie. Dostępne tylko z typem semantic_vad. W trybie transkrypcji, nawet jeśli model nie odpowiada, wpływa na sposób fragmentowania dźwięku.
Dozwolone są następujące wartości:
- auto (wartość domyślna) jest odpowiednikiem medium
- low pozwoli użytkownikowi zabrać czas na rozmowę,
- high będzie dzielić dźwięk tak szybko, jak to możliwe.

Jeśli chcesz, aby model częściej odpowiadał w trybie konwersacji lub szybciej zwracał zdarzenia transkrypcji w trybie transkrypcji, możesz ustawić zapalność na high.
Z drugiej strony, jeśli chcesz pozwolić użytkownikowi mówić nieprzerwanie w trybie konwersacji lub jeśli chcesz, aby większe fragmenty pojawiały się w trybie transkrypcji, możesz ustawić poziom gotowości na low.
interrupt_response typ logiczny (boolowski) Optional Włącz lub wyłącz przerwę w działaniu barge-in (wartość domyślna: true). Dostępne tylko z typem azure_semantic_vad i azure_semantic_vad_multilingual.
auto_truncate typ logiczny (boolowski) Optional Automatyczne obcinanie przy przerwaniu (ustawienie domyślne: false).

Transkrypcja danych wejściowych audio

Interfejs API Voice Live obsługuje wiele modeli transkrypcji na potrzeby dźwięku wejściowego. Ustaw pole model w input_audio_transcription, aby wybrać jedną opcję. Dostępne modele zależą od używanego modelu czatu:

Model transkrypcji Zgodne modele czatów Description
azure-speech Wszystkie niemodalne modele i agenci Azure — zamiana mowy na tekst. Automatycznie aktywne dla modeli niewielomodalnych. Obsługuje listę fraz i mowę niestandardową.
mai-transcribe-1 Wszystkie niemodalne modele i agenci Model rozpoznawania mowy MAI Transcribe-1 (wersja zapoznawcza).
whisper-1 gpt-realtime, gpt-realtime-mini Model transkrypcji OpenAI Whisper.
gpt-4o-transcribe gpt-realtime, gpt-realtime-mini Model transkrypcji oparty na GPT-4o.
gpt-4o-mini-transcribe gpt-realtime, gpt-realtime-mini Model transkrypcji oparty na GPT-4o mini.
gpt-4o-transcribe-diarize gpt-realtime, gpt-realtime-mini Transkrypcja GPT-4o z diarizacją.

Aby zapoznać się z obsługiwanymi językami na model, zobacz Obsługiwane języki interfejsu API usługi Voice Live.

Azure zamiana mowy na tekst

Zamiana mowy na tekst w usłudze Azure jest automatycznie aktywna, gdy używasz modelu niemultimodalnego. Można ją jawnie skonfigurować, ustawiając wartość model na :azure-speech

{
    "session": {
        "input_audio_transcription": {
            "model": "azure-speech",
            "language": "en"
        }
    }
}

Aby uzyskać opcje dostosowywania danych wejściowych mowy, takie jak lista fraz i niestandardowa mowa, zobacz Jak dostosować dane wejściowe i wyjściowe usługi Voice Live.

MAI Transcribe-1 (wersja zapoznawcza)

MAI Transcribe-1 to model transkrypcji, którego można używać jako alternatywy dla azure-speech z dowolnym tekstowym modelem konwersacyjnym lub agentem (na przykład gpt-4.1). Włącz ją, ustawiając wartość input_audio_transcription.model na mai-transcribe-1 w session.update komunikacie:

{
  "type": "session.update",
  "session": {
    "input_audio_transcription": {
      "model": "mai-transcribe-1"
    },
    "modalities": ["text", "audio"],
    "instructions": "You are a helpful assistant.",
    "turn_detection": {
      "type": "azure_semantic_vad_multilingual"
    }
  }
}

W poniższym przykładzie pokazano tę samą konfigurację za pomocą zestawu Voice Live SDK dla Python:

from azure.ai.voicelive.aio import connect
from azure.ai.voicelive.models import (
    AudioInputTranscriptionOptions,
    AzureSemanticVadMultilingual,
    AzureStandardVoice,
    Modality,
    RequestSession,
)
from azure.identity.aio import DefaultAzureCredential

async with connect(
    endpoint="https://<your-resource>.services.ai.azure.com/",
    credential=DefaultAzureCredential(),
    model="gpt-4.1",
) as conn:
    await conn.session.update(
        session=RequestSession(
            input_audio_transcription=AudioInputTranscriptionOptions(
                model="mai-transcribe-1",
            ),
            voice=AzureStandardVoice(name="en-US-AvaNeural"),
            modalities=[Modality.TEXT, Modality.AUDIO],
            instructions="You are a helpful assistant.",
            turn_detection=AzureSemanticVadMultilingual(),
        )
    )

Note

W przypadku aplikacji produkcyjnych użyj polecenia DefaultAzureCredential z azure.identity do uwierzytelniania bez użycia klucza. Możesz również użyć AzureKeyCredential z azure.core.credentials za pomocą klucza API. Aby zapoznać się z kompletnymi przykładami zestawu SDK w języku C#, JavaScript i Java, zobacz przewodnik Szybki start Voice Live.

Modele transkrypcji OpenAI

Podczas korzystania z gpt-realtime lub gpt-realtime-mini można używać modeli transkrypcji OpenAI (whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe lub gpt-4o-transcribe-diarize). Te modele obsługują również opcjonalny prompt parametr do obsługi transkrypcji:

{
    "session": {
        "input_audio_transcription": {
            "model": "gpt-4o-transcribe",
            "language": "en",
            "prompt": "Expected terminology: Azure, Foundry, WebSocket"
        }
    }
}

Wyjście audio za pomocą usługi Azure Text to Speech

Możesz użyć parametru voice , aby określić standardowy lub niestandardowy głos. Głos jest używany do wyjścia audio.

Obiekt voice ma następujące właściwości:

Property Typ Wymagane lub opcjonalne Description
name ciąg Required Określa nazwę głosu. Na przykład en-US-AvaNeural.
type ciąg Required Konfiguracja typu głosu platformy Azure między azure-standard i azure-custom.
temperature number Optional Określa temperaturę, która ma zastosowanie do głosów usługi Azure HD. Wyższe wartości zapewniają wyższe poziomy zmienności w intonacji, prosodii itp.

Zobacz Jak dostosować dane wejściowe i wyjściowe funkcji Voice Live, aby dowiedzieć się więcej na temat konfiguracji dostosowywania danych wyjściowych mowy.

Standardowe głosy platformy Azure

Oto przykład komunikatu częściowego dla standardowego (azure-standard) głosu:

{
  "voice": {
    "name": "en-US-AvaNeural",
    "type": "azure-standard"
  }
}

Aby uzyskać pełną listę standardowych głosów, zobacz Obsługa języka i głosu dla usługi Mowa.

Głosy o wysokiej rozdzielczości platformy Azure

Oto przykładowa session.update wiadomość dla standardowego głosu o wysokiej rozdzielczości:

{
  "voice": {
    "name": "en-US-Ava:DragonHDLatestNeural",
    "type": "azure-standard",
    "temperature": 0.8 // optional
  }
}

Pełną listę standardowych głosów o wysokiej rozdzielczości można znaleźć w dokumentacji dotyczącej głosów o wysokiej rozdzielczości.

Note

Głosy o wysokiej rozdzielczości są obecnie obsługiwane tylko w następujących regionach: southeastasia, centralindia, swedencentral, westeurope, eastus2, westus2

Tempo mówienia

Użyj właściwości łańcucha znaków rate do dostosowania szybkości mówienia dla dowolnego standardowego głosu tekstu na mowę platformy Azure oraz głosów niestandardowych.

Wartość stawki powinna wahać się od 0,5 do 1,5, z wyższymi wartościami wskazującymi szybsze prędkości.

{
  "voice": {
    "name": "en-US-Ava:DragonHDLatestNeural",
    "type": "azure-standard",
    "temperature": 0.8, // optional
    "rate": "1.2"
  }
}

Znaczniki czasu audio

Gdy używasz głosów platformy Azure i output_audio_timestamp_types jest skonfigurowana, usługa zwraca response.audio_timestamp.delta w odpowiedzi oraz response.audio_timestamp.done gdy zwracane są wszystkie komunikaty z znacznikami czasu.

Aby skonfigurować znaczniki czasu dźwięku, można ustawić output_audio_timestamp_types w komunikacie session.update.

{
    "session": {
        "output_audio_timestamp_types": ["word"]
    }
}

Usługa zwraca znaczniki czasu audio w odpowiedzi po wygenerowaniu dźwięku.

{
    "event_id": "<event_id>",
    "type": "response.audio_timestamp.delta",
    "response_id": "<response_id>",
    "item_id": "<item_id>",
    "output_index": 0,
    "content_index": 0,
    "audio_offset_ms": 490,
    "audio_duration_ms": 387,
    "text": "end",
    "timestamp_type": "word"
}

Zostanie wysłana response.audio_timestamp.done wiadomość, gdy zostaną zwrócone wszystkie znaczniki czasu.

{
    "event_id": "<event_id>",
    "type": "response.audio_timestamp.done",
    "response_id": "<response_id>",
    "item_id": "<item_id>",
}

Viseme

Viseme to wizualny opis fonemy w języku mówionym. Definiuje położenie twarzy i ust, gdy osoba mówi.

Możesz użyć standardowego głosu Azure lub niestandardowego głosu Azure z ustawieniem animation.outputs na {"viseme_id"}. Usługa zwraca response.animation_viseme.delta w odpowiedzi i response.animation_viseme.done po zwróceniu wszystkich komunikatów wizem.

Tip

Aby uzyskać więcej informacji na temat viseme via Speech Synthesis Markup Language (SSML), zobacz dokumentację elementu viseme.

Aby skonfigurować viseme, możesz ustawić animation.outputs w session.update wiadomości. Parametr animation.outputs jest opcjonalny. Konfiguruje, które dane wyjściowe animacji powinny być zwracane. Obecnie obsługuje tylko element viseme_id.

{
  "type": "session.update",
  "event_id": "your-session-id",
  "session": {
    "voice": {
      "name": "en-US-AvaNeural",
      "type": "azure-standard",
    },
    "modalities": ["text", "audio"],
    "instructions": "You are a helpful AI assistant responding in natural, engaging language.",
    "turn_detection": {
        "type": "server_vad"
    },
    "output_audio_timestamp_types": ["word"], // optional
    "animation": {
        "outputs": ["viseme_id"], // optional
    },
  }
}

Parametr output_audio_timestamp_types jest opcjonalny. Konfiguruje, które znaczniki czasu audio powinny być zwracane dla wygenerowanego dźwięku. Obecnie obsługuje tylko element word.

Usługa zwraca wyrównanie viseme w odpowiedzi po wygenerowaniu dźwięku.

{
    "event_id": "<event_id>",
    "type": "response.animation_viseme.delta",
    "response_id": "<response_id>",
    "item_id": "<item_id>",
    "output_index": 0,
    "content_index": 0,
    "audio_offset_ms": 455,
    "viseme_id": 20
}

Gdy zostaną zwrócone wszystkie komunikaty viseme, zostanie wysłana response.animation_viseme.done wiadomość.

{
    "event_id": "<event_id>",
    "type": "response.animation_viseme.done",
    "response_id": "<response_id>",
    "item_id": "<item_id>",
}

model azure-realtime

Model azure-realtime jest dedykowanym modelem działającym w czasie rzeczywistym, który korzysta z wyselekcjonowanego zestawu natywnych głosów zaprojektowanych z myślą o generowaniu naturalnie brzmiącej mowy w czasie rzeczywistym.

Note

Ten model azure-realtime wymaga wersji interfejsu API 2026-01-01-preview lub nowszej wersji.

Konfiguracja głosu

Określ głos jako obiekt strukturalny z ustawieniem type na azure-realtime-native oraz name na jedną z obsługiwanych nazw głosu:

{
  "type": "session.update",
  "session": {
    "voice": {
      "type": "azure-realtime-native",
      "name": "ava"
    },
    "modalities": ["text", "audio"],
    "instructions": "You are a helpful assistant."
  }
}

Obsługiwane głosy

Obsługiwane są następujące azure-realtime-native nazwy głosowe:

Nazwa głosu Description
aarti Azure Mowa — głos natywny
andrew Azure Mowa — głos natywny
ava Natywny głos usługi Azure Speech (domyślny)
denise Azure Mowa — głos natywny
elsa Azure Mowa — głos natywny
florian Azure Mowa — głos natywny
francisca Azure Mowa — głos natywny
meera Azure Mowa — głos natywny
ximena Azure Mowa — głos natywny
xiaoxiao Azure Mowa — głos natywny
yunxi Azure Mowa — głos natywny

Jeśli nie określisz głosu, ava jest używany domyślnie. Wartość domyślna pojawia się zarówno w odpowiedzi session.created, jak i w kolejnych odpowiedziach session.updated.

Awatar Azure do zamiany tekstu na mowę

Awatar zamiany tekstu na mowę konwertuje tekst na cyfrowy film z fotorealistycznym człowiekiem (standardowym awatarem lub niestandardowym tekstem na awatar mowy) w rozmowie z głosem naturalnie brzmiącym.

Możesz użyć parametru avatar , aby określić standardowy lub niestandardowy awatar. Awatar jest synchronizowany z wyjściem audio.

avatar Można określić parametr umożliwiający włączenie danych wyjściowych awatara synchronizowanych z danymi wyjściowymi dźwięku:

{
  "session": {
    "avatar": {
      "character": "lisa",
      "style": "casual-sitting",
      "customized": false,
      "ice_servers": [
        {
          "urls": ["REDACTED"],
          "username": "",
          "credential": ""
        }
      ],
      "video": {
        "bitrate": 2000000,
        "codec": "h264",
        "crop": {
          "top_left": [560, 0],
          "bottom_right": [1360, 1080],
        },
        "resolution": {
          "width": 1080,
          "height": 1920,
        },
        "background": {
          "color": "#00FF00FF"
          // "image_url": "https://example.com/example.jpg"
        }
      }
    }
  }
}

Pole ice_servers jest opcjonalne. Jeśli go nie określisz, usługa zwróci serwery ICE specyficzne dla serwera w odpowiedzi session.updated. Należy również użyć serwerów ICE specyficznych dla serwera do wygenerowania lokalnych kandydatów ICE.

Wyślij klienta SDP po zebraniu kandydatów ICE.

{
    "type": "session.avatar.connect",
    "client_sdp": "your-client-sdp"
}

Usługa odpowiada za pomocą protokołu SDP serwera.

{
    "type": "session.avatar.connecting",
    "server_sdp": "your-server-sdp"
}

Następnie możesz połączyć awatar z serwerem SDP.

Aby uzyskać więcej informacji, zapoznaj się z tym przykładowym kodem użycia awatara w interfejsie Voice Live API.

Korzystanie z awatara zdjęcia

Awatar ze zdjęcia generuje wideo mówiącej osoby na podstawie jednego obrazu. Usługa Voice Live obsługuje zarówno standardowe awatary zdjęć (dostarczane przez Microsoft) i niestandardowe awatary zdjęć (utworzone na podstawie własnego obrazu). Aby używać awatara fotograficznego, ustaw type na photo-avatar, a model na model podstawowy, który go obsługuje (obecnie vasa-1). Aby ustawić standardowy awatar ze zdjęciem, ustaw wartość character na nazwę postaci awatara ze zdjęciem (listę znajdziesz w sekcji Talking heads). W przypadku niestandardowego awatara ze zdjęciem ustaw dla character nazwę niestandardowego awatara ze zdjęciem i ustaw customized na true.

Użyj opcjonalnego scene obiektu, aby dostosować powiększenie, położenie, rotację i amplitudę ruchu awatara. Znaczenie i zakresy wartości poszczególnych pól sceny podano w sekcji Ustaw scenę awatara dla awatara ze zdjęcia.

Oto przykładowy obiekt avatar dla standardowego awatara ze zdjęciem:

{
  "session": {
    "avatar": {
      "type": "photo-avatar",
      "model": "vasa-1",
      "character": "anika",
      "video": {
        "codec": "h264",
        "resolution": {
          "width": 1920,
          "height": 1080
        }
      },
      "scene": {
        "zoom": 1.0,
        "position_x": 0.0,
        "position_y": 0.0,
        "rotation_x": 0.0,
        "rotation_y": 0.0,
        "rotation_z": 0.0,
        "amplitude": 0.6
      }
    }
  }
}

Aby użyć niestandardowego awatara ze zdjęciem, ustaw character na nazwę swojego niestandardowego awatara ze zdjęciem i ustaw customized na true:

{
  "session": {
    "avatar": {
      "type": "photo-avatar",
      "model": "vasa-1",
      "character": "your-custom-photo-avatar-name",
      "customized": true
    }
  }
}

Note

Awatar zamiany tekstu na mowę platformy Azure jest obecnie obsługiwany w ograniczonych regionach. Aby zapoznać się z bieżącą listą obsługiwanych regionów, zobacz tabelę Regiony usługi Mowa.