[{"data":1,"prerenderedAt":199},["ShallowReactive",2],{"reference-detail-zh-transcribe_audio_api_v1_audio_transcribe_post":3,"developer-code-1qvyx6g":197,"developer-code-1pbdg4p":198},{"tag":4,"sourceTag":4,"tagSlug":5,"method":6,"path":7,"slug":8,"summary":9,"description":10,"operationId":11,"groupOrder":12,"descriptionHtml":13,"parameters":14,"requestBody":22,"responses":67,"security":184,"codeSamples":187},"Audio","audio","POST","\u002Fapi\u002Fv1\u002Faudio\u002Ftranscribe","transcribe-audio","转写音频","将语音音频转写为带逐词时间戳的文本，可选识别说话人切换（`diarize`）或生成 SRT 字幕（`srt`）。按音频每 5 分钟 1 点计费，不足 5 分钟按 5 分钟计算，仅成功时扣费。此接口同步执行，音频最长 30 分钟。Beta 期间每个 API Key 的并发数受限，超限请求会被拒绝，不会排队。","transcribe_audio_api_v1_audio_transcribe_post",999,"\u003Cp>将语音音频转写为带逐词时间戳的文本，可选识别说话人切换（\u003Ccode>diarize\u003C\u002Fcode>）或生成 SRT 字幕（\u003Ccode>srt\u003C\u002Fcode>）。按音频每 5 分钟 1 点计费，不足 5 分钟按 5 分钟计算，仅成功时扣费。此接口同步执行，音频最长 30 分钟。Beta 期间每个 API Key 的并发数受限，超限请求会被拒绝，不会排队。\u003C\u002Fp>",[15],{"name":16,"in":17,"required":18,"description":19,"type":20,"example":21},"X-API-Key","header",true,"你的 VisionStory API Key（`sk-vs-...`），请仅保存在服务端。可在 [API Key 管理](\u002Fapi-keys) 中创建或管理，需要 Pro 或更高方案。","string","sk-vs-your-api-key",{"required":18,"contentType":23,"schema":24,"example":64},"application\u002Fjson",{"type":25,"description":26,"nullable":27,"properties":28},"TranscribeRequest","",false,[29,55,60],{"name":5,"required":18,"type":30,"description":31,"nullable":27,"properties":32},"MediaRef","媒体引用，必须且只能提供以下一种：`asset_id`（素材库中的素材，可跨请求复用）、`url`（单次使用的公开 URL）或 `inline_data`（单次使用的 base64 数据，不保存）。",[33,38,51],{"name":34,"required":27,"type":35,"description":36,"nullable":18,"properties":37},"asset_id","string | null","POST \u002Fapi\u002Fv1\u002Fasset 返回的素材 ID，用于跨请求复用素材。",[],{"name":39,"required":27,"type":40,"description":41,"nullable":18,"properties":42},"inline_data","InlineDataModel | null","仅供本次使用的内嵌 base64 媒体数据，不会加入素材库。图像支持 image\u002Fjpeg、image\u002Fjpg、image\u002Fpng、image\u002Fwebp、image\u002Fbmp、image\u002Ftiff、image\u002Fgif；音频支持 audio\u002Fwav、audio\u002Fx-wav、audio\u002Fwave、audio\u002Fmpeg、audio\u002Fmp3；视频支持 video\u002Fmp4、video\u002Fquicktime、video\u002Fmov。",[43,47],{"name":44,"required":18,"type":20,"description":45,"nullable":27,"properties":46},"data","文件原始字节编码后的 base64 字符串，不包含 `data:` URI 前缀。",[],{"name":48,"required":18,"type":20,"description":49,"nullable":27,"properties":50},"mime_type","内嵌数据的 MIME 类型，网关据此区分图像、音频和视频。可接受的类型取决于具体接口，请参阅包含此对象的字段说明。数字人视频接受音频 ['audio\u002Favi', 'audio\u002Fmpeg', 'audio\u002Fmp3', 'audio\u002Fmp4', 'audio\u002Fm4a', 'audio\u002Fwav'] 和图像 ['image\u002Fjpeg', 'image\u002Fjpg', 'image\u002Fpng', 'image\u002Fwebp', 'image\u002Fheic']。",[],{"name":52,"required":27,"type":35,"description":53,"nullable":18,"properties":54},"url","仅供本次使用的公开可访问媒体 URL，不会加入素材库。",[],{"name":56,"required":27,"type":57,"description":58,"nullable":27,"default":27,"properties":59},"diarize","boolean","设为 true 时识别说话人切换，每个单词会携带 `speaker` 标签。",[],{"name":61,"required":27,"type":57,"description":62,"nullable":27,"default":27,"properties":63},"srt","设为 true 时，同时返回转写内容的 SRT 字幕。",[],{"audio":65,"diarize":18,"srt":18},{"url":66},"https:\u002F\u002Fexample.com\u002Fmedia\u002Finterview.mp3",[68,156],{"status":69,"description":70,"contentType":23,"schema":71,"example":133,"examples":147,"headers":155},"200","请求成功",{"type":72,"description":26,"nullable":27,"properties":73},"BaseSuccessResponse_TranscribeResponse_",[74,123,128],{"name":44,"required":18,"type":75,"description":76,"nullable":18,"properties":77},"TranscribeResponse | null","当前接口的响应数据，字段定义见该接口的响应结构。仅当操作不返回数据时为 null。",[78,84,89,93,96,100],{"name":79,"required":27,"type":80,"description":81,"nullable":27,"default":82,"properties":83},"cost_credit","integer","本次请求扣除的点数。",0,[],{"name":85,"required":27,"type":86,"description":87,"nullable":27,"default":82,"properties":88},"duration_sec","number","输入音频的时长，单位为秒。",[],{"name":90,"required":27,"type":20,"description":91,"nullable":27,"default":26,"properties":92},"language","识别出的音频语言代码，例如 `en`；可能为空。",[],{"name":61,"required":27,"type":20,"description":94,"nullable":27,"default":26,"properties":95},"SRT 字幕文本；仅在请求设置 `srt: true` 时返回，否则为空。",[],{"name":97,"required":18,"type":20,"description":98,"nullable":27,"properties":99},"text","完整的转写文本。",[],{"name":101,"required":27,"type":102,"description":103,"nullable":27,"properties":104,"items":105},"words","WordDto[]","逐词时间戳。",[],{"type":106,"description":26,"nullable":27,"properties":107},"WordDto",[108,112,116,120],{"name":109,"required":18,"type":86,"description":110,"nullable":27,"properties":111},"end_sec","单词结束时间，单位为秒。",[],{"name":113,"required":27,"type":35,"description":114,"nullable":18,"properties":115},"speaker","说话人标签，仅在请求启用 `diarize` 时返回。",[],{"name":117,"required":18,"type":86,"description":118,"nullable":27,"properties":119},"start_sec","单词开始时间，单位为秒。",[],{"name":97,"required":18,"type":20,"description":121,"nullable":27,"properties":122},"单词的文本内容。",[],{"name":124,"required":27,"type":20,"description":125,"nullable":27,"default":126,"properties":127},"message","便于阅读的状态消息；调用成功时为 `\"success\"`。","success",[],{"name":129,"required":18,"type":130,"description":131,"nullable":27,"properties":132},"server_time","string · date-time","服务端生成响应时的时间戳，使用 ISO 8601 格式（UTC）。",[],{"data":134,"message":126,"server_time":146},{"cost_credit":135,"duration_sec":135,"language":136,"srt":137,"text":138,"words":139},1,"en","1\n00:00:00,000 --> 00:00:01,000\nHello world\n","Hello world",[140,144],{"end_sec":141,"speaker":142,"start_sec":82,"text":143},0.5,"speaker_0","Hello",{"end_sec":135,"speaker":142,"start_sec":141,"text":145},"world","2026-09-04T00:00:00Z",[148],{"name":126,"description":149,"summary":70,"value":150},"示例仅用于说明响应结构，不代表实时账户数据或实际报价。ID 和 URL 均为占位内容。请调用模型查询及费用估算接口，获取当前可用模型和价格。",{"data":151,"message":126,"server_time":146},{"cost_credit":135,"duration_sec":135,"language":136,"srt":137,"text":138,"words":152},[153,154],{"end_sec":141,"speaker":142,"start_sec":82,"text":143},{"end_sec":135,"speaker":142,"start_sec":141,"text":145},[],{"status":157,"description":158,"contentType":23,"schema":159,"example":181,"headers":183},"default","错误响应。所有失败均使用统一结构：`error` 对象包含数字错误码 `code`、便于阅读的 `message`、可选的 `details` 字符串，以及提供后续处理建议的可选 `hint`（便于 AI Agent 使用）。",{"type":160,"description":26,"nullable":27,"properties":161},"ErrorResponse",[162],{"name":163,"required":18,"type":164,"description":26,"nullable":27,"properties":165},"error","ErrorDetail",[166,170,174,178],{"name":167,"required":18,"type":80,"description":168,"nullable":27,"properties":169},"code","机器可读的错误码。传输层失败时对应 HTTP 状态码（例如 401、404、422、500），其他情况可能使用业务专用错误码。",[],{"name":171,"required":27,"type":35,"description":172,"nullable":18,"properties":173},"details","可选的结构化错误详情，例如 422 响应中逐字段校验错误的 JSON 字符串。无补充信息时不返回。",[],{"name":175,"required":27,"type":35,"description":176,"nullable":18,"properties":177},"hint","供用户和 AI Agent 参考的错误处理建议，例如如何修正请求或在哪里获取 API Key。可能不返回此字段。",[],{"name":124,"required":18,"type":20,"description":179,"nullable":27,"properties":180},"便于阅读的错误原因说明，可安全记录到日志或展示给最终用户；此返回值未本地化。",[],{"error":182},{"code":135,"message":20,"details":20,"hint":20},[],[185],{"APIKeyHeader":186},[],[188,191,194],{"lang":189,"source":190},"SDK","from visionstory import VisionStoryClient\n\nclient = VisionStoryClient.from_env()\ntranscript = client.transcribe_audio(\n    audio_url=\"https:\u002F\u002Fexample.com\u002Fmedia\u002Finterview.mp3\",\n    diarize=True,\n    srt=True,\n)\nprint(transcript)",{"lang":192,"source":193},"REST","import os\nimport requests\n\nresponse = requests.post(\n    \"https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Faudio\u002Ftranscribe\",\n    headers={\"X-API-Key\": os.environ[\"VISIONSTORY_API_KEY\"]},\n    json={\n      \"audio\": {\n        \"url\": \"https:\u002F\u002Fexample.com\u002Fmedia\u002Finterview.mp3\"\n      },\n      \"diarize\": True,\n      \"srt\": True\n    },\n)\nresponse.raise_for_status()\nprint(response.json())",{"lang":195,"source":196},"cURL","curl --request POST 'https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Faudio\u002Ftranscribe' \\\n  --header 'X-API-Key: $VISIONSTORY_API_KEY' \\\n  --header 'Content-Type: application\u002Fjson' \\\n  --data '{\n  \"audio\": {\n    \"url\": \"https:\u002F\u002Fexample.com\u002Fmedia\u002Finterview.mp3\"\n  },\n  \"diarize\": true,\n  \"srt\": true\n}'","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FF7B72\">from\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> visionstory \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">import\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VisionStoryClient\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">client \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> VisionStoryClient.from_env()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">transcript \u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\"> client.transcribe_audio(\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">    audio_url\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"https:\u002F\u002Fexample.com\u002Fmedia\u002Finterview.mp3\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">    diarize\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">True\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">    srt\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">True\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79C0FF\">print\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">(transcript)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"data\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"cost_credit\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">1\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"duration_sec\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">1\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"language\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"en\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"srt\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"1\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">\\n\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">00:00:00,000 --> 00:00:01,000\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">\\n\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">Hello world\u003C\u002Fspan>\u003Cspan style=\"color:#FF7B72\">\\n\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"text\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"Hello world\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"words\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: [\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">      {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"end_sec\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">0.5\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"speaker\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"speaker_0\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"start_sec\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">0\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"text\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"Hello\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">      },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">      {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"end_sec\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">1\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"speaker\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"speaker_0\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"start_sec\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\">0.5\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">        \"text\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"world\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">      }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">    ]\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">  },\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"message\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"success\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"server_time\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"2026-09-04T00:00:00Z\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1788547144642]