我也遇到了一些问题,让它工作。以下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}