Поделиться через


Голосовая активация

Примечание.

Этот раздел относится главным образом к нашим пользовательским интерфейсам, которые в настоящее время предоставляются в Windows 10 (версия 1909 и более ранние версии) Дополнительные сведения см. в разделе "Окончание поддержки Кортана в Windows и Teams".

Кортана, впервые в конференции разработчиков Microsoft BUILD в 2013 году была показана личная технология помощник. Платформа речи Windows используется для управления всеми возможностями речи в Windows 10, такими как Кортана и диктовка. Активация голосовой связи — это функция, которая позволяет пользователям вызывать подсистему распознавания речи из различных состояний питания устройства, сказав определенную фразу — "Эй Кортана". Чтобы создать оборудование, поддерживающее технологию активации голосовой связи, просмотрите сведения в этом разделе.

Примечание.

Реализация голосовой активации является значительным проектом и является задачей, выполненной поставщиками SoC. Изготовители оборудования могут обратиться к поставщику SoC для получения сведений о реализации активации голосовой связи SoC.

Кортана взаимодействие с конечным пользователем

Чтобы понять возможности взаимодействия с голосовой связью, доступные в Windows, ознакомьтесь с этими разделами.

Раздел Описание
Что такое Кортана? Предоставляет и обзор и направление использования для Кортана

Общие сведения о активации голосовой связи "Эй Кортана" и "Узнайте, как мой голос"

Эй Кортана" Активация голосовой связи

Функция "Эй Кортана" Активация голосовой связи (VA) позволяет пользователям быстро взаимодействовать с Кортана взаимодействие вне активного контекста (т. е. то, что сейчас на экране) с помощью голоса. Пользователи часто хотят мгновенно получить доступ к интерфейсу без необходимости физически взаимодействовать с устройством. Для телефонных пользователей это может быть связано с вождением в машине и их вниманием и руками, участвующими в работе транспортного средства. Для пользователя Xbox это может быть связано с тем, чтобы не найти и подключить контроллер. Для пользователей пк это может быть связано с быстрым доступом к интерфейсу без необходимости выполнять несколько действий мыши, касания и /или клавиатуры, например компьютера на кухне.

Активация голосовой связи всегда прослушивает входные данные речи с помощью предопределенных ключевых фраз или фраз активации. Ключевые фразы могут быть произношены сами по себе ("Эй Кортана") в качестве поэтапной команды или следовать действию речи, например "Эй Кортана, где моя следующая встреча?", команда с цепочкой.

Термин "Обнаружение ключевых слов" описывает обнаружение ключевое слово по оборудованию или программному обеспечению.

Активация ключевых слов возникает только в том случае, когда говорится только Кортана ключевое слово, Кортана запускает и воспроизводит звук EarCon, чтобы указать, что он вошел в режим прослушивания.

Команда, связанная с цепочкой, описывает возможность немедленного выполнения команды после ключевое слово (например, "Эй Кортана, звонок Джон") и Кортана начать (если еще не запущено) и следовать команде (запуск телефонного звонка с Джоном).

На этой схеме показана цепочка и ключевое слово только активация.

Схема, показывающая разницу между цепочкой и ключевое слово активацией только с помощью буфера звука и последовательности времени.

Корпорация Майкрософт предоставляет ключевое слово по умолчанию ключевое слово точечный объект (программное ключевое слово пятно), который используется для обеспечения качества обнаружения аппаратных ключевое слово и предоставления возможности Кортана в случаях, когда обнаружение оборудования ключевое слово отсутствует или недоступно.

Функция "Learn my voice" (Изучение голоса)

Функция "Learn my voice" позволяет пользователю обучать Кортана распознавать свой уникальный голос. Это достигается пользователем, выбрав "Узнать, как я говорю "Эй Кортана" на экране параметров Кортана. Затем пользователь повторяет шесть тщательно выбранных фраз, которые обеспечивают достаточное разнообразие фонетических шаблонов, чтобы определить уникальные атрибуты голоса пользователей.

Снимок экрана: параметры Кортана рабочего стола для аппаратного ключевое слово споттер и пробуждения по голосовой функции.

