Изучение API Голосовой трансляции Azure
Подсказка
Дополнительные сведения см. на вкладке "Текст и изображения ".
Динамический API голосовой связи позволяет разработчикам создавать приложения с поддержкой голоса с двунаправленным взаимодействием в режиме реального времени. В этом уроке рассматривается архитектура, конфигурация и реализация.
Ключевые функции API голосовой трансляции
Api live voice обеспечивает обмен данными в режиме реального времени с помощью подключений WebSocket. Она поддерживает расширенные функции, такие как распознавание речи, синтез текста в речь, потоковая передача аватара и обработка звука.
- Форматированные в формате JSON события управляют беседами, звуковыми потоками и ответами.
- События классифицируются на события клиента (отправляемые с клиента на сервер) и события сервера (отправляемые с сервера на клиент).
К ключевым функциям относятся:
- Обработка звука в режиме реального времени с поддержкой нескольких форматов, таких как PCM16 и G.711.
- Дополнительные параметры голосовой связи, включая голос OpenAI и пользовательские голоса Azure.
- Интеграция аватара с помощью WebRTC для видео и анимации.
- Встроенное снижение шума и отмена эхо.
Замечание
Voice Live API оптимизирован для ресурсов Microsoft Foundry. Мы рекомендуем использовать ресурсы Microsoft Foundry для полной доступности функций и лучшего интерфейса интеграции с Microsoft Foundry.
Сведения о поддерживаемых моделях и регионах см. в обзоре API голосовой трансляции.
Подключение к API голосовой трансляции
Api live voice поддерживает два метода проверки подлинности: Microsoft Entra (без ключа) и ключ API. Microsoft Entra использует аутентификацию на основе токенов для ресурса Microsoft Foundry. Вы применяете полученный аутентификационный токен с использованием токена с заголовком BearerAuthorization.
Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо назначить роль пользователя Cognitive Services учетной записи пользователя или управляемому удостоверению. Вы создаете токен с помощью Azure CLI или SDK Azure. Маркер должен быть создан в области https://ai.azure.com/.default или в устаревшей области https://cognitiveservices.azure.com/.default. Используйте маркер в Authorization заголовке запроса на подключение WebSocket с форматом Bearer <token>.
Для доступа к ключам ключ API можно предоставить одним из двух способов. В предварительном подключении можно использовать заголовок подключения api-key. Этот параметр недоступен в среде браузера. Кроме того, можно использовать api-key параметр строки запроса в URI запроса. Параметры строки запроса шифруются при использовании https/wss.
Замечание
Заголовок api-key подключения на этапе предварительного взаимодействия недоступен в среде браузера.
Конечная точка WebSocket
Используемая конечная точка зависит от способа доступа к ресурсам. Доступ к ресурсам можно получить через подключение к проекту Foundry при реализации агента или через прямое подключение к модели.
-
Подключение к проекту: Конечная точка
wss://<your-ai-foundry-resource-name>.services.ai.azure.com/voice-live/realtime?api-version=2025-10-01 -
Подключение модели: Конечная точка
wss://<your-ai-foundry-resource-name>.cognitiveservices.azure.com/voice-live/realtime?api-version=2025-10-01.
Конечная точка одинакова для всех моделей. Единственное различие заключается в обязательном model параметре запроса или, при использовании службы агента, в параметрах agent_id и project_id.
События API голосовой трансляции
Клиентские и серверные события способствуют коммуникации и управлению в Voice live API. К ключевым событиям клиента относятся:
-
session.update: изменение конфигураций сеанса. -
input_audio_buffer.append: добавьте звуковые данные в буфер. -
response.create: Генерация ответов с помощью инференции модели.
События сервера предоставляют обратную связь и обновления состояния.
-
session.updated: подтвердите изменения конфигурации сеанса. -
response.done: обозначьте завершение генерации ответов. -
conversation.item.created: уведомляет о добавлении нового элемента беседы.
Полный список событий клиента или сервера см. в справочнике по API голосовой трансляции.
Замечание
Правильная обработка событий обеспечивает простое взаимодействие между клиентом и сервером.
Настройка параметров сеанса для API голосовой трансляции
Часто первое событие, отправленное вызывающим абонентом в только что созданном сеансе api голосовой трансляции, является событием session.update . Это событие управляет широким набором поведения ввода и вывода. Параметры сеанса можно обновлять динамически с помощью session.update события. Разработчики могут настраивать типы голосовых сообщений, модальности, обнаружение поворотов и аудиоформаты.
Пример конфигурации:
{
"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"
}
}
Подсказка
Используйте семантический VAD Azure для интеллектуального обнаружения поворота и улучшенного потока беседы.
Реализация обработки звука в режиме реального времени с помощью API трансляции голосовой связи
Обработка звука в режиме реального времени является основной функцией API голосовой трансляции. Разработчики могут добавлять, фиксировать и очищать звуковые буферы с помощью определенных клиентских событий.
- Добавление звука: Добавьте звуковые байты в входной буфер.
- Фиксация звука: Обработка звукового буфера для транскрибирования или создания ответов.
- Очистить звук: Удалите звуковые данные из буфера.
Снижение шума и отмена эхо можно настроить для повышения качества звука. Рассмотрим пример.
{
"type": "session.update",
"session": {
"input_audio_noise_reduction": {
"type": "azure_deep_noise_suppression"
},
"input_audio_echo_cancellation": {
"type": "server_echo_cancellation"
}
}
}
Замечание
Снижение шума повышает точность VAD и производительность модели путем фильтрации входного звука.
Интеграция потоковой передачи аватаров с помощью API трансляции голосовой связи
API трансляции голосовой связи поддерживает потоковую передачу аватаров на основе WebRTC для интерактивных приложений. Разработчики могут настраивать параметры видео, анимации и blendshape.
-
session.avatar.connectИспользуйте событие для предоставления SDP-предложения клиента. - Настройте параметры разрешения видео, скорости и кодека.
- Определите выходные данные анимации, такие как blendshapes и visemes.
Пример конфигурации:
{
"type": "session.avatar.connect",
"client_sdp": "<client_sdp>"
}
Подсказка
Используйте параметры видео высокого разрешения для улучшения качества визуального элемента в взаимодействии с аватаром.