【问题标题】:408 Request timed out Microsoft Speech to Text408 请求超时 Microsoft Speech to Text
【发布时间】:2016-07-01 07:44:55
【问题描述】:

我的 .wav 文件长度只有 4 秒。即使经过多次重试并在云上运行它,我也会不断收到以下错误

  * upload completely sent off: 12 out of 12 bytes
  < HTTP/1.1 408 Request timed out (> 14000 ms)
  < Transfer-Encoding: chunked
  < Content-Type: text/plain
  < Server: Microsoft-IIS/8.5
  < X-MSEdge-Ref: 

有人遇到过这个问题吗? 这是我的要求

  `curl -v "https://speech.platform.bing.com/recognize?
  scenarios=catsearch&appid=D4D52672-91D7-4C74-8AD8-42B1D98141A5&locale=en-  
  US&device.os=wp7&version=3.0&format=json&requestid=1d4b6030-9099-12e0-91e4-
  0800200c9a67&instanceid=1d4b6030-9099-12e0-91e5-0800200c9a68" -H 
  "Authorization: Bearer $1" -H "Content-Type: audio/wav; samplerate=8000" -- 
  data-binary $2`

【问题讨论】:

  • 我通过以“@test.wav”格式传递二进制数据来实现这一目标。但现在我收到了这个错误。到主机 speech.platform.bing.com 的连接 #0 保持不变 {"version":"3.0","header":{"status":"error","properties":{"requestid":"6048c0fa-86e2- 4073-993b-63bff15e10b3","NOSPEECH":"1"}}}

标签: speech-recognition speech-to-text microsoft-cognitive


【解决方案1】:

我在让它工作时也遇到了一些问题。以下 BASH 脚本“bingrec.sh”可能有助于使其更清晰;输入您的 SUBSCRIPTION_KEY 并根据需要调整 SAMPLERATE 等。正如其他人指出的那样,需要将语言环境和场景设置为支持的值,并且 instance_id 和 request_id 需要采用 GUID 格式。音频文件的长度应小于 10 秒,并且采样率为 8000 或 16000。此外 curl "--data-binary" 参数需要在音频文件名前加上 "@"。

#!/bin/bash
#  Usage:  ./bingrec.sh  /path/to/file 
#  Send audio file $1 through Bing speech recognition API.
#
SUBSCRIPTION_KEY=<your-key-here>
LOCALE=en-US
SCENARIOS=ulm
SAMPLERATE=8000
CODEC=audio/pcm

TARGET_FILE=$1
if [ ! -f "$TARGET_FILE" ]; then
  echo Error:  file $TARGET_FILE does not exist!
  exit 1
fi

INSTANCE_ID=`uuidgen`    # random GUID for instance
REQUEST_ID=`uuidgen`     # random GUID for request
APPID=D4D52672-91D7-4C74-8AD8-42B1D98141A5   # APPID for Bing Speechrec API, don't change
DEVICE_OS=linux          # arbitraty
FORMAT=json

AUTH_TOKEN=`curl -v -X POST "https://api.cognitive.microsoft.com/sts/v1.0/issueToken" -H "Content-type: application/x-www-form-urlencoded" -H "Content-Length: 0" -H "Ocp-Apim-Subscription-Key: ${SUBSCRIPTION_KEY}"`

curl -v -X POST "https://speech.platform.bing.com/recognize?scenarios=${SCENARIOS}&appid=${APPID}&locale=${LOCALE}&device.os=${DEVICE_OS}&version=3.0&format=${FORMAT}&instanceid=${INSTANCE_ID}&requestid=${REQUEST_ID}" -H "Authorization: Bearer ${AUTH_TOKEN}" -H "Content-type: audio/wav; codec='${CODEC}'; samplerate=${SAMPLERATE}" --data-binary @${TARGET_FILE}

【讨论】:

    【解决方案2】:

    我得到了这个工作。有几个问题。一个是使用语言环境,我将其更改为 en-IN。然后场景=ulm。这似乎成功了。我能够非常清楚地检测到语音。

    【讨论】:

    • 您是否遇到过简单超时的问题?我无法让我发出任何类型的响应,它只是挂起。我的设置是speech.platform.bing.com/… 带有标题 ["Authorization"] => "Bearer [token]" ["Content-Type"] => "audio/wav; samplerate=16000"
    • 多次是的。我曾经 408 请求超时错误。但每次结果都是我的要求有问题。使用有效负载或使用参数。你是如何传递数据的?尝试使用卷曲。此外,在基于 Unix 的环境中,波形文件需要以“@test.wav”这种格式传递。将带有屏蔽 jwt 令牌的 url 传递给我,我可以用我的令牌尝试你的 url
    • 这里有同样的问题。还有没有更多的场景?
    • 对不起。我还没有遇到过更多的场景。我转向了谷歌语音到文本,这更容易实现。 :) 我正在评估该领域的不同产品。
    猜你喜欢
    • 1970-01-01
    • 2012-10-04
    • 2010-12-12
    • 2023-03-23
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2020-05-26
    相关资源
    最近更新 更多