autovideo/docs/qwen3_asr_filetrans_guide.md
runst f176e9a402 feat: 初始化 AutoVideo 视频处理分析工具
- MiMo 2.5 分镜分析 (OpenAI格式调用)
- Qwen3-ASR-Flash FileTrans 转录+字级时间戳
- 一键 pipeline 脚本
- 杨梅/绿豆视频示例输出
- 完整文档和SOP
2026-07-27 15:25:59 +08:00

103 lines
2.9 KiB
Markdown

# Qwen3-ASR-Flash FileTrans API 调用指南
## 前置条件
```bash
pip install dashscope requests
export DASHSCOPE_API_KEY="your-key"
```
## 完整代码
```python
import requests
import dashscope
import json
import time
API_KEY = dashscope.api_key
AUDIO_PATH = "audio.wav"
# ===== Step 1: 上传音频获取临时 URL =====
upload_resp = dashscope.Files.upload(file_path=AUDIO_PATH, purpose="file-extract")
file_id = upload_resp.output["uploaded_files"][0]["file_id"]
file_info = dashscope.Files.get(file_id=file_id)
AUDIO_URL = file_info.output["url"]
# ===== Step 2: 提交转录任务 =====
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
"X-DashScope-Async": "enable" # 必须!
}
payload = {
"model": "qwen3-asr-flash-filetrans",
"input": {"file_url": AUDIO_URL}, # file_url 单数!
"parameters": {
"channel_id": [0],
"enable_words": True, # 字级时间戳!
"enable_itn": False,
"language": "zh"
}
}
resp = requests.post(
"https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription",
headers=headers, json=payload
)
task_id = resp.json()["output"]["task_id"]
# ===== Step 3: 轮询结果 =====
time.sleep(2)
result = requests.get(
f"https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}",
headers={"Authorization": f"Bearer {API_KEY}"}
).json()
# ===== Step 4: 获取转录 JSON =====
tr_url = result["output"]["result"]["transcription_url"]
trans_data = requests.get(tr_url).json()
# ===== Step 5: 输出 =====
for sent in trans_data["transcripts"][0]["sentences"]:
print(f"[{sent['begin_time']:>6}ms - {sent['end_time']:>6}ms] {sent['text']}")
for w in sent.get("words", []):
print(f" [{w['begin_time']:>6}ms - {w['end_time']:>6}ms] {w['text']}{w.get('punctuation','')}")
```
## 关键参数
| 参数 | 值 | 说明 |
|------|-----|------|
| `model` | `qwen3-asr-flash-filetrans` | 离线文件转录模型 |
| `input.file_url` | string | **单数**,音频文件的公网 URL |
| `parameters.enable_words` | `True` | **开启字级时间戳** |
| `parameters.language` | `"zh"` | 指定中文,提升准确率 |
| `X-DashScope-Async` | `"enable"` | **必须**,异步任务模式 |
## 返回结构
```json
{
"transcripts": [{
"text": "完整转录文本",
"content_duration": 29907,
"sentences": [{
"begin_time": 160,
"end_time": 1600,
"text": "句子文本",
"words": [
{"begin_time": 160, "end_time": 240, "text": "字", "punctuation": ""}
]
}]
}]
}
```
## 常见错误
| 错误 | 原因 | 解决 |
|------|------|------|
| `MalformedURL` | URL 不可访问 | 确保用 `Files.upload` 获取的 OSS URL |
| `InvalidParameter` | 用了 `file_urls` | 改为 `file_url` (单数) |
| `400: max_tokens too large` | 用了 chat API 参数 | FileTrans 不需要 max_tokens |