Llame a la API de reconocimiento de voz de Token Plan para transcribir audio a texto.
Archivo de audio o URL: $ARGUMENTS
## Pasos
1. Confirme que la entrada es una ruta local de audio o una URL accesible públicamente. El audio no debe tener una duración superior a 5 minutos. Para conocer los límites de formato y tamaño, consulte las especificaciones de audio en la documentación de reconocimiento de voz de Model Studio.
2. Instale las dependencias: pip install requests
3. Use la herramienta Bash para ejecutar el siguiente script de Python. El script lee TOKEN_PLAN_API_KEY primero y luego ANTHROPIC_AUTH_TOKEN. No muestre la clave ni la escriba en archivos ni en registros.
```python
import base64
import json
import os
import sys
from pathlib import Path
import requests
MIME_TYPES = {
"aac": "audio/aac",
"amr": "audio/amr",
"flac": "audio/flac",
"m4a": "audio/mp4",
"mp3": "audio/mpeg",
"ogg": "audio/ogg",
"opus": "audio/opus",
"wav": "audio/wav",
"webm": "audio/webm",
}
source = sys.argv[1]
key = os.environ.get("TOKEN_PLAN_API_KEY") or os.environ.get("ANTHROPIC_AUTH_TOKEN")
if not key:
raise SystemExit("Token Plan API Key not found.")
if source.startswith(("http://", "https://")):
audio_data = source
audio_format = Path(source.split("?")[0]).suffix.lstrip(".").lower() or "mp3"
else:
path = Path(source)
audio_format = path.suffix.lstrip(".").lower()
mime_type = MIME_TYPES.get(audio_format, f"audio/{audio_format}")
audio_data = f"data:{mime_type};base64,{base64.b64encode(path.read_bytes()).decode()}"
payload = {
"model": "qwen-audio-3.0-asr-flash",
"input": {
"messages": [
{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_data}}
],
}
]
},
"parameters": {"format": audio_format},
}
response = requests.post(
"https://token-plan.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation",
headers={"Authorization": f"Bearer {key}", "Content-Type": "application/json"},
json=payload,
timeout=300,
)
if not response.ok:
raise SystemExit(f"{response.status_code}: {response.text}")
result = response.json()
print(result.get("output", {}).get("text") or json.dumps(result, ensure_ascii=False, indent=2))
```
4. Muestre la transcripción. Si se necesitan resultados detallados, muestre los campos `sentence` y `words` en el JSON de respuesta.