При связывании голосовой активации с "Learn my voice" два алгоритма будут работать вместе, чтобы уменьшить ложные активации. Это особенно полезно для сценария комнаты собраний, где один человек говорит "Эй Кортана" в комнате, полной устройств. Эта функция доступна только для Windows 10 версии 1903 и более ранних версий.

Активация голоса активируется ключевое слово точечным методом (KWS), который реагирует, если обнаружена ключевая фраза. Если KWS требует пробуждения устройства от низкой мощности, решение называется пробуждением по голосовой связи (WoV). Дополнительные сведения см. в разделе "Пробуждение по голосовой связи".

Глоссарий терминов

В этом глоссарии приведены термины, связанные с активацией голосовой связи.

Термин Пример/определение
Этапная команда Пример: Эй Кортана <пауза, подождите ухо-уха>, что такое погода? Иногда это называется "Двухфакторная команда" или "Только ключевое слово"
Команда с цепочкой Пример: Эй Кортана что такое погода? Иногда это называется командой one-shot.
Голосовая активация Сценарий предоставления ключевое слово обнаружения предопределенной ключевой фразы активации. Например, "Эй Кортана" — это сценарий активации Голосовой связи Майкрософт.
Wov Пробуждение по голосовой связи — технология, которая позволяет активации голосовой связи с экрана отключать, снизить состояние питания до экрана в полном состоянии питания.
WoV из современного резервного режима Пробуждение на голосовой связи с экрана с современного режима ожидания (S0ix) на экран с полным состоянием питания (S0).
современный ждущий режим. Инфраструктура простоя Windows Low Power — преемник Подключение резервного копирования (CS) в Windows 10. Первое состояние современного резервного режима — при отключении экрана. Самое глубокое состояние сна — когда в DRIPS/устойчивость. Дополнительные сведения см. в статье "Современный резервный режим"
KWS Точечный элемент ключевого слова — алгоритм, который обеспечивает обнаружение "Эй Кортана"
SW KWS Программное обеспечение ключевое слово пятно — реализация KWS, которая выполняется на узле (ЦП). Для "Hey Кортана", SW KWS входит в состав Windows.
HW KWS Аппаратно-выгруженный ключевое слово точечный объект — реализация KWS, которая выполняется вне нагрузки на оборудование.
Буфер с ускорением Циклический буфер, используемый для хранения данных PCM, которые могут "ускориться" в случае обнаружения KWS, чтобы все звуки, активировающие обнаружение KWS, включены.
Адаптер OEM для детектора ключевых слов Схим уровня драйвера, который позволяет HW с поддержкой WoV взаимодействовать с Windows и стеком Кортана.
Модель Файл данных акустической модели, используемый алгоритмом KWS. Файл данных является статическим. Модели локализованы по одному на языковой стандарт.

Интеграция точечных элементов аппаратного ключевого слова

Чтобы реализовать аппаратный ключевое слово точечный модуль (HW KWS), поставщики SoC должны выполнить следующие задачи.

  • Создайте пользовательский детектор ключевое слово на основе примера SYSVAD, описанного далее в этом разделе. Эти методы будут реализованы в com-библиотеке DLL, описанной в интерфейсе адаптера OEM для детектора ключевых слов.
  • Реализуйте усовершенствования WAVE RT, описанные в разделе "Усовершенствования WAVERT".
  • Предоставьте записи INF-файла для описания любых пользовательских API, используемых для обнаружения ключевое слово.
  • Ознакомьтесь с рекомендациями по оборудованию и тестом в рекомендации по аудиоустройствам. В этом разделе приведены рекомендации и рекомендации по проектированию и разработке устройств ввода звука, предназначенных для использования с платформой распознавания речи Майкрософт.
  • Поддержка этапных и цепочек команд.
  • Поддержка "Эй Кортана" для каждого поддерживаемого языкового стандарта Кортана.
  • API -интерфейсы (объекты обработки звука) должны обеспечить следующие эффекты:
    • AD
    • AGC
    • NS
  • Эффекты для режима обработки речи должны быть сообщены MFX APO.
  • APO может выполнять преобразование формата в виде MFX.
  • APO должен выводить следующий формат:
    • 16 кГц, mono, FLOAT.
  • При необходимости создайте любые пользовательские API для улучшения процесса записи звука. Дополнительные сведения см. в разделе "Объекты обработки звука Windows".

