Microsoft Speech API - Cognitive Speech STT iOS:语言不变

Posted

技术标签:

【中文标题】Microsoft Speech API - Cognitive Speech STT iOS:语言不变【英文标题】:Microsoft Speech API - Cognitive Speech STT iOS : Language not changing 【发布时间】:2018-04-19 08:53:46 【问题描述】:

我已经开始使用识别

_micClient = [SpeechRecognitionServiceFactory createMicrophoneClient:SpeechRecognitionMode_ShortPhrase withLanguage:locale withKey:API_KEY withProtocol:(self)];

一切都按预期进行。

但是,第二次在另一个语言环境中使用相同的语言时,只能识别第一种语言。

例如:应用启动并以“hi-IN”开始识别

应用名称:com.XXXX.XXXX/1.0.1 STS: https://api.cognitive.microsoft.com/sts/v1.0/issueToken令人耳目一新 令牌 /sts/v1.0/issueToken 初始化音频服务初始化 语音服务 没有向控制器提供应用程序 ID GetIdentityPropertyValue 3 用户代理值 ios 助手 (iOS; 11.2.6;Mobile;ProcessName/AppName=com.XXXX.XXXX/1.0.1;DeviceType=Near;SpeechClient=1.0.161216) 网址:'https://websockets.platform.bing.com/ws/speech/recognize' 区域设置:'hi-IN' 应用程序 ID:'' 版本:4.0.150429 UserAuthorizationToken: ServerLoggingLevel: 1 启动 websocket 联系。 m_connection=0x0 主机=websockets.platform.bing.com port=443 Auth token status: 200 Authorization token hr 0 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6Imh0dHBzOi8vc3BlZWNoLnBsYXRmb3JtLmJpbmcuY29tIiwic3Vic2NyaXB0aW9uLWlkIjoiMGZhNGQ5NmZjODc5NDA1ZmIyZDc3ZGVmY2NiOTc0MzUiLCJwcm9kdWN0LWlkIjoiQmluZy5TcGVlY2guUzAiLCJjb2duaXRpdmUtc2VydmljZXMtZW5kcG9pbnQiOiJodHRwczovL2FwaS5jb2duaXRpdmUubWljcm9zb2Z0LmNvbS9pbnRlcm5hbC92MS4wLyIsImF6dXJlLXJlc291cmNlLWlkIjoiL3N1YnNjcmlwdGlvbnMvZjJmNWJmMGYtZTRlOC00NDY1LTg4ZDQtYmMyMGFiYTNmMTIzL3Jlc291cmNlR3JvdXBzL1NwZWVjaFJlY29nbml0aW9uL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29nbml0aXZlU2VydmljZXMvYWNjb3VudHMvU3BhcmtsaW5nU3BlZWNoIiwiaXNzIjoidXJuOm1zLmNvZ25pdGl2ZXNlcnZpY2VzIiwiYXVkIjoidXJuOm1zLnNwZWVjaCIsImV4cCI6MTUyMjkyODc1OH0.PTBvhZ18q __- PCJRtWLr-KkQ99yt4c-mnrd2kdyOn1c” 成功初始化客户端连接 Create ImpressionId: fff94b5814ae9a097f0d749c137069d9 创建 ImpressionId: 01eb6b249fc1d90e37ba61a1a2d64fe9 重置

创建 ImpressionId:e69685c047daf66ef0887614b2a35fc4 ImpressionId: b53b312c6dfd13609e5b1cf2952f0af6 添加requestId: 'cadbb055d5d4ef5c669d210a5fed2bf7' 用于'text/cu.client.context' 订阅请求 [cadbb055d5d4ef5c669d210a5fed2bf7] 音频流 为 'audio/x-wav' 订阅请求 [e9012ec9fe3d9ee9e8a075e6274eda06] 音频流创建创建转码器 2

升级请求返回 HTTP 状态码:101 Web 套接字 握手完成 CU 客户端连接 ConnectionStateChanged 麦克风权限:0 发送第一块音频流, requestId='e9012ec9-fe3d-9ee9-e8a0-75e6274eda06' 语音录音 开始语音录制开始 OnDataAvailable: 81 => type 1 收到的消息:'audio.stream.response' 响应请求 ID: 'e9012ec9-fe3d-9ee9-e8a0-75e6274eda06' 响应印象: 'b53b312c6dfd13609e5b1cf2952f0af6'

LanguageGeneration OK Partial : आप OnDataAvailable: 81 => type 1 收到的消息:'audio.stream.response' 响应请求 ID: 'e9012ec9-fe3d-9ee9-e8a0-75e6274eda06' 响应印象: 'b53b312c6dfd13609e5b1cf2952f0af6'

