先給塊配音,需要就加一首歌,最後把整條時間軸渲染出來。
把調用指向時間軸上的某個塊和你想要的聲音。返回的是音頻、它的精確時長,以及讓字幕落在音節上的 Whisper 逐詞時間。
export AUTOSTUD_API_KEY="sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
curl -X POST https://autostud.ai/api/v1/actions/timeline.generate_audio \
-H "Authorization: Bearer $AUTOSTUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_id": "0f4c8b71-2d95-47a3-9e6c-15b8ad7f3c20",
"block_id": "block_2",
"voice_settings": {
"voice_provider": "elevenlabs",
"voice_id": "rachel",
"playback_speed": 1
}
}'一段簡述、一種風格,或者你自己的歌詞。音樂是異步的:調用返回一個任務,music.completed 把托管好的音軌帶回來。
curl -X POST https://autostud.ai/api/v1/actions/music.generate \
-H "Authorization: Bearer $AUTOSTUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Lighthouse",
"style": "warm lo-fi, slow, no drums",
"prompt": "A calm bed under a voice-over about the sea",
"instrumental": true
}'
# Already wrote the words? Send lyrics instead of prompt.塊的長度由音頻決定,所以聲音一進去,renders.create 就把時間軸變成一條全部同步好的 mp4。
curl -X POST https://autostud.ai/api/v1/webhooks \
-H "Authorization: Bearer $AUTOSTUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.com/hooks/autostud",
"events": ["music.completed", "music.failed"],
"description": "Audio"
}'三個字段用來念一個塊,一個用來給歌曲下簡述。
video_id要配音的那個塊所在時間軸對應的視頻。
block_id哪個塊獲得聲音。它的時長跟著音頻走,而不是反過來。
voice_settings聲音本身:供應商、音色引用、語速。用你自己的供應商密鑰,這次生成不花錢。
prompt給 music.generate 用的歌曲簡述。如果歌詞已經寫好了,就改傳 lyrics。
聲音是一份目錄,不是寫死的清單。帶上你自己的供應商密鑰,生成免費;用我們的,就和其他一切一樣按積分計費。
語音直接在響應裡返回。歌曲更久,所以它觸發事件:注冊一次 Webhook,音軌就會托管好送達,積分也已經結清。
generation.completedmusic.completedmusic.failed能。Whisper 對齊跑在剛生成的音頻上,所以響應帶著完整精度的逐詞時間,絕不會四捨五入到秒。
可以,這正是雙模式的意義:用你的密鑰,生成消耗零積分,而音頻照樣被托管、對齊並放到塊上。
是分鐘而不是毫秒,所以音樂是異步的。如果你的技術棧用不了 Webhook,就用 music.get_task 讀回來。
由音頻決定。一個塊的長度就是裡面那段語音加上你配置的間隙,所以事後不需要手工對時間。