file_type=audio, first call STS API to obtain upload credentials, upload audio to object storage, then call this API to submit object_key); TTS Text (file_type=tts, directly submit text; server asynchronously synthesizes audio and transcodes). Two-Phase Recording Scenario (create_scene=record): frontend records → first call this API with visible=false to create placeholder index → user confirms save, then call edit API to set visible=true; resource only appears in list. Import Scenario (create_scene=import): directly create with visible=true.{
"name": "Do Not Approach",
"file_type": "audio",
"create_scene": "import",
"object_key": "speaker/{org}/{prj}/abc.mp3",
"size": 524288,
"visible": true,
"need_opus": true
}curl --location '/openapi/v2.0/speaker/api/v1/workspaces//resources' \
--header 'x-user-token;' \
--header 'x-user-token;' \
--header 'X-Request-Id: 5dff27bd-693c-4ace-979d-e26e920d497a' \
--header 'X-Request-Id;' \
--header 'X-Project-Uuid;' \
--header 'Content-Type: application/json' \
--data '{
"name": "Do Not Approach",
"file_type": "audio",
"create_scene": "import",
"object_key": "speaker/{org}/{prj}/abc.mp3",
"size": 524288,
"visible": true,
"need_opus": true
}'{
"code": 0,
"message": "success",
"data": {
"id": 103,
"name": "Do Not Approach",
"file_type": "audio",
"object_key": "speaker/{org}/{prj}/abc.mp3",
"object_url": "https://oss.example.com/speaker/.../abc.mp3?signed=...",
"size": 524288,
"state": "transcoding",
"md5_sum": "",
"created_at": 1717890200
}
}