- Дата публикации
Как проверить голосового ассистента до релиза: Microsoft выложила VoiceLive Evaluation Harness
Что нового
Microsoft выложила на GitHub набор инструментов VoiceLive Evaluation для проверки качества голосовых ассистентов на базе Azure VoiceLive (Speech-to-Speech-to-Text).
Главные элементы:
- evaluation_agent/ — облачный агент для автоматизации оценки VoiceLive:
- 23 HTTP‑эндпоинта на Azure Functions
- отдельный Container App для долгой обработки аудио
- интеграция с Azure AI Foundry Agent по OpenAPI
- управление датасетами, настройка сессий, запуск тестов VoiceLive (Push-to-Talk и Voice Activity Detection), запуск оценок в Foundry и анализ результатов.
- evaluation_harness/ — локальный стенд для оценки по заранее записанным аудиофайлам через VoiceLive SDK:
- режимы Push-to-Talk и Voice Activity Detection
- настройка параметров сессии: тип VAD, голос, шумоподавление, эхоподавление
- конфигурация через JSON-файлы
- выбор набора оценщиков Azure AI Foundry: дефолтные 8, все 13 или свой список
- пакетная обработка аудио
- интеграция с Azure AI Foundry для автоматической оценки
- два режима работы: прямое подключение к VoiceLive‑модели (model mode) и работа через Foundry Agent (
--agent-name).
- dataset_validator/ — CLI для проверки JSONL‑датасетов:
- проверка синтаксиса и обязательных полей
- проверка наличия аудиофайлов
- базовые метрики качества и согласованности контента.
- helper_scripts/ — скрипты для подготовки датасетов, создания агентов и очистки ресурсов в Azure AI Foundry, плюс загрузчик датасетов из HuggingFace.
Отдельный плюс: в репозитории уже есть тесты разного уровня — от юнитов до интеграции с реальной инфраструктурой.
Как это работает
Архитектура делится на два сценария — облачный и локальный.
Облачный агент: evaluation_agent/
- Azure Functions поднимают 23 эндпоинта, которые закрывают полный цикл: загрузка датасета, конфигурация сессий, запуск голосовых сессий в VoiceLive, запуск оценок в Azure AI Foundry, сбор и агрегация результатов.
- Для долгих задач (например, длинные аудиофайлы) используется Container App, которая обрабатывает аудио без таймаутов функций.
- Вся логика оценки завязана на Azure AI Foundry Agent, к которому подключены OpenAPI‑инструменты. То есть агент может сам вызывать нужные сервисы по описанию API.
Локальный стенд: evaluation_harness/
- Работает поверх VoiceLive SDK и прогоняет заранее записанные аудиофайлы через тот же стек, что и боевой ассистент.
- Поддерживает два вида взаимодействия:
- Push-to-Talk (PTT) — имитация нажатия кнопки разговора
- Voice Activity Detection (VAD) — автоматическое определение, когда пользователь говорит
- В конфиге можно задать:
- тип VAD
- используемый голос
- включение/выключение шумоподавления
- включение/выключение эхоподавления
- Конфигурация задаётся JSON‑файлами, что удобно для версионирования и A/B‑тестов.
- Оценка качества завязана на Azure AI Foundry evaluators. Можно выбрать:
- дефолтный набор из 8 оценщиков
- полный набор из 13
- свой кастомный список.
- Есть два режима подключения:
- model mode — прямой вызов развернутой VoiceLive‑модели
- agent mode — работа через Foundry Agent, который передаётся через
--agent-name.
Валидация датасетов: dataset_validator/
CLI‑утилита проверяет JSONL‑файлы с тестовыми сценариями:
- синтаксис и обязательные поля
- наличие всех аудиофайлов на диске или в хранилище
- базовые метрики качества и согласованности контента (например, чтобы описание задачи и аудио не противоречили друг другу).
Служебные скрипты: helper_scripts/
Здесь лежат утилиты для рутины вокруг оценок:
- подготовка датасетов
- создание агентов в Azure AI Foundry
- очистка ресурсов после экспериментов
- загрузчик датасетов с HuggingFace.
Что это значит для вас
Кому это реально полезно
-
Команды, которые делают голосовых ассистентов на Azure VoiceLive. Можно прогнать ассистента по реальным аудиосценариям до релиза и понять, как он справляется с:
- распознаванием намерений
- соблюдением сценария/задачи
- полнотой и корректностью ответа.
-
Разработчики, которые уже сидят в Azure AI Foundry. Инструменты сразу интегрируются с Foundry evaluators и Foundry Agent. Не нужно собирать свою инфраструктуру для оценок с нуля.
-
Качество и продукт. Можно собрать отдельный датасет для регрессии, фиксировать баги и проверять, что после обновления ассистент не стал хуже.
Для каких задач
- Регулярный регрессионный прогон голосового ассистента перед релизом.
- Сравнение разных конфигураций VoiceLive: голоса, VAD, шумоподавление, эхоподавление.
- Быстрая проверка новых сценариев: добавили новый тип диалога — сразу прогнали через harness.
- Валидация датасетов перед тем, как подключать их к пайплайну оценок.
Где инструмент не поможет
- Если вы не используете Azure VoiceLive и Azure AI Foundry, пользы почти не будет. Всё заточено под этот стек.
- Если нужен простой «записал — послушал» тест без метрик и автоматизации, этот набор избыточен.
Доступность из России
VoiceLive Evaluation завязан на Azure‑сервисы. Для работы с облачным агентом и Foundry нужны аккаунт Azure и доступ к соответствующим ресурсам. При ограничениях на доступ к Azure может понадобиться VPN и корпоративная учётка.
Место на рынке
VoiceLive Evaluation решает довольно узкую, но важную задачу: системная оценка голосовых ассистентов.
- В экосистеме Azure это прямой инструмент «из коробки» для VoiceLive и Azure AI Foundry.
- В отличие от самописных скриптов, здесь уже есть:
- 23 готовых эндпоинта для управления пайплайном
- связка с Foundry evaluators
- режимы PTT и VAD
- CLI для проверки датасетов.
Прямых численных сравнений с другими фреймворками в репозитории нет. Основное отличие — глубокая интеграция именно с VoiceLive и Azure AI Foundry, чего нет у более общих open‑source решений для оценки LLM.
Если вы уже строите голосовых агентов на Azure, это естественный выбор. Если сидите на другом стеке (например, на собственных ASR/TTS и LLM), придётся сильно адаптировать код или искать более нейтральные инструменты.
Установка
Репозиторий использует виртуальное окружение Python и отдельные зависимости для каждого подпроекта.
Базовая установка в корне:
python - m venv .venv
.venv\Scripts\Activate.ps1
python.exe - m pip install -- upgrade pip
pip install - r .\requirements.txt
Важно: у каждого подпроекта (evaluation_agent/, evaluation_harness/, dataset_validator/, helper_scripts/) свой requirements.txt. Устанавливайте зависимости из того каталога, с которым сейчас работаете.
Как запустить тесты
В репозитории уже есть готовый набор тестов.
Юнит‑тесты (без Azure‑учётки)
# Тесты конфигов и оценщиков (40 тестов)
python evaluation_harness/tests/test_config_and_evaluators.py
# Тесты формата и структуры пайплайна
python evaluation_harness/tests/test_e2e_pipeline.py
# Тесты медиаформатов и поддержки датасетов Foundry (24 теста)
python evaluation_harness/tests/test_media_dataset.py
E2E‑пайплайн (нужны Azure‑учётка и VoiceLive‑эндпоинт)
python evaluation_harness/tests/test_e2e_full_pipeline.py --mode both --skip-evaluation
Интеграционные тесты (нужна развернутая инфраструктура)
# 8 тестов интеграции медиа и Foundry
python evaluation_agent/tests/test_media_integration.py
Как участвовать в разработке
Проект открыт для вкладов через pull‑request.
- Перед принятием вклада Microsoft попросит согласиться с Contributor License Agreement (CLA). Это делается один раз для всех репозиториев, которые используют этот CLA.
- После отправки PR сработает CLA‑бот, который покажет, нужно ли вам подписывать соглашение, и даст инструкции.
- Проект использует Microsoft Open Source Code of Conduct. Вопросы по нему можно отправлять на
opencode@microsoft.com.
Правовой блок и товарные знаки
- В репозитории могут встречаться товарные знаки и логотипы Microsoft. Их использование регулируется Microsoft Trademark & Brand Guidelines.
- Любое использование логотипов и знаков Microsoft в модифицированных версиях не должно вводить в заблуждение и создавать ощущение официального спонсорства.
- Товарные знаки и логотипы третьих сторон подчиняются правилам соответствующих правообладателей.
Если вы уже строите голосового ассистента на Azure VoiceLive и хотите понимать, как он ведёт себя до релиза, VoiceLive Evaluation даёт готовый каркас для системного тестирования и метрик качества.