From d26ededcffa98e278b787a3181ed84a94e7a2ba7 Mon Sep 17 00:00:00 2001 From: Xiting Zhang Date: Wed, 18 Feb 2026 18:36:07 -0800 Subject: [PATCH 1/4] Move azure-ai-voicelive SDK from sdk/ai to sdk/voicelive Relocate the azure-ai-voicelive package to its own top-level service directory (sdk/voicelive) for independent CI pipeline management. Changes: - Move sdk/ai/azure-ai-voicelive/ to sdk/voicelive/azure-ai-voicelive/ - Remove azure-ai-voicelive artifact from sdk/ai/ci.yml - Create sdk/voicelive/ci.yml and sdk/voicelive/tests.yml - Update ServiceDirectory and TestResourceDirectories in package tests.yml - Update assets.json TagPrefix and Tag to use new path No public API or import path changes; this is a repo-internal restructuring. --- sdk/ai/azure-ai-voicelive/assets.json | 6 --- sdk/ai/ci.yml | 2 - .../azure-ai-voicelive/.env.template | 0 .../azure-ai-voicelive/CHANGELOG.md | 0 .../azure-ai-voicelive/LICENSE | 0 .../azure-ai-voicelive/MANIFEST.in | 0 .../azure-ai-voicelive/README.md | 0 .../azure-ai-voicelive/_metadata.json | 0 .../apiview-properties.json | 0 sdk/voicelive/azure-ai-voicelive/assets.json | 6 +++ .../azure-ai-voicelive/azure/__init__.py | 0 .../azure-ai-voicelive/azure/ai/__init__.py | 0 .../azure/ai/voicelive/__init__.py | 0 .../ai/voicelive/_operations/__init__.py | 0 .../ai/voicelive/_operations/_operations.py | 0 .../azure/ai/voicelive/_patch.py | 0 .../azure/ai/voicelive/_types.py | 0 .../azure/ai/voicelive/_utils/__init__.py | 0 .../azure/ai/voicelive/_utils/model_base.py | 0 .../ai/voicelive/_utils/serialization.py | 0 .../azure/ai/voicelive/_utils/utils.py | 0 .../azure/ai/voicelive/_version.py | 0 .../azure/ai/voicelive/aio/__init__.py | 0 .../ai/voicelive/aio/_operations/__init__.py | 0 .../voicelive/aio/_operations/_operations.py | 0 .../azure/ai/voicelive/aio/_patch.py | 0 .../azure/ai/voicelive/models/__init__.py | 0 .../azure/ai/voicelive/models/_enums.py | 0 .../azure/ai/voicelive/models/_models.py | 0 .../azure/ai/voicelive/models/_patch.py | 0 .../azure/ai/voicelive/py.typed | 0 .../azure-ai-voicelive/cspell.json | 0 .../azure-ai-voicelive/dev_requirements.txt | 0 .../azure-ai-voicelive/pyproject.toml | 0 .../samples/BASIC_VOICE_ASSISTANT.md | 0 .../azure-ai-voicelive/samples/README.md | 0 .../samples/agent_v2_sample.py | 0 .../samples/async_function_calling_sample.py | 0 .../samples/async_mcp_sample.py | 0 .../samples/basic_voice_assistant_async.py | 0 .../azure-ai-voicelive/samples/utils.py | 0 .../azure-ai-voicelive/test-resources.json | 0 .../azure-ai-voicelive/tests.yml | 4 +- .../azure-ai-voicelive/tests/__init__.py | 0 .../azure-ai-voicelive/tests/asset/4-1.wav | Bin .../tests/asset/ask_weather.mp3 | Bin .../tests/asset/ask_weather.wav | Bin .../tests/asset/filler_word_24kHz.wav | Bin .../tests/asset/largest_lake.16kHz.wav | Bin .../tests/asset/largest_lake.44kHz.wav | Bin .../tests/asset/largest_lake.8kHz.wav | Bin .../tests/asset/largest_lake.alaw | Bin .../tests/asset/largest_lake.ulaw | 0 .../tests/asset/largest_lake.wav | Bin .../azure-ai-voicelive/tests/conftest.py | 0 .../tests/test_live_realtime_service.py | 0 .../tests/test_unit_client_events.py | 0 .../tests/test_unit_connection.py | 0 .../tests/test_unit_enums.py | 0 .../tests/test_unit_integration.py | 0 .../tests/test_unit_message_handling.py | 0 .../tests/test_unit_models.py | 0 ...st_unit_models_interim_response_foundry.py | 0 .../tests/test_unit_serialization.py | 0 .../tests/test_unit_smoke_validation.py | 0 .../tests/test_unit_voice_config.py | 0 .../tests/voicelive_preparer.py | 0 .../azure-ai-voicelive/tsp-location.yaml | 0 sdk/voicelive/ci.yml | 37 ++++++++++++++++++ sdk/voicelive/tests.yml | 7 ++++ 70 files changed, 52 insertions(+), 10 deletions(-) delete mode 100644 sdk/ai/azure-ai-voicelive/assets.json rename sdk/{ai => voicelive}/azure-ai-voicelive/.env.template (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/CHANGELOG.md (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/LICENSE (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/MANIFEST.in (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/README.md (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/_metadata.json (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/apiview-properties.json (100%) create mode 100644 sdk/voicelive/azure-ai-voicelive/assets.json rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/__init__.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/__init__.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/__init__.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/_operations/__init__.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/_operations/_operations.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/_patch.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/_types.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/_utils/__init__.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/_utils/model_base.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/_utils/serialization.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/_utils/utils.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/_version.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/aio/__init__.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/aio/_operations/__init__.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/aio/_operations/_operations.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/aio/_patch.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/models/__init__.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/models/_enums.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/models/_models.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/models/_patch.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/azure/ai/voicelive/py.typed (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/cspell.json (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/dev_requirements.txt (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/pyproject.toml (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/samples/BASIC_VOICE_ASSISTANT.md (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/samples/README.md (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/samples/agent_v2_sample.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/samples/async_function_calling_sample.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/samples/async_mcp_sample.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/samples/basic_voice_assistant_async.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/samples/utils.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/test-resources.json (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests.yml (85%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/__init__.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/asset/4-1.wav (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/asset/ask_weather.mp3 (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/asset/ask_weather.wav (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/asset/filler_word_24kHz.wav (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/asset/largest_lake.16kHz.wav (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/asset/largest_lake.44kHz.wav (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/asset/largest_lake.8kHz.wav (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/asset/largest_lake.alaw (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/asset/largest_lake.ulaw (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/asset/largest_lake.wav (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/conftest.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_live_realtime_service.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_unit_client_events.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_unit_connection.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_unit_enums.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_unit_integration.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_unit_message_handling.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_unit_models.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_unit_models_interim_response_foundry.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_unit_serialization.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_unit_smoke_validation.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/test_unit_voice_config.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tests/voicelive_preparer.py (100%) rename sdk/{ai => voicelive}/azure-ai-voicelive/tsp-location.yaml (100%) create mode 100644 sdk/voicelive/ci.yml create mode 100644 sdk/voicelive/tests.yml diff --git a/sdk/ai/azure-ai-voicelive/assets.json b/sdk/ai/azure-ai-voicelive/assets.json deleted file mode 100644 index f30b3604a3f8..000000000000 --- a/sdk/ai/azure-ai-voicelive/assets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "AssetsRepo": "Azure/azure-sdk-assets", - "AssetsRepoPrefixPath": "python", - "TagPrefix": "python/ai/azure-ai-voicelive", - "Tag": "python/ai/azure-ai-voicelive_9c84c5d9c2" -} diff --git a/sdk/ai/ci.yml b/sdk/ai/ci.yml index ef6f9dbcd248..0ce720a0f2fb 100644 --- a/sdk/ai/ci.yml +++ b/sdk/ai/ci.yml @@ -39,8 +39,6 @@ extends: safeName: azureaiprojects - name: azure-ai-agents safeName: azureaiagents - - name: azure-ai-voicelive - safeName: azureaivoicelive # These packages are deprecated: # - name: azure-ai-inference # safeName: azureaiinference diff --git a/sdk/ai/azure-ai-voicelive/.env.template b/sdk/voicelive/azure-ai-voicelive/.env.template similarity index 100% rename from sdk/ai/azure-ai-voicelive/.env.template rename to sdk/voicelive/azure-ai-voicelive/.env.template diff --git a/sdk/ai/azure-ai-voicelive/CHANGELOG.md b/sdk/voicelive/azure-ai-voicelive/CHANGELOG.md similarity index 100% rename from sdk/ai/azure-ai-voicelive/CHANGELOG.md rename to sdk/voicelive/azure-ai-voicelive/CHANGELOG.md diff --git a/sdk/ai/azure-ai-voicelive/LICENSE b/sdk/voicelive/azure-ai-voicelive/LICENSE similarity index 100% rename from sdk/ai/azure-ai-voicelive/LICENSE rename to sdk/voicelive/azure-ai-voicelive/LICENSE diff --git a/sdk/ai/azure-ai-voicelive/MANIFEST.in b/sdk/voicelive/azure-ai-voicelive/MANIFEST.in similarity index 100% rename from sdk/ai/azure-ai-voicelive/MANIFEST.in rename to sdk/voicelive/azure-ai-voicelive/MANIFEST.in diff --git a/sdk/ai/azure-ai-voicelive/README.md b/sdk/voicelive/azure-ai-voicelive/README.md similarity index 100% rename from sdk/ai/azure-ai-voicelive/README.md rename to sdk/voicelive/azure-ai-voicelive/README.md diff --git a/sdk/ai/azure-ai-voicelive/_metadata.json b/sdk/voicelive/azure-ai-voicelive/_metadata.json similarity index 100% rename from sdk/ai/azure-ai-voicelive/_metadata.json rename to sdk/voicelive/azure-ai-voicelive/_metadata.json diff --git a/sdk/ai/azure-ai-voicelive/apiview-properties.json b/sdk/voicelive/azure-ai-voicelive/apiview-properties.json similarity index 100% rename from sdk/ai/azure-ai-voicelive/apiview-properties.json rename to sdk/voicelive/azure-ai-voicelive/apiview-properties.json diff --git a/sdk/voicelive/azure-ai-voicelive/assets.json b/sdk/voicelive/azure-ai-voicelive/assets.json new file mode 100644 index 000000000000..eba9164886f6 --- /dev/null +++ b/sdk/voicelive/azure-ai-voicelive/assets.json @@ -0,0 +1,6 @@ +{ + "AssetsRepo": "Azure/azure-sdk-assets", + "AssetsRepoPrefixPath": "python", + "TagPrefix": "python/voicelive/azure-ai-voicelive", + "Tag": "python/voicelive/azure-ai-voicelive_9c84c5d9c2" +} diff --git a/sdk/ai/azure-ai-voicelive/azure/__init__.py b/sdk/voicelive/azure-ai-voicelive/azure/__init__.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/__init__.py rename to sdk/voicelive/azure-ai-voicelive/azure/__init__.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/__init__.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/__init__.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/__init__.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/__init__.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/__init__.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/__init__.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/__init__.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/__init__.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_operations/__init__.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_operations/__init__.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_operations/__init__.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_operations/__init__.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_operations/_operations.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_operations/_operations.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_operations/_operations.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_operations/_operations.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_patch.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_patch.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_patch.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_patch.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_types.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_types.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_types.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_types.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_utils/__init__.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_utils/__init__.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_utils/__init__.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_utils/__init__.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_utils/model_base.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_utils/model_base.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_utils/model_base.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_utils/model_base.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_utils/serialization.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_utils/serialization.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_utils/serialization.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_utils/serialization.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_utils/utils.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_utils/utils.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_utils/utils.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_utils/utils.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_version.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_version.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/_version.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/_version.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/aio/__init__.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/aio/__init__.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/aio/__init__.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/aio/__init__.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/aio/_operations/__init__.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/aio/_operations/__init__.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/aio/_operations/__init__.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/aio/_operations/__init__.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/aio/_operations/_operations.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/aio/_operations/_operations.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/aio/_operations/_operations.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/aio/_operations/_operations.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/aio/_patch.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/aio/_patch.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/aio/_patch.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/aio/_patch.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/models/__init__.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/__init__.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/models/__init__.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/__init__.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/models/_enums.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/_enums.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/models/_enums.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/_enums.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/models/_models.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/_models.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/models/_models.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/_models.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/models/_patch.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/_patch.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/models/_patch.py rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/_patch.py diff --git a/sdk/ai/azure-ai-voicelive/azure/ai/voicelive/py.typed b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/py.typed similarity index 100% rename from sdk/ai/azure-ai-voicelive/azure/ai/voicelive/py.typed rename to sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/py.typed diff --git a/sdk/ai/azure-ai-voicelive/cspell.json b/sdk/voicelive/azure-ai-voicelive/cspell.json similarity index 100% rename from sdk/ai/azure-ai-voicelive/cspell.json rename to sdk/voicelive/azure-ai-voicelive/cspell.json diff --git a/sdk/ai/azure-ai-voicelive/dev_requirements.txt b/sdk/voicelive/azure-ai-voicelive/dev_requirements.txt similarity index 100% rename from sdk/ai/azure-ai-voicelive/dev_requirements.txt rename to sdk/voicelive/azure-ai-voicelive/dev_requirements.txt diff --git a/sdk/ai/azure-ai-voicelive/pyproject.toml b/sdk/voicelive/azure-ai-voicelive/pyproject.toml similarity index 100% rename from sdk/ai/azure-ai-voicelive/pyproject.toml rename to sdk/voicelive/azure-ai-voicelive/pyproject.toml diff --git a/sdk/ai/azure-ai-voicelive/samples/BASIC_VOICE_ASSISTANT.md b/sdk/voicelive/azure-ai-voicelive/samples/BASIC_VOICE_ASSISTANT.md similarity index 100% rename from sdk/ai/azure-ai-voicelive/samples/BASIC_VOICE_ASSISTANT.md rename to sdk/voicelive/azure-ai-voicelive/samples/BASIC_VOICE_ASSISTANT.md diff --git a/sdk/ai/azure-ai-voicelive/samples/README.md b/sdk/voicelive/azure-ai-voicelive/samples/README.md similarity index 100% rename from sdk/ai/azure-ai-voicelive/samples/README.md rename to sdk/voicelive/azure-ai-voicelive/samples/README.md diff --git a/sdk/ai/azure-ai-voicelive/samples/agent_v2_sample.py b/sdk/voicelive/azure-ai-voicelive/samples/agent_v2_sample.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/samples/agent_v2_sample.py rename to sdk/voicelive/azure-ai-voicelive/samples/agent_v2_sample.py diff --git a/sdk/ai/azure-ai-voicelive/samples/async_function_calling_sample.py b/sdk/voicelive/azure-ai-voicelive/samples/async_function_calling_sample.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/samples/async_function_calling_sample.py rename to sdk/voicelive/azure-ai-voicelive/samples/async_function_calling_sample.py diff --git a/sdk/ai/azure-ai-voicelive/samples/async_mcp_sample.py b/sdk/voicelive/azure-ai-voicelive/samples/async_mcp_sample.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/samples/async_mcp_sample.py rename to sdk/voicelive/azure-ai-voicelive/samples/async_mcp_sample.py diff --git a/sdk/ai/azure-ai-voicelive/samples/basic_voice_assistant_async.py b/sdk/voicelive/azure-ai-voicelive/samples/basic_voice_assistant_async.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/samples/basic_voice_assistant_async.py rename to sdk/voicelive/azure-ai-voicelive/samples/basic_voice_assistant_async.py diff --git a/sdk/ai/azure-ai-voicelive/samples/utils.py b/sdk/voicelive/azure-ai-voicelive/samples/utils.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/samples/utils.py rename to sdk/voicelive/azure-ai-voicelive/samples/utils.py diff --git a/sdk/ai/azure-ai-voicelive/test-resources.json b/sdk/voicelive/azure-ai-voicelive/test-resources.json similarity index 100% rename from sdk/ai/azure-ai-voicelive/test-resources.json rename to sdk/voicelive/azure-ai-voicelive/test-resources.json diff --git a/sdk/ai/azure-ai-voicelive/tests.yml b/sdk/voicelive/azure-ai-voicelive/tests.yml similarity index 85% rename from sdk/ai/azure-ai-voicelive/tests.yml rename to sdk/voicelive/azure-ai-voicelive/tests.yml index 93510e5783ab..c07fba4f72ca 100644 --- a/sdk/ai/azure-ai-voicelive/tests.yml +++ b/sdk/voicelive/azure-ai-voicelive/tests.yml @@ -3,9 +3,9 @@ extends: parameters: BuildTargetingString: 'azure-ai-voicelive' JobName: chat - ServiceDirectory: ai + ServiceDirectory: voicelive TestResourceDirectories: - - ai/azure-ai-voicelive + - voicelive/azure-ai-voicelive EnvVars: AZURE_TEST_RUN_LIVE: 'true' AZURE_TEST_USE_CLI_AUTH: 'true' diff --git a/sdk/ai/azure-ai-voicelive/tests/__init__.py b/sdk/voicelive/azure-ai-voicelive/tests/__init__.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/__init__.py rename to sdk/voicelive/azure-ai-voicelive/tests/__init__.py diff --git a/sdk/ai/azure-ai-voicelive/tests/asset/4-1.wav b/sdk/voicelive/azure-ai-voicelive/tests/asset/4-1.wav similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/asset/4-1.wav rename to sdk/voicelive/azure-ai-voicelive/tests/asset/4-1.wav diff --git a/sdk/ai/azure-ai-voicelive/tests/asset/ask_weather.mp3 b/sdk/voicelive/azure-ai-voicelive/tests/asset/ask_weather.mp3 similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/asset/ask_weather.mp3 rename to sdk/voicelive/azure-ai-voicelive/tests/asset/ask_weather.mp3 diff --git a/sdk/ai/azure-ai-voicelive/tests/asset/ask_weather.wav b/sdk/voicelive/azure-ai-voicelive/tests/asset/ask_weather.wav similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/asset/ask_weather.wav rename to sdk/voicelive/azure-ai-voicelive/tests/asset/ask_weather.wav diff --git a/sdk/ai/azure-ai-voicelive/tests/asset/filler_word_24kHz.wav b/sdk/voicelive/azure-ai-voicelive/tests/asset/filler_word_24kHz.wav similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/asset/filler_word_24kHz.wav rename to sdk/voicelive/azure-ai-voicelive/tests/asset/filler_word_24kHz.wav diff --git a/sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.16kHz.wav b/sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.16kHz.wav similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.16kHz.wav rename to sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.16kHz.wav diff --git a/sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.44kHz.wav b/sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.44kHz.wav similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.44kHz.wav rename to sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.44kHz.wav diff --git a/sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.8kHz.wav b/sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.8kHz.wav similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.8kHz.wav rename to sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.8kHz.wav diff --git a/sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.alaw b/sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.alaw similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.alaw rename to sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.alaw diff --git a/sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.ulaw b/sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.ulaw similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.ulaw rename to sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.ulaw diff --git a/sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.wav b/sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.wav similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/asset/largest_lake.wav rename to sdk/voicelive/azure-ai-voicelive/tests/asset/largest_lake.wav diff --git a/sdk/ai/azure-ai-voicelive/tests/conftest.py b/sdk/voicelive/azure-ai-voicelive/tests/conftest.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/conftest.py rename to sdk/voicelive/azure-ai-voicelive/tests/conftest.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_live_realtime_service.py b/sdk/voicelive/azure-ai-voicelive/tests/test_live_realtime_service.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_live_realtime_service.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_live_realtime_service.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_unit_client_events.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_client_events.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_unit_client_events.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_unit_client_events.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_unit_connection.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_connection.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_unit_connection.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_unit_connection.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_unit_enums.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_enums.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_unit_enums.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_unit_enums.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_unit_integration.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_integration.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_unit_integration.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_unit_integration.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_unit_message_handling.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_message_handling.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_unit_message_handling.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_unit_message_handling.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_unit_models.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_models.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_unit_models.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_unit_models.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_unit_models_interim_response_foundry.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_models_interim_response_foundry.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_unit_models_interim_response_foundry.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_unit_models_interim_response_foundry.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_unit_serialization.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_serialization.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_unit_serialization.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_unit_serialization.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_unit_smoke_validation.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_smoke_validation.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_unit_smoke_validation.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_unit_smoke_validation.py diff --git a/sdk/ai/azure-ai-voicelive/tests/test_unit_voice_config.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_voice_config.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/test_unit_voice_config.py rename to sdk/voicelive/azure-ai-voicelive/tests/test_unit_voice_config.py diff --git a/sdk/ai/azure-ai-voicelive/tests/voicelive_preparer.py b/sdk/voicelive/azure-ai-voicelive/tests/voicelive_preparer.py similarity index 100% rename from sdk/ai/azure-ai-voicelive/tests/voicelive_preparer.py rename to sdk/voicelive/azure-ai-voicelive/tests/voicelive_preparer.py diff --git a/sdk/ai/azure-ai-voicelive/tsp-location.yaml b/sdk/voicelive/azure-ai-voicelive/tsp-location.yaml similarity index 100% rename from sdk/ai/azure-ai-voicelive/tsp-location.yaml rename to sdk/voicelive/azure-ai-voicelive/tsp-location.yaml diff --git a/sdk/voicelive/ci.yml b/sdk/voicelive/ci.yml new file mode 100644 index 000000000000..51bc74f6d23b --- /dev/null +++ b/sdk/voicelive/ci.yml @@ -0,0 +1,37 @@ +# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file. + +trigger: + branches: + include: + - main + - hotfix/* + - release/* + - restapi* + paths: + include: + - sdk/voicelive/ + - sdk/core/ + +pr: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + - restapi* + paths: + include: + - sdk/voicelive/ + - sdk/core/ + +extends: + template: /eng/pipelines/templates/stages/archetype-sdk-client.yml + parameters: + ServiceDirectory: voicelive + TestProxy: true + BuildDocs: true + TestTimeoutInMinutes: 60 + Artifacts: + - name: azure-ai-voicelive + safeName: azureaivoicelive diff --git a/sdk/voicelive/tests.yml b/sdk/voicelive/tests.yml new file mode 100644 index 000000000000..f9b6980b9e80 --- /dev/null +++ b/sdk/voicelive/tests.yml @@ -0,0 +1,7 @@ +trigger: none + +# NOTE: Service live tests are NOT enabled. This file only enables the analyze stage currently. +extends: + template: /eng/pipelines/templates/stages/python-analyze-weekly-standalone.yml + parameters: + ServiceDirectory: voicelive From 959e5e4f9c304681aab0f7a630810e8d1fb2ab74 Mon Sep 17 00:00:00 2001 From: Xiting Zhang Date: Wed, 18 Feb 2026 18:46:34 -0800 Subject: [PATCH 2/4] [VoiceLive] Relocate azure-ai-voicelive to its own service directory --- sdk/voicelive/azure-ai-voicelive/_metadata.json | 5 ++++- .../azure/ai/voicelive/models/_models.py | 16 ++++++++++++++-- .../test_unit_models_interim_response_foundry.py | 13 ++++++++++--- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/sdk/voicelive/azure-ai-voicelive/_metadata.json b/sdk/voicelive/azure-ai-voicelive/_metadata.json index 3c9efa4e0ce5..677ee476511a 100644 --- a/sdk/voicelive/azure-ai-voicelive/_metadata.json +++ b/sdk/voicelive/azure-ai-voicelive/_metadata.json @@ -1,3 +1,6 @@ { - "apiVersion": "2026-01-01-preview" + "apiVersion": "2026-01-01-preview", + "apiVersions": { + "VoiceLive": "2026-01-01-preview" + } } \ No newline at end of file diff --git a/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/_models.py b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/_models.py index daf4c2460179..2f7200c86799 100644 --- a/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/_models.py +++ b/sdk/voicelive/azure-ai-voicelive/azure/ai/voicelive/models/_models.py @@ -2722,22 +2722,34 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: class RequestAudioContentPart(ContentPart, discriminator="input_audio"): - """An audio content part for a request. + """An audio content part for a request. This is supported only by realtime models (e.g., + gpt-realtime). For text-based models, use ``input_text`` instead. :ivar type: Required. INPUT_AUDIO. :vartype type: str or ~azure.ai.voicelive.models.INPUT_AUDIO - :ivar transcript: + :ivar audio: Base64-encoded audio bytes, these will be parsed as the format specified in the + session input audio type configuration. This defaults to PCM 16-bit 24kHz mono if not + specified. Required. + :vartype audio: str + :ivar transcript: Optional transcript of the audio content. This is not sent to the model, but + will be attached to the message item for reference. :vartype transcript: str """ type: Literal[ContentPartType.INPUT_AUDIO] = rest_discriminator(name="type", visibility=["read", "create", "update", "delete", "query"]) # type: ignore """Required. INPUT_AUDIO.""" + audio: str = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Base64-encoded audio bytes, these will be parsed as the format specified in the session input + audio type configuration. This defaults to PCM 16-bit 24kHz mono if not specified. Required.""" transcript: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Optional transcript of the audio content. This is not sent to the model, but will be attached + to the message item for reference.""" @overload def __init__( self, *, + audio: str, transcript: Optional[str] = None, ) -> None: ... diff --git a/sdk/voicelive/azure-ai-voicelive/tests/test_unit_models_interim_response_foundry.py b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_models_interim_response_foundry.py index b7435818caa7..e90bf34bb26d 100644 --- a/sdk/voicelive/azure-ai-voicelive/tests/test_unit_models_interim_response_foundry.py +++ b/sdk/voicelive/azure-ai-voicelive/tests/test_unit_models_interim_response_foundry.py @@ -52,7 +52,9 @@ def test_static_interim_response_with_texts(self): def test_static_interim_response_with_triggers(self): """Test StaticInterimResponseConfig with triggers.""" config = StaticInterimResponseConfig( - triggers=[InterimResponseTrigger.LATENCY, InterimResponseTrigger.TOOL], latency_threshold_ms=2000, texts=["Please wait..."] + triggers=[InterimResponseTrigger.LATENCY, InterimResponseTrigger.TOOL], + latency_threshold_ms=2000, + texts=["Please wait..."], ) assert config.type == InterimResponseConfigType.STATIC_INTERIM_RESPONSE @@ -251,7 +253,9 @@ class TestIntegrationScenarios: def test_session_with_interim_response_and_reasoning(self): """Test complete session with interim response config and reasoning effort.""" - interim = LlmInterimResponseConfig(triggers=[InterimResponseTrigger.LATENCY, InterimResponseTrigger.TOOL], model="gpt-4o-mini") + interim = LlmInterimResponseConfig( + triggers=[InterimResponseTrigger.LATENCY, InterimResponseTrigger.TOOL], model="gpt-4o-mini" + ) session = RequestSession( model="gpt-4o-realtime-preview", reasoning_effort=ReasoningEffort.MEDIUM, @@ -292,7 +296,10 @@ def test_static_interim_response_serialization(self): def test_llm_interim_response_serialization(self): """Test LlmInterimResponseConfig serialization.""" config = LlmInterimResponseConfig( - triggers=[InterimResponseTrigger.TOOL], model="gpt-4o-mini", instructions="Be brief", max_completion_tokens=50 + triggers=[InterimResponseTrigger.TOOL], + model="gpt-4o-mini", + instructions="Be brief", + max_completion_tokens=50, ) data = dict(config) From d10aa43e9e355af33da0ec12454ffd641bda757d Mon Sep 17 00:00:00 2001 From: Xiting Zhang Date: Wed, 18 Feb 2026 19:22:29 -0800 Subject: [PATCH 3/4] update code owner path --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b9234ff43801..9ed94b886de6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -399,7 +399,7 @@ # ServiceLabel: %Service Attention %Voice Live # PRLabel: %Voice Live -/sdk/ai/azure-ai-voicelive/ @amber-yujueWang @emilyjiji @pankopon @rhurey @xitzhang +/sdk/voicelive/ @amber-yujueWang @emilyjiji @pankopon @rhurey @xitzhang # ServiceLabel: %AAD %Service Attention # ServiceOwners: @adamedx From e2d232c42effe04fbc5dff416f6a32e6e476deed Mon Sep 17 00:00:00 2001 From: Ryan Hurey Date: Fri, 20 Feb 2026 14:21:41 -0800 Subject: [PATCH 4/4] Update .github/CODEOWNERS Co-authored-by: Daniel Jurek --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9ed94b886de6..57dc59a14c86 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -399,7 +399,7 @@ # ServiceLabel: %Service Attention %Voice Live # PRLabel: %Voice Live -/sdk/voicelive/ @amber-yujueWang @emilyjiji @pankopon @rhurey @xitzhang +/sdk/voicelive/ @amber-yujueWang @emilyjiji @pankopon @rhurey @xitzhang # ServiceLabel: %AAD %Service Attention # ServiceOwners: @adamedx