Требования К woV с аппаратной разгрузкой ключевое слово (HW KWS) WoV

  • HW KWS WoV поддерживается во время рабочего состояния S0 и состояния сна S0, также известного как современный резервный.
  • HW KWS WoV не поддерживается из S3.

Требования AEC для HW KWS

  • Для Windows версии 1709

    • Для поддержки HW KWS WoV для состояния сна S0 (современный резервный) AEC не требуется.
    • HW KWS WoV для рабочего состояния S0 не поддерживается в Windows версии 1709.
  • Для Windows версии 1803

    • Поддерживается HW KWS WoV для рабочего состояния S0.
    • Чтобы включить HW KWS WoV для рабочего состояния S0, APO должен поддерживать AEC.

Обзор примера кода

Существует пример кода для звукового драйвера, реализующего активацию голосовой связи на GitHub в рамках примера виртуального звукового адаптера SYSVAD. Рекомендуется использовать этот код в качестве отправной точки. Код доступен в этом расположении.

https://github.com/Microsoft/Windows-driver-samples/tree/main/audio/sysvad/

Дополнительные сведения о примере звукового драйвера SYSVAD см. в разделе "Примеры звуковых драйверов".

Распознавание ключевых слов Сведения о системе

Поддержка звукового стека голосовой активации

Внешние интерфейсы стека звука для включения активации голосовой связи служат конвейером связи для платформы речи и звуковых драйверов. Внешние интерфейсы делятся на три части.

  • Интерфейс драйвера драйверов устройств для детектора ключевых слов (DDI). Интерфейс драйвера устройств детектора ключевых слов отвечает за настройку и вооружение ключевого слова HW (KWS). Он также используется драйвером для уведомления системы события обнаружения.
  • DLL адаптера OEM для детектора ключевых слов. Эта библиотека DLL реализует COM-интерфейс для адаптации конкретных непрозрачных данных драйвера для использования ОС для ключевое слово обнаружения.
  • Улучшения потоковой передачи WaveRT. Улучшения позволяют звуковому драйверу вспыхивать поток буферизованного аудиоданных из обнаружения ключевое слово.

Свойства конечной точки аудио

Построение графа аудиоконечной точки обычно происходит. Граф готов обрабатывать быстрее, чем запись в режиме реального времени. Метки времени для захваченных буферов остаются верными. В частности, метки времени будут правильно отражать данные, которые были записаны в прошлом и буферизованном, и теперь "всплеск".

Теория обхода аудиопотока Bluetooth

Драйвер предоставляет фильтр KS для устройства записи как обычно. Этот фильтр поддерживает несколько свойств KS и событие KS для настройки, включения и сигнала события обнаружения. Фильтр также включает дополнительную фабрику закреплений, определяемую как ключевое слово запятой (KWS). Этот пин-код используется для потоковой передачи звука из ключевое слово точечный элемент.

Существуют следующие свойства.

  • Поддерживаемые типы ключевое слово — KSPROPERTY_SOUNDDETECTOR_PATTERNS. Это свойство устанавливается операционной системой для настройки обнаруженных ключевое слово.
  • Список графических идентификаторов ключевое слово шаблонов — KSPROPERTY_SOUNDDETECTOR_SUPPORTEDPATTERNS. Это свойство используется для получения списка идентификаторов GUID, определяющих типы поддерживаемых шаблонов.
  • Вооруженные - KSPROPERTY_SOUNDDETECTOR_ARMED. Это свойство чтения и записи — это просто логическое состояние, указывающее, вооружен ли детектор. ОС задает это для привлечения детектора ключевое слово. ОС может очистить это, чтобы отключиться. Драйвер автоматически очищает это при установке шаблонов ключевое слово, а также после обнаружения ключевое слово. (ОС должна перезапуститься.)
  • Результат сопоставления — KSPROPERTY_SOUNDDETECTOR_MATCHRESULT. Это свойство чтения содержит данные результатов после обнаружения.

Событие, которое запускается при обнаружении ключевое слово, является событием KSEVENT_SOUNDDETECTOR_MATCHDETECTED.

Последовательность операций

Запуск системы

  1. ОС считывает поддерживаемые типы ключевое слово, чтобы проверить наличие ключевое слово в этом формате.
  2. ОС регистрирует событие изменения состояния детектора.
  3. ОС задает шаблоны ключевое слово.
  4. ОС вооружит детектор.

