API語音合成 API

給視頻一把聲音
和一條配樂,只用一把密鑰

一次調用就把時間軸上的一句話念出來,並帶回 Whisper 的逐詞對齊,字幕能落在音節上。另一次調用寫下墊在下面的那首歌。四家語音供應商,各自一個端點。

POSThttps://autostud.ai/api/v1/actions/timeline.generate_audio

三次調用,從靜音到配樂

先給塊配音,需要就加一首歌,最後把整條時間軸渲染出來。

  1. 1

    給一個塊配音

    把調用指向時間軸上的某個塊和你想要的聲音。返回的是音頻、它的精確時長,以及讓字幕落在音節上的 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
        }
      }'
  2. 2

    寫這首歌

    一段簡述、一種風格,或者你自己的歌詞。音樂是異步的:調用返回一個任務,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.
  3. 3

    一起渲染

    塊的長度由音頻決定,所以聲音一進去,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。

四家供應商,同一種調用形狀

聲音是一份目錄,不是寫死的清單。帶上你自己的供應商密鑰,生成免費;用我們的,就和其他一切一樣按積分計費。

ElevenLabsGoogleCartesiaFish Audio

歌曲會自己匯報

語音直接在響應裡返回。歌曲更久,所以它觸發事件:注冊一次 Webhook,音軌就會托管好送達,積分也已經結清。

generation.completedmusic.completedmusic.failed

開發者最先問的問題

能拿到逐詞時間嗎?

能。Whisper 對齊跑在剛生成的音頻上,所以響應帶著完整精度的逐詞時間,絕不會四捨五入到秒。

可以用我自己的 ElevenLabs 密鑰嗎?

可以,這正是雙模式的意義:用你的密鑰,生成消耗零積分,而音頻照樣被托管、對齊並放到塊上。

一首歌要多久?

是分鐘而不是毫秒,所以音樂是異步的。如果你的技術棧用不了 Webhook,就用 music.get_task 讀回來。

塊的時長會怎樣?

由音頻決定。一個塊的長度就是裡面那段語音加上你配置的間隙,所以事後不需要手工對時間。

準備好開始了嗎?

幾分鐘就能產出爆紅影片。免費試用不需要信用卡。

安全付款
立即使用
隨時取消