博 客 - 正文

字幕识别字幕转换开发文档

来源:酷虎云api开放平台 分类:Ai资讯 酷虎云 阅读(298)

 酷虎云音频转文字(STT)接口开发文档

 1. 接口概述

本接口为酷虎云提供的音频转文字(Speech-to-Text, STT)服务接口,支持通过提交音频URL的方式批量发起转写任务,并可查询任务状态及获取转写结果(含可导出为SRT格式的字幕信息),适用于需要将音频内容转化为文本或字幕的开发场景。


 2. 接口基础信息

 项目                 内容                                                                 

-------------------------------------------------------------------------------------------

 接口地址         `https://#/api/stt/audiototexturls`                    

 请求方式         HTTP POST                                                            

 返回格式         application/json                                                     

 Content-Type     application/json(请求头必须包含此参数,否则会导致请求失败)          

 在线调试工具    apifox



 3. 请求参数说明

接口请求参数分为URL参数和请求体参数,需根据`type`(任务类型)传入对应参数。


 3.1 通用URL参数(必传)

所有请求均需在URL中携带以下参数:


 参数名  是否必填  类型    示例值                           说明                                                                 

---------------------------------------------------------------------------------------------------------------------------------

 key     是        string  35kj5jnlj53453kl5j43nj5          接口密钥,用于身份验证,可在酷虎云控制台「密钥管理」页面获取。       

 type    是        string  start / query                    任务类型:<br>- `start`:提交音频转写任务,返回任务ID;<br>- `query`:查询指定任务的状态及转写结果。 


 3.2 按任务类型的请求体参数

 3.2.1 提交任务(type=start)

当`type=start`时,需在请求体中传入音频URL列表,用于批量发起转写任务。


 参数名      是否必填  类型    示例值                                                          说明                                                                 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

 audio_urls  是        array   ["https://#/audio1.mp3", "https://#/audio2.mp3"]  音频URL数组,支持批量提交多个音频地址,仅支持`http/https`协议的URL,音频格式需为MP3(其他格式可能导致识别失败)。 


请求体示例:

```json

{

  "audio_urls": [

    "https://#/audio_sample1.mp3",

    "https://#/audio_sample2.mp3"

  ]

}

```


 3.2.2 查询任务(type=query)

当`type=query`时,需在请求体中传入任务ID,用于查询该任务的详细信息(含转写结果)。


 参数名    是否必填  类型    示例值                           说明                                                                 

-----------------------------------------------------------------------------------------------------------------------------------

 task_id   是        string  b68b6285901bb8621f680fbabe796d6e  任务ID,由`type=start`请求返回,用于唯一标识一个转写任务。           


请求体示例:

```json

{

  "task_id": "b68b6285901bb8621f680fbabe796d6e"

}

```



 4. 返回参数说明

所有请求的返回格式均为JSON,包含状态码、状态信息及对应业务数据,不同任务类型的返回数据结构略有差异。


 4.1 通用返回字段(所有请求均包含)

 字段名      类型     说明                                                                 

-------------------------------------------------------------------------------------------

 code        int      状态码:<br>- 200:请求成功;<br>- 非200:请求失败(具体原因见`msg`)。 

 msg         string   状态信息,描述请求成功/失败的原因(如“任务提交成功”“任务ID不存在”)。   

 exec_time   float    接口执行耗时(单位:秒),用于性能参考。                             

 user_ip     string   客户端IP地址,用于排查请求来源问题。                                 

 debug       string/array  调试数据,仅在接口异常时返回,包含详细错误日志(非必返字段)。       


 4.2 按任务类型的业务返回字段

 4.2.1 提交任务(type=start)返回

当`type=start`且请求成功(code=200)时,返回数据中包含任务ID,用于后续查询。


 字段名    类型     说明                                                                 

-----------------------------------------------------------------------------------------

 task_id   string   任务ID,唯一标识当前提交的转写任务,需保存用于后续查询任务结果。       

 data      string   任务提交结果描述(如“批量任务已创建,共2个音频文件”)。               


返回示例(成功):

```json

{

  "code": 200,

  "msg": "任务提交成功",

  "data": "批量任务已创建,共2个音频文件",

  "task_id": "b68b6285901bb8621f680fbabe796d6e",

  "exec_time": 0.32,

  "user_ip": "123.45.67.89",

  "debug": ""

}

```


 4.2.2 查询任务(type=query)返回

当`type=query`且请求成功(code=200)时,返回数据中包含任务状态、音频信息及转写结果(含字幕信息)。


 字段名        类型     说明                                                                 

---------------------------------------------------------------------------------------------

 data          object   任务结果数据集,包含以下子字段(仅任务完成时返回完整数据):          

 ├─ display    array    识别信息组,每个元素对应一段音频的转写详情(多音频任务返回多个元素)。 

 │  ├─ source  string   音频源URL,对应提交时的`audio_urls`中的某个地址。                    

 │  ├─ seconds string   音频时长(单位:秒),如“125.3”表示125秒300毫秒。                   

 │  └─ phrases array    字幕断句列表,每个元素为一段字幕的详细信息:                         

 │     ├─ text        string   该段字幕的文本内容。                                                

 │     ├─ confidence  string   文本识别置信度(0-100),值越高表示识别结果越准确。                  

 │     ├─ start_time  string   字幕开始时间(格式:时:分:秒.毫秒),如“00:01:45.300”。             

 │     └─ duration    string   字幕持续时间(格式:时:分:秒.毫秒),如“00:00:08.500”。             

 task_id       string   任务ID,与请求时传入的`task_id`一致。                                


