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 读回来。

块的时长会怎样?

由音频决定。一个块的长度就是里面那段语音加上你配置的间隙,所以事后不需要手工对时间。

準備好開始了嗎?

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

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