批量创建转录始终会导致:录音 URI 包含无效数据

sha*_*ren 1 transcription azure-speech

我想使用 Azure 语音服务批量转录 API来创建音频文件的转录。我已经成功使用语音服务 SDK(适用于 Node.js),但有兴趣尝试 v3.1 预览版 api ( displayFormWordLevelTimestampsEnabled) 中提供的较新功能之一,所以我想我必须使用REST API 服务来执行此操作。

总的来说,我的问题是,无论我为Create TranscriptAPI提供什么输入contentUrls,我总是会得到相同的错误:

"error": {
   "code": "InvalidData",
   "message": "The recordings URI contains invalid data."
}
Run Code Online (Sandbox Code Playgroud)

经过一番挖掘后,我通过 Azure 门户找到了一些提示,可用于以sox请求的特定格式处理音频文件的转码。

他们在门户文档中提到的具体格式显示:如果您使用 REST API,请确保它使用此表中的格式之一:

格式 编解码器 比特率 采样率
音频格式 相变材料 256kbps 16 kHz,单声道
奥格 奥普斯 256kbps 16 kHz,单声道

sox 的具体命令是:

活动 SoX命令
检查音频文件格式。 红袜--我
将音频文件转换为单声道、16 位、16 KHz。 sox -b 16 -e 有符号整数 -c 1 -r 16k -t wav .wav

我通过第二个命令运行我的 mp3 并使用第一个命令验证该文件,文件的内容如下所示:

Input File     : 'out5.wav'
Channels       : 1
Sample Rate    : 16000
Precision      : 16-bit
Duration       : 00:00:30.09 = 481488 samples ~ 2256.97 CDDA sectors
File Size      : 963k
Bit Rate       : 256k
Sample Encoding: 16-bit Signed Integer PCM
Run Code Online (Sandbox Code Playgroud)

最后,我将文件上传到公共 S3 存储桶,用作我的请求的内容 url:

POST https://westus.api.cognitive.microsoft.com/speechtotext/v3.0/transcriptions

{
  "contentUrls": [
        "https://s3.us-west-1.amazonaws.com/xxxx/out5.wav"
  ],
  "locale": "en-US",
  "displayName": "Test"
}
Run Code Online (Sandbox Code Playgroud)

但它仍然失败,并出现我上面发布的相同错误。对可能出现问题的任何见解?谢谢!

更新:

下面的答案提到能够在Get Transcript/ Create Transcriptapi 调用上引用 reports.json 文件。

当我使用Create TranscriptAPI 时,我的有效负载是:

{
    "self": "https://westus.api.cognitive.microsoft.com/speechtotext/v3.1-preview.1/transcriptions/02815462-e9c0-4fdc-8bbe-7b0e78152f95",
    "model": {
        "self": "https://westus.api.cognitive.microsoft.com/speechtotext/v3.1-preview.1/models/base/c3b008fa-eb47-4f6d-a5b9-71dd37870bb7"
    },
    "links": {
        "files": "https://westus.api.cognitive.microsoft.com/speechtotext/v3.1-preview.1/transcriptions/02815462-e9c0-4fdc-8bbe-7b0e78152f95/files"
    },
    "properties": {
        "diarizationEnabled": false,
        "wordLevelTimestampsEnabled": false,
        "displayFormWordLevelTimestampsEnabled": false,
        "channels": [
            0,
            1
        ],
        "punctuationMode": "DictatedAndAutomatic",
        "profanityFilterMode": "Masked"
    },
    "lastActionDateTime": "2022-09-13T23:37:09Z",
    "status": "NotStarted",
    "createdDateTime": "2022-09-13T23:37:09Z",
    "locale": "en-US",
    "displayName": "Test"
}
Run Code Online (Sandbox Code Playgroud)

调用Get Transcript我看到:

{
    "self": "https://westus.api.cognitive.microsoft.com/speechtotext/v3.1-preview.1/transcriptions/02815462-e9c0-4fdc-8bbe-7b0e78152f95",
    "model": {
        "self": "https://westus.api.cognitive.microsoft.com/speechtotext/v3.1-preview.1/models/base/c3b008fa-eb47-4f6d-a5b9-71dd37870bb7"
    },
    "links": {
        "files": "https://westus.api.cognitive.microsoft.com/speechtotext/v3.1-preview.1/transcriptions/02815462-e9c0-4fdc-8bbe-7b0e78152f95/files"
    },
    "properties": {
        "diarizationEnabled": false,
        "wordLevelTimestampsEnabled": false,
        "displayFormWordLevelTimestampsEnabled": false,
        "channels": [
            0,
            1
        ],
        "punctuationMode": "DictatedAndAutomatic",
        "profanityFilterMode": "Masked",
        "error": {
            "code": "InvalidData",
            "message": "The recordings URI contains invalid data."
        }
    },
    "lastActionDateTime": "2022-09-13T23:37:22Z",
    "status": "Failed",
    "createdDateTime": "2022-09-13T23:37:09Z",
    "locale": "en-US",
    "displayName": "Test"
}
Run Code Online (Sandbox Code Playgroud)

最后查看成绩单文件,我得到一个空列表:

{
    "values": []
}
Run Code Online (Sandbox Code Playgroud)

我没有看到任何对 reports.json 的引用,也没有看到此处填充的任何数据。

chl*_*dsi 5

在许多情况下,您可以通过执行 GEThttps://westus.api.cognitive.microsoft.com/speechtotext/v3.0/transcriptions/<transcription_id>/files并查看其中引用的 report.json 来获取详细的错误信息。

如果这没有帮助,您可以发布失败转录的转录 ID,以便团队中的某人(我是其中之一)可以查看服务日志。