返回示例(任务完成):

```json

{

  "code": 200,

  "msg": "任务查询成功(已完成)",

  "data": {

    "display": [

      {

        "source": "https://#/audio_sample1.mp3",

        "seconds": "125.3",

        "phrases": [

          {

            "text": "大家好,欢迎使用酷虎云STT接口",

            "confidence": "98.5",

            "start_time": "00:00:02.100",

            "duration": "00:00:05.200"

          },

          {

            "text": "本接口支持批量音频转写和SRT字幕导出",

            "confidence": "97.8",

            "start_time": "00:00:07.500",

            "duration": "00:00:06.800"

          }

        ]

      },

      {

        "source": "https://#/audio_sample2.mp3",

        "seconds": "89.6",

        "phrases": [

          {

            "text": "查询任务时需传入正确的任务ID",

            "confidence": "99.1",

            "start_time": "00:00:01.300",

            "duration": "00:00:04.700"

          }

        ]

      }

    ]

  },

  "task_id": "b68b6285901bb8621f680fbabe796d6e",

  "exec_time": 0.58,

  "user_ip": "123.45.67.89",

  "debug": ""

}

```


返回示例(任务处理中):

```json

{

  "code": 200,

  "msg": "任务查询成功(处理中)",

  "data": "当前任务进度:60%,请稍后查询",

  "task_id": "b68b6285901bb8621f680fbabe796d6e",

  "exec_time": 0.21,

  "user_ip": "123.45.67.89",

  "debug": ""

}

```



 5. 常见错误码及解决方案

 错误码  错误信息示例                      可能原因及解决方案                                                                 

-----------------------------------------------------------------------------------------------------------------------------

 400     "参数缺失:key不能为空"            未在URL中传入`key`参数,需从控制台获取密钥并补充到请求URL中。                     

 400     "参数错误:type必须为start或query"  `type`参数值错误,需修正为`start`(提交任务)或`query`(查询任务)。              

 401     "密钥无效:key不存在或已过期"     `key`错误或已失效,需登录控制台检查密钥是否正确,或重新生成新密钥。               

 403     "无权限:当前密钥无STT接口访问权限"  密钥未开通STT接口权限,需在控制台「接口权限管理」中为该密钥开通权限。             

 404     "任务不存在:task_id无效"         查询时传入的`task_id`错误或已过期,需确认`task_id`是否与提交任务时返回的一致。    

 415     "不支持的媒体类型:Content-Type必须为application/json"  请求头未设置`Content-Type: application/json`,需补充该请求头。                   

 500     "服务器错误:音频URL无法访问"     提交的`audio_urls`中存在无法访问的URL,需检查音频地址是否有效、是否支持外部访问。 



 6. 接口调用流程示例

以“提交转写任务→查询任务结果→导出SRT字幕”为例,完整流程如下:


 步骤1:提交转写任务(type=start)

1. 构造请求URL:`https://#/api/stt/audiototexturls?key=你的密钥&type=start`

2. 设置请求头:`Content-Type: application/json`

3. 构造请求体(含2个音频URL):

   ```json

   {

     "audio_urls": [

       "https://#/audio1.mp3",

       "https://#/audio2.mp3"

     ]

   }

   ```

4. 发送POST请求,获取返回的`task_id`(如`b68b6285901bb8621f680fbabe796d6e`)。


 步骤2:查询任务结果(type=query)

1. 构造请求URL:`https://#/api/stt/audiototexturls?key=你的密钥&type=query`

2. 设置请求头:`Content-Type: application/json`

3. 构造请求体(传入步骤1获取的`task_id`):

   ```json

   {

     "task_id": "b68b6285901bb8621f680fbabe796d6e"

   }

   ```

4. 发送POST请求,若返回`msg`为“任务查询成功(已完成)”,则从`data.display[0].phrases`中获取第一段音频的字幕数据。


 步骤3:导出SRT字幕

根据`phrases`中的`start_time`(开始时间)、`duration`(持续时间)和`text`(文本),按SRT格式拼接内容,示例如下:

```srt

1

00:00:02.100 --> 00:00:07.300  // 开始时间 + 持续时间 = 结束时间(2.1+5.2=7.3)

大家好,欢迎使用酷虎云STT接口


2

00:00:07.500 --> 00:00:14.300  // 7.5+6.8=14.3

本接口支持批量音频转写和SRT字幕导出

```



 7. 注意事项

1. 密钥安全:`key`为接口访问凭证,请勿泄露给第三方,若怀疑密钥泄露,需立即在控制台重新生成。

2. 音频限制:

   - 仅支持`http/https`协议的音频URL,本地文件需先上传至服务器并获取公网可访问的URL;

   - 推荐音频格式为MP3,其他格式(如WAV、AAC)可能导致识别成功率下降;

   - 单条音频时长建议不超过30分钟,超长音频可能导致任务处理超时。

3. 查询频率:任务提交后需等待处理(通常1-5分钟,视音频时长而定),建议间隔30秒-1分钟查询一次,避免高频请求导致接口限流。

4. SRT导出:`phrases`中的`start_time`为字幕开始时间,`duration`为持续时间,需自行计算字幕结束时间(开始时间+持续时间)后拼接SRT格式。


来源:酷虎云字幕识别转换api接口开放平台

未来人工智能

立即注册

客服微信

点击聊天

请打开手机微信,扫一扫联系我们

客服QQ
44825217

商务号,添加请说明来意

在线咨询

点击咨询

7x24h售后支持

400-663-6698

返回顶部