Получение события KS

  1. Водитель разоружает детектор.
  2. ОС считывает состояние детектора ключевое слово, анализирует возвращенные данные и определяет, какой шаблон был обнаружен.
  3. ОС перенаружит детектор.

Внутренняя операция драйвера и оборудования

В то время как детектор вооружен, оборудование может быть непрерывно захватывает и буферизирует звуковые данные в небольшом буфере FIFO. (Размер этого буфера FIFO определяется требованиями за пределами этого документа, но обычно может составлять сотни миллисекунд до нескольких секунд.) Алгоритм обнаружения работает с потоковой передачей данных через этот буфер. Проектирование драйвера и оборудования заключается в том, что во время вооруженных действий между драйвером и оборудованием нет прерываний процессоров "приложения", пока не будет обнаружена ключевое слово. Это позволяет системе достичь более низкого состояния питания, если нет других действий.

Когда оборудование обнаруживает ключевое слово, оно создает прерывание. Ожидая, пока драйвер будет обслуживать прерывание, оборудование продолжает записывать звук в буфер, обеспечивая отсутствие данных после потери ключевое слово в пределах буферизации.

Метки времени ключевых слов

После обнаружения ключевое слово все решения голосовой активации должны буферивировать все речевой ключевое слово, включая 250 мс до начала ключевое слово. Звуковой драйвер должен предоставить метки времени, определяющие начало и конец ключевой фразы в потоке.

Для поддержки меток времени начала и окончания ключевое слово программное обеспечение DSP может потребоваться внутренней метки времени на основе часов DSP. После обнаружения ключевое слово программное обеспечение DSP взаимодействует с драйвером для подготовки события KS. Драйвер и программное обеспечение DSP должны сопоставить метки времени DSP со значением счетчика производительности Windows. Этот метод предназначен для проектирования оборудования. Одним из возможных решений является чтение текущего счетчика производительности, запрос текущей метки времени DSP, повторное чтение текущего счетчика производительности, а затем оценка корреляции между счетчиком производительности и временем DSP. Затем с учетом корреляции драйвер может сопоставить метки времени ключевое слово DSP с метками времени счетчика производительности Windows.

Интерфейс адаптера OEM для детектора ключевых слов

OEM предоставляет реализацию COM-объекта, которая выступает в качестве посредника между ОС и драйвером, помогая вычислить или проанализировать непрозрачные данные, записанные и считываемые в звуковой драйвер через KSPROPERTY_SOUNDDETECTOR_PATTERNS и KSPROPERTY_SOUNDDETECTOR_MATCHRESULT.

CLSID объекта COM — это идентификатор GUID шаблона детектора, возвращаемый KSPROPERTY_SOUNDDETECTOR_SUPPORTEDPATTERNS. ОС вызывает CoCreateInstance, передав guid типа шаблона, чтобы создать экземпляр соответствующего COM-объекта, совместимого с типом шаблона ключевое слово и вызывает методы в интерфейсе IKeywordDetectorOemAdapter объекта.

Требования к модели потоков COM

Реализация OEM может выбрать любую из моделей потоков COM.

IKeywordDetectorOemAdapter

Структура интерфейса пытается сохранить без отслеживания состояния реализации объекта. Другими словами, реализация не должна хранить состояние между вызовами методов. На самом деле, внутренние классы C++, скорее всего, не нуждаются ни в каких переменных-членах, кроме тех, которые требуются для реализации COM-объекта в целом.

Методы

Реализуйте следующие методы.

KEYWORDID

Перечисление KEYWORDID определяет текст или функцию фразы ключевое слово, а также используется в адаптерах биометрических служб Windows. Дополнительные сведения см. в разделе "Общие сведения о биометрических платформах " Основные компоненты платформы"

typedef enum  {
  KwInvalid              = 0,
  KwHeyCortana           = 1,
  KwSelect               = 2
} KEYWORDID;

KEYWORDSELECTOR

Структуру KEYWORDSELECTOR — это набор идентификаторов, которые однозначно выбирают конкретный ключевое слово и язык.

typedef struct
{
    KEYWORDID KeywordId;
    LANGID LangId;
} KEYWORDSELECTOR;

Обработка данных модели

Статическую независимую модель пользователя. Библиотека DLL OEM обычно включает некоторые статические данные независимой от пользователя модели либо встроенные в библиотеку DLL, либо в отдельный файл данных, включенный в библиотеку DLL. Набор поддерживаемых идентификаторов ключевое слово, возвращаемых подпрограммой GetCapabilities, будет зависеть от этих данных. Например, если список поддерживаемых идентификаторов ключевое слово, возвращаемых GetCapabilities, включает KwHey Кортана, данные статической независимой от пользователя модели будут включать данные для "Hey Кортана" (или его перевод) для всех поддерживаемых языков.

Динамическая зависимый от пользователя модель — IStream предоставляет модель хранения случайного доступа. ОС передает указатель интерфейса IStream на многие методы интерфейса IKeywordDetectorOemAdapter. ОС поддерживает реализацию IStream с соответствующим хранилищем до 1 МБ данных.

Содержимое и структура данных в этом хранилище определяется изготовителем оборудования. Предназначено для постоянного хранения данных зависимой от пользователя модели, вычисляемых или полученных библиотекой DLL OEM.

ОС может вызывать методы интерфейса с пустым IStream, особенно если пользователь никогда не обучил ключевое слово. ОС создает отдельное хранилище IStream для каждого пользователя. Другими словами, заданный IStream сохраняет данные модели для одного и только одного пользователя.

Разработчик DLL OEM решает, как управлять данными, зависящими от пользователя и зависимыми от пользователя. Однако он никогда не будет хранить данные пользователей в любом месте за пределами IStream. Один из возможных проектов DLL OEM внутренне переключался между доступом к IStream и статическим независимым данным пользователей в зависимости от параметров текущего метода. Альтернативный дизайн может проверка IStream в начале каждого вызова метода и добавить статические пользовательские независимые данные в IStream, если он еще не присутствует, что позволяет остальным методу получить доступ только к IStream для всех данных модели.

Обучение и обработка звука операций

Как описано ранее, поток обучения пользовательского интерфейса приводит к полному фонетическому формату предложений, доступных в звуковом потоке. Каждое предложение передается в IKeywordDetectorOemAdapter::VerifyUserKeyword, чтобы убедиться, что он содержит ожидаемый ключевое слово и имеет приемлемое качество. После сбора и проверки всех предложений с помощью пользовательского интерфейса все они передаются в одном вызове IKeywordDetectorOemAdapter::ComputeAndAddUserModelData.

Звук обрабатывается уникальным способом обучения голосовой активации. В следующей таблице перечислены различия между обучением голосовой активации и обычным использованием распознавания речи.

|

Обучение голосовой связи Распознавание голоса
Режим Необработанные Необработанные или речевые функции
Закрепление Обычная KWS
Формат звука 32-разрядная плавающая поплавка (Тип = аудио, подтип = IEEE_FLOAT, частота выборки = 16 кГц, биты = 32) Управление стеком звука ОС
Микрофон Микрофон 0 Все микрофоны в массиве или моно

Обзор системы распознавания ключевых слов

На этой схеме представлен обзор системы распознавания ключевое слово.

Схема системы распознавания ключевое слово, включая Кортана, среду выполнения речи и компоненты диспетчера активации голосовой связи.

Схемы последовательности распознавания ключевых слов

На этих схемах модуль среды выполнения речи отображается как "платформа распознавания речи". Как упоминание ранее, платформа речи Windows используется для управления всеми возможностями речи в Windows 10, такими как Кортана и диктовка.

Во время запуска возможности собираются с помощью IKeywordDetectorOemAdapter::GetCapabilities.

Схема последовательности распознавания ключевое слово во время запуска, показывающая обучающий интерфейс, платформу распознавания речи и детектор oem ключевое слово.

Позже, когда пользователь выбирает "Learn my voice", вызывается поток обучения.

Схема последовательности распознавания ключевое слово во время процесса

На этой схеме описывается процесс армирования для обнаружения ключевое слово.

Схема последовательности распознавания ключевое слово во время армирования для обнаружения ключевое слово, показывающая платформу речи, детектор OEM ключевое слово и детектор аудиодрайва.

Усовершенствования WAVERT

