C# UWP中的语音识别性能

C# UWP中的语音识别性能,c#,performance,uwp,windows-store-apps,speech-recognition,C#,Performance,Uwp,Windows Store Apps,Speech Recognition,我注意到,当Windows 10 CU设备(从PC到Raspberry)未连接到任何网络时,具有本地语法文件的语音识别(例如ContinuousRecognitionSession场景)性能显著:小于10毫秒,但是当设备连接到Wi-Fi网络时,性能会下降约10倍!如果Wi-Fi网络无法接入互联网,性能将降低2倍以上 更详细地说,它扩展的时间是从SpeechRecognitor“SoundEnded”状态开始到 speechRecognizer.ContinuousRecognitionSessi

我注意到,当Windows 10 CU设备(从PC到Raspberry)未连接到任何网络时,具有本地语法文件的语音识别(例如ContinuousRecognitionSession场景)性能显著:小于10毫秒,但是当设备连接到Wi-Fi网络时,性能会下降约10倍!如果Wi-Fi网络无法接入互联网,性能将降低2倍以上

更详细地说,它扩展的时间是从SpeechRecognitor“SoundEnded”状态开始到
speechRecognizer.ContinuousRecognitionSession.ResultGenerated

事件被调用

即使设备已连接到网络,是否有办法实现全速语音识别?

就连官方的微软UWP样本也指责了同样的问题:

谢谢你的建议:)


更新1: 我已经看到,如果互联网连接处于活动状态,应用程序会向以下URL发送请求:
websockets.platform.bing.com:443
。。。如果没有响应,则会在每个语音识别阶段退出19次,但是如果服务器响应,应用程序将不再向远程服务器发送请求,因为它会始终保持第一个https会话处于活动状态。


更新2:
我发现,如果连接到服务器,应用程序会将语音识别会话的每一个细节(通过https)发送到服务器:所有内容都是发音、语义、信心分数……但也包括:设备类型和型号、地理位置等等!模式是JSON。
但这还不是全部,设备发送到服务器,甚至是二进制音频流,服务器使用JSON中间假设进行响应,直到流完成,最后服务器发送最终响应

详细地说

一,。在会话开始时,设备用如下数据包标识自己:

X-CU-ApplicationId:FB31CC89-63D2-4296-A806-33DBA8DA56F2
X-CU-ClientVersion:3.0.150531
X-CU-CONVERSIONID:01aef68ebfd84a478d70cf5155ba7e82
X-CU-Locale:en-US
X-CU-LogLevel:1
X-CU-RequestId:4885e9c5-a2be-4167-b27c-5ad55024dcb4
X-lobble-MESSAGE-TYPE:connection.context
X-Search-IG:37226844f90542e6b96b5c27891eea97
X-WebSocketMessageId:C#116

{
“团体”:{
“会话上下文”:{
“Id”:“会话上下文”,
“信息”:{
“Preferclienterco”:“false”,
“TurnId”:“0”
},
“项目”:[]
},
“本地属性”:{
“Id”:“LocalProperties”,
“信息”:{
“AudioSourceType”:“无”,
“当前时间”:“2017-06-07T10:01:47+02:00”,
“驱动模式激活”:“错误”,
“地理位置”:“{\“Uri\”:\“实体:\/\/GeoCoordinates\”,“版本:\”:“1.0\”,“纬度”:45.48179547076163,“经度”:9.18281614780426,“精度”:64}”,
“InCall”:“false”,
“IsActiveDisplayHMD”:“假”,
“锁定状态”:“无效”,
“麦克风信息”:“音频流(xxx)”,
“ModeOfTravel”:“未定义”,
“ProximitySensorState”:“无效”,
“SpeechAppInitiatedRequest”:“false”,
“系统信息”:“{”设备制造商“:”微软公司“,”设备模型“:”Surface Pro 2“,”设备家庭“:”Windows.Desktop“,”OsVersion“:”6.3“,”Qfe“:”3145728,“分支机构“:”rs2 U发布“,”语言代码“:”1033、”协议“:”1.0“,”OsName“:”Windows 10企业“,”时区“:”W.欧洲标准时间“,”格式代码“,”it“,”Mkt\“:“en-US\”,“Cortanenabled\”:false,““非本地语音”:false,““TestHook\”:false}”,
“TetheredDeviceMake”:“,
“TetheredDeviceModel”:“,
“UserAgeClass”:“成人”
},
“项目”:[{
“显示文本”:“成人”,
“Id”:“UserAgeClass”,
“信息”:{},
“项目”:[…],
“知识”:[],
“名称”:“UserAgeClass”
}, {
“DisplayText”:“false”,
“Id”:“SpeechAppInitiatedRequest”,
“信息”:{},
“项目”:[…],
“知识”:[],
“名称”:“SpeechAppInitiatedRequest”
}, {
“显示文本”:“未定义”,
“Id”:“ModeOfTravel”,
“信息”:{},
“项目”:[…],
“知识”:[],
“名称”:“ModeOfTravel”
}, {
“显示文本”:“音频流(xxx)”,
“Id”:“麦克风信息”,
“信息”:{},
“项目”:[…],
“知识”:[],
“名称”:“麦克风信息”
}, {
“DisplayText”:“无效”,
“Id”:“锁定状态”,
“信息”:{},
“项目”:[…],
“知识”:[],
“名称”:“锁定状态”
}, {
“DisplayText”:“无效”,
“Id”:“ProximitySensorState”,
“信息”:{},
“项目”:[…],
“知识”:[],
“名称”:“ProximitySensorState”
}, {
“DisplayText:”{“DeviceMake\”:“Microsoft Corporation\”、“DeviceModel\”:“Surface Pro 2\”、“DeviceFamily\”:“Windows.Desktop\”、“OsVersion\”:“6.3\”、“Qfe\”:3145728、“Branch\”:“rs2 U发布版”、“语言代码”:1033、“协议”:“1.0\”、“OsName\”:“Windows 10企业版”、“时区”:“W.欧洲标准时间”、“格式代码”、“it\”Mkt\“:“en-US\”,“Cortanenabled\”:false,““非本地语音”:false,““TestHook\”:false}”,
“Id”:“系统信息”,
“信息”:{},
“项目”:[…],
“知识”:[],
“名称”:“系统信息”
}, {
“DisplayText”:“false”,
“Id”:“InCall”,
“信息”:{},
“项目”:[…],
“知识”:[],
“名称”:“InCall”
}, {
“显示文本”:“,
“Id”:“TetheredDeviceMake”,
“信息”:{},
“项目”:[…],
“知识”:[],
“名称”:“TetheredDeviceMake”
}, {
“DisplayText:“{\'Uri\”:\“实体:\/\/GeoCoordinates\”,“版本:\'1.0\”,“纬度”:45.48179547076163,“经度”:9.18281614780426,“精度”:64}”,
“Id”:“地理位置”