IKeywordDetectorOemAdapter::P arseDetectionResultData 方法(keyworddetectoroemadapter.h)

ParseDetectionResultData 方法由作系统在处理关键字检测事件以及从 KSPROPERTY_SOUNDDETECTOR_MATCHRESULT检索结果数据之后调用。 作系统将特定于 OEM 的匹配结果数据传递给此方法,以获取关键字检测的结果。 OEMDLL 处理结果并返回有关匹配关键字、与匹配关键字关联的语言以及匹配的用户(如果有) 的信息。

语法

HRESULT ParseDetectionResultData(
  [in]  IStream                     *UserModelData,
  [in]  SOUNDDETECTOR_PATTERNHEADER *Result,
  [out] KEYWORDID                   *KeywordId,
  [out] LANGID                      *LangId,
  [out] BOOL                        *pIsUserMatch,
  [out] ULONG64                     *KeywordStartPerformanceCounterValue,
  [out] ULONG64                     *KeywordEndPerformanceCounterValue
);

参数

[in] UserModelData

指向 IStream 的指针 绑定到武装模式的模型数据。

[in] Result

指向 DDI 中 SOUNDDETECTOR_PATTERNHEADER 的指针。

[out] KeywordId

标识关键字函数。 驱动程序可能返回 0 以指示不匹配。

[out] LangId

标识语言。

[out] pIsUserMatch

指示用户是否匹配。

[out] KeywordStartPerformanceCounterValue

(可选)根据 Windows 性能计数器返回关键字的开始时间。 如果这不可用,OEMDLL 应返回 0。

[out] KeywordEndPerformanceCounterValue

(可选)根据 Windows 性能计数器返回关键字的结束时间。 如果这不可用,OEMDLL 应返回 0。

返回值

此方法可以返回其中一个值。

返回值 描述
S_OK
函数已成功退出。
E_POINTER
ModelData 指针 NULL
E_INVALIDARG
KeywordIdLangId 参数无效。
HRESULT_FROM_WIN32(ERROR_GEN_FAILURE)
处理无法完成。
E_HW_RESET
由于内部故障,硬件重置。

言论

如果驱动程序在其关键字检测器引脚的突发关键字/命令流中包含语音关键字的任何部分,则驱动程序必须返回 KeywordEndTime的有效值。 否则,驱动程序可以选择返回 0。

如果驱动程序返回 KeywordStartTimeKeywordEndTime,则返回的值必须与驱动程序的 IMiniportWaveRTInputStream::GetReadPacket 例程返回的时间戳一致。

无论驱动程序是否在突发关键字/命令流中包含语音关键字的任何部分,驱动程序都可以返回 KeywordStartTimeKeywordEndTime 的有效值。

如果调用方收到 E_HW_RESET,则硬件未检测到关键字,并且状态已丢失。 需要重新臂才能返回到监视状态。

要求

要求 价值
最低支持的客户端 Windows 10
支持的最低服务器 Windows Server 2016
目标平台 窗户
标头 keyworddetectoroemadapter.h

另请参阅

CoTaskMemAlloc

CoTaskMemFree

IKeywordDetectorOemAdapter

IMiniportWaveRTInputStream::GetReadPacket

KSPROPERTY_SOUNDDETECTOR_MATCHRESULT

SOUNDDETECTOR_PATTERNHEADER