Минипортные интерфейсы определены для реализации драйверами минипорта WaveRT. Эти интерфейсы предоставляют методы для упрощения звукового драйвера, повышения производительности и надежности звукового конвейера ОС или поддержки новых сценариев. Новое свойство интерфейса устройства PnP определяется, что позволяет драйверу предоставлять статические выражения ограничений размера буфера операционной системе.

Размеры буфера

Драйвер работает под различными ограничениями при перемещении звуковых данных между ОС, драйвером и оборудованием. Эти ограничения могут быть вызваны физическим аппаратным транспортом, который перемещает данные между памятью и оборудованием, а также (или) из-за модулей обработки сигналов в аппаратном или связанном DSP.

Решения HW-KWS должны поддерживать по крайней мере 100 мс и до 200 мс.

Драйвер выражает ограничения размера буфера, задав свойство устройства DEVPKEY_KsAudio_PacketSize_Constraints в интерфейсе устройства KSCATEGORY_AUDIO PnP фильтра KS с пин-кодами потоковой передачи KS. Это свойство должно оставаться допустимым и стабильным во время включения интерфейса фильтра KS. ОС может читать это значение в любое время, не открывая дескриптор драйверу и вызывая драйвер.

DEVPKEY_KsAudio_PacketSize_Constraints

Значение свойства DEVPKEY_KsAudio_PacketSize_Constraints содержит структуру KSAUDIO_PACKETSIZE_CONSTRAINTS , описывающую ограничения физического оборудования (т. е. из-за механики передачи данных из буфера WaveRT в звуковое оборудование). Структура включает массив из 0 или более KSAUDIO_PACKETSIZE_PROCESSINGMODE_CONSTRAINT структур, описывающих ограничения, относящиеся к любым режимам обработки сигналов. Драйвер задает это свойство перед вызовом PcRegisterSubdevice или в противном случае включает интерфейс фильтра KS для своих пин-кодов потоковой передачи.

IMiniportWaveRTInputStream

Драйвер реализует этот интерфейс для улучшения координации потоков аудиоданных от драйвера к ОС. Если этот интерфейс доступен в потоке записи, ОС использует методы этого интерфейса для доступа к данным в буфере WaveRT. Дополнительные сведения см. в разделе IMiniportWaveRTInputStream::GetReadPacket

IMiniportWaveRTOutputStream

Минипорт WaveRT при необходимости реализует этот интерфейс, чтобы рекомендовать ход записи из ОС и возвращать точное положение потока. Дополнительные сведения см. в разделе IMiniportWaveRTOutputStream::SetWritePacket, IMiniportWaveRTOutputStreamStream::GetOutputStreamPresentationPosition и IMiniportWaveRTOutputStream::GetPacketCount.

Метки времени счетчика производительности

Некоторые подпрограммы драйверов возвращают метки времени счетчика производительности Windows, отражающие время захвата или представления примеров устройством.

На устройствах, имеющих сложные конвейеры DSP и обработку сигналов, вычисление точной метки времени может быть сложной задачей и должно выполняться тщательно. Метки времени не должны просто отражать время, в течение которого образцы были переданы в ОС или из ос в DSP.

  • В рамках DSP отслеживайте примеры меток времени с помощью некоторых внутренних часов стенных часов DSP.
  • Между драйвером и DSP вычислите корреляцию между счетчиком производительности Windows и часов DSP. Процедуры для этого могут отличаться от очень простых (но менее точных) до довольно сложных или новых (но более точных).
  • Фактор любых постоянных задержек из-за алгоритмов обработки сигналов или конвейера или аппаратного транспорта, если эти задержки не учитываются в противном случае.

Операция с ускорением чтения

В этом разделе описывается взаимодействие ОС и драйвера для операций чтения с ускорением. Ускорение чтения может произойти вне сценария активации голоса, пока драйвер поддерживает модель потоковой передачи На основе пакетов WaveRT, включая функцию IMiniportWaveRTInputStream::GetReadPacket.

Рассматриваются два сценария чтения с ускорением. В одном сценарии, если минипорт поддерживает закрепление с категорией закреплений KSNODETYPE_AUDIO_KEYWORDDETECTOR, драйвер начнет записывать и внутренне буферизируя данные при обнаружении ключевое слово. В другом сценарии драйвер может дополнительно буферизовывать данные за пределами буфера WaveRT, если ос не считывает данные достаточно быстро, вызвав IMiniportWaveRTInputStream::GetReadPacket.