LanguageGeneration OK Partial : आपके OnDataAvailable: 81 => type 1 收到的消息:'audio.stream.response' 响应请求 ID: 'e9012ec9-fe3d-9ee9-e8a0-75e6274eda06' 响应印象: 'b53b312c6dfd13609e5b1cf2952f0af6'

LanguageGeneration OK Partial : आप किस OnDataAvailable: 81 => type 1 收到的消息:'audio.stream.response' 响应请求 ID: 'e9012ec9-fe3d-9ee9-e8a0-75e6274eda06' 响应印象: 'b53b312c6dfd13609e5b1cf2952f0af6'

LanguageGeneration OK Partial : आप कैसे OnDataAvailable: 01 => type 1 收到的消息:'audio.stream.response' 响应请求 ID: 'e9012ec9-fe3d-9ee9-e8a0-75e6274eda06' 响应印象: 'b53b312c6dfd13609e5b1cf2952f0af6'

语言生成正常

发送音频流端点, requestId='e9012ec9-fe3d-9ee9-e8a0-75e6274eda06' 发送音频流 端点,requestId='e9012ec9-fe3d-9ee9-e8a0-75e6274eda06' 信令 OnAudioEvent(AUDIO_EVENT_RECORD_STOP)

然后用“en-US”初始化新的麦克风客户端。

现在开始识别时:

创建 ImpressionId:0eed72b0b8019f0d7647b4d5d1adc8c6 重置取消 请求 [cadbb055d5d4ef5c669d210a5fed2bf7] 取消请求 [e9012ec9fe3d9ee9e8a075e6274eda06]

创建 ImpressionId:ff9306c014eba5a9da0fa5979269bced ImpressionId: 04bfd4c2fce0e631c6b6d9f3d16877f2 添加requestId: 'b9148688143a0a9526df6bd9e31110d1' 用于'text/cu.client.context' 订阅请求 [b9148688143a0a9526df6bd9e31110d1] 音频流 为 'audio/x-wav' 订阅请求 [158b5857d7f60759687076b3bfa9d2bc] 音频流创建创建转码器 2

麦克风权限:0 语音录制开始 语音录制 开始发送第一块音频流, requestId='158b5857-d7f6-0759-6870-76b3bfa9d2bc'

发送音频流端点, requestId='158b5857-d7f6-0759-6870-76b3bfa9d2bc' 发送音频流 端点,requestId='158b5857-d7f6-0759-6870-76b3bfa9d2bc' 信令 OnAudioEvent(AUDIO_EVENT_RECORD_STOP) 语音录制停止 Speech 录制停止 OnDataAvailable: 81 => type 1 Received message: 'audio.stream.response' 响应请求 ID: '158b5857-d7f6-0759-6870-76b3bfa9d2bc' 响应印象: '04bfd4c2fce0e631c6b6d9f3d16877f2'

LanguageGeneration OK Partial : तो OnDataAvailable: 81 => type 1 收到的消息:'audio.stream.response' 响应请求 ID: '158b5857-d7f6-0759-6870-76b3bfa9d2bc' 响应印象: '04bfd4c2fce0e631c6b6d9f3d16877f2'

LanguageGeneration OK 原始错误 0x80070057 错误:没有重新识别 原始错误 0x80070057

第二次在日志中找不到语言环境,请注意部分响应仍处于“hi-IN”状态。有什么方法可以删除旧的语言配置?

【问题讨论】:

【参考方案1】:

如果您想更改语言,则必须在一个话语和下一个话语之间关闭 websocket 连接。只需在 3 分钟内没有任何活动的话语之间等待 3 分钟,就会关闭连接。此外,调用 AudioStop() 应该关闭连接。如果您已经尝试调用 AudioStop() 但不起作用,我们将确保在即将发布的 API 版本中修复此问题。

【讨论】:

正确。尝试调用 AudioStop() 并不起作用。

以上是关于Microsoft Speech API - Cognitive Speech STT iOS:语言不变的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Bot Framework C# 中使用 Bing Speech API

为 c# microsoft 2013 安装 Microsoft.speech

Microsoft.CognitiveServices.Speech 在发布应用程序后不起作用

无法使用Delphi通过Post打开Microsoft语音识别API

Microsoft.Speech SpeechRecognitionEngine.setInputToDefaultAudioDevice() 方法抛出 System.InvalidOperation

加载 Microsoft Speech SDK v11 时出错