Для ускорения данных, которые были записаны до перехода на KSSTATE_RUN, драйвер должен хранить точные данные метки времени вместе с буферизованной записью данных. Метки времени определяют моментальный экземпляр захваченных выборок.

  1. После перехода потока на KSSTATE_RUN драйвер немедленно задает событие уведомления буфера, так как у него уже есть данные.

  2. В этом событии ОС вызывает GetReadPacket(), чтобы получить сведения о доступных данных.

    a. Драйвер возвращает номер пакета допустимых захваченных данных (0 для первого пакета после перехода с KSSTATE_STOP на KSSTATE_RUN), от которого ОС может наследовать позицию пакета в буфере WaveRT, а также положение пакета относительно начала потока.

    b. Драйвер также возвращает значение счетчика производительности, соответствующее моменту выборки первого примера в пакете. Обратите внимание, что это значение счетчика производительности может быть относительно старым, в зависимости от того, сколько данных записи было буферировано в аппаратном или драйвере (за пределами буфера WaveRT).

    c. Если есть более непрочитанные буферизованные данные, доступные драйверу: i. Немедленно передает эти данные в доступное пространство буфера WaveRT (т. е. пространство, не используемое пакетом, возвращаемым из GetReadPacket), возвращает значение true для MoreData и задает событие уведомления буфера перед возвратом из этой процедуры. Или, ii. Оборудование программ для ускорения следующего пакета в доступное пространство буфера WaveRT, возвращает значение false для MoreData, а затем задает событие буфера после завершения передачи.

  3. ОС считывает данные из буфера WaveRT с помощью сведений, возвращаемых GetReadPacket().

  4. ОС ожидает следующего события уведомления буфера. Ожидание может завершиться немедленно, если драйвер устанавливает уведомление буфера на шаге (2c).

  5. Если драйвер не сразу задал событие на шаге (2c), драйвер устанавливает событие после передачи более захваченных данных в буфер WaveRT и делает его доступным для чтения ОС.

  6. Перейдите (2). Для KSNODETYPE_AUDIO_KEYWORDDETECTOR ключевое слово закреплений детектора драйверы должны выделить достаточно внутреннего буферизации всплеска для по крайней мере 5000 мс звуковых данных. Если ОС не удается создать поток на закреплении перед переполнением буфера, драйвер может завершить внутреннее буферизацию и освободить связанные ресурсы.

Пробуждение по голосовой связи

Пробуждение по голосовой связи (WoV) позволяет пользователю активировать и запрашивать подсистему распознавания речи с экрана от экрана, нижнего состояния питания на экран, полное состояние питания, сказав определенное ключевое слово, например "Эй Кортана".

Эта функция позволяет устройству всегда прослушивать голос пользователя, пока устройство находится в состоянии низкой мощности, в том числе при отключении экрана и простое устройство. Это делается с помощью режима прослушивания, который ниже мощности при сравнении с гораздо более высоким потреблением энергии, наблюдаемой во время обычной записи микрофона. Распознавание речи с низкой мощностью позволяет пользователю просто сказать предварительно определенную ключевую фразу, например "Эй Кортана", за которой следует цепная фраза речи, например "когда моя следующая встреча", чтобы вызвать речь без рук. Это будет работать независимо от того, используется ли устройство или неактивно с выключенным экраном.

Звуковой стек отвечает за обмен данными о пробуждении (идентификатор говорящего, триггер ключевое слово, уровень достоверности), а также уведомляет заинтересованных клиентов об обнаружении ключевое слово.

Проверка в современных резервных системах

WoV из состояния простоя системы можно проверить на современных резервных системах с помощью современного резервного пробуждения на голосовом базовом тесте на источнике питания AC и современном резервном пробуждении на голосовом базовом тесте на источнике питания dc-power в HLK. Эти тесты проверка, что система имеет аппаратное ключевое слово точечный модуль (HW-KWS), может войти в состояние глубокой среды выполнения idle Platform (DRIPS) и может проснуться от современной резервной команды на голосовой команде с задержкой возобновления системы меньше или равно одной секунде.