LipSync 2.0

Turn one video into content for every audience.

Match new speech to an existing video and create natural talking content without frame-by-frame editing. Use your own audio, generate a voice from text, localize into new languages, or build avatar-led video at production scale.

Capabilities

Every way to make
a video speak.

Build from text, a recorded voice, an existing clip, a portrait, or an avatar. DreamAPI connects lip sync with voice, translation, and motion tools so teams can move from one approved asset to a full library of ready-to-publish videos.

Text or audio to talking video

Upload a finished voice track or turn a script into narration with DreamAPI voice tools. LipSync 2.0 maps the speech to natural mouth movement and returns a polished MP4.

Keep the voice, change the language

Combine translation, voice cloning, and lip sync to localize a speaker without recording every line again. Preserve the character of the original delivery for each market.

Photo to talking video

Animate a portrait into a speaking presenter, direct an avatar's gestures, posture, and expression, or synchronize dialogue across multi-speaker content.

Showcase

One video,
every audience.

Match text or audio to a single source clip and produce natural talking content for every voice, language and channel — without frame-by-frame editing.

Tap the video to hear the voiceTap for sound
01

Natural lip movement

Match new speech to an existing clip with frame-accurate, believable mouth motion.

02

Voice preservation

Keep the speaker's voice across languages with translation and voice cloning.

03

Production scale

Build avatar-led and multi-speaker content through one API workflow.

Developer API

One request.
Every voice.

Send a video URL and an audio URL to the versioned LipSync 2.0 endpoint. Set width and height to zero to preserve the source dimensions, and enable facial enhancement when the final delivery needs extra clarity.

01

Submit a request

POST your video and audio URLs to /api/async/lipsync/2.0.

02

Receive taskId

The endpoint returns a task ID for tracking the asynchronous job.

03

Poll or callback

Retrieve the completed MP4 through polling or a configured callback.

Open full documentation
lipsync
const res = await fetch('https://api.newportai.com/api/async/lipsync/2.0', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer {{key}}',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    srcVideoUrl: 'https://d2t5pyzt5qvy2d.cloudfront.net/api/static_resource/prod/default/mq0MSmKgPGQQsxS9UovqH.mp4',
    audioUrl: 'https://d2t5pyzt5qvy2d.cloudfront.net/api/static_resource/prod/default/AoOVLxqINsl1dTAAhnmAW.wav',
    videoParams: { video_width: 0, video_height: 0, video_enhance: 1 }
  })
});
const { data: { taskId } } = await res.json();
curl -X POST 'https://api.newportai.com/api/async/lipsync/2.0' \
  -H 'Authorization: Bearer {{key}}' \
  -H 'Content-Type: application/json' \
  -d '{
    "srcVideoUrl": "https://d2t5pyzt5qvy2d.cloudfront.net/api/static_resource/prod/default/mq0MSmKgPGQQsxS9UovqH.mp4",
    "audioUrl": "https://d2t5pyzt5qvy2d.cloudfront.net/api/static_resource/prod/default/AoOVLxqINsl1dTAAhnmAW.wav",
    "videoParams": {
      "video_width": 0,
      "video_height": 0,
      "video_enhance": 1
    }
  }'
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.newportai.com/api/async/lipsync/2.0"))
    .header("Content-Type", "application/json")
    .header("Authorization", "Bearer {{key}}")
    .POST(HttpRequest.BodyPublishers.ofString("{\"srcVideoUrl\":\"https://d2t5pyzt5qvy2d.cloudfront.net/api/static_resource/prod/default/mq0MSmKgPGQQsxS9UovqH.mp4\",\"audioUrl\":\"https://d2t5pyzt5qvy2d.cloudfront.net/api/static_resource/prod/default/AoOVLxqINsl1dTAAhnmAW.wav\",\"videoParams\":{\"video_width\":0,\"video_height\":0,\"video_enhance\":1}}"))
    .build();
HttpResponse<String> res = client.send(request, HttpResponse.BodyHandlers.ofString());
import requests

response = requests.post(
    "https://api.newportai.com/api/async/lipsync/2.0",
    headers={
        "Content-Type": "application/json",
        "Authorization": "Bearer {{key}}"
    },
    json={
        "srcVideoUrl": "https://d2t5pyzt5qvy2d.cloudfront.net/api/static_resource/prod/default/mq0MSmKgPGQQsxS9UovqH.mp4",
        "audioUrl": "https://d2t5pyzt5qvy2d.cloudfront.net/api/static_resource/prod/default/AoOVLxqINsl1dTAAhnmAW.wav",
        "videoParams": {
            "video_width": 0,
            "video_height": 0,
            "video_enhance": 1
        }
    }
)
print(response.json())
Comparison

LipSync vs.
LipSync 2.0.

The versioned route focuses the upgrade on the part viewers notice first: a clearer, sharper result.

Model comparison

CapabilityLipSyncLipSync 2.0
API endpoint/api/async/lipsync/api/async/lipsync/2.0
Output focusStandard synchronizationImproved clarity and resolution
Facial enhancementSupportedSupported
Standard billing1 credit / second2 credits / second
Async workflowPolling or callbackPolling or callback
Pricing plans

Top up credits.
Pay as you generate.

One credit pool for every model on DreamAPI — video, image, avatar and editing. Buy a pack, then spend credits at the per-model rates below.

Credit packs are purchased on the DreamAPI pricing page.

Pricing

LipSync 2.0
pricing.

Credits are calculated per second of input audio. Original-FPS billing scales linearly with frame rate.

LipSync 2.0 — per second of input audio

Output modeFrame rateCredits / second
Default25 fps2.0
Original FPSUp to 60 fps(FPS ÷ 25) × 2
Original FPS example60 fps4.8
FAQ

AI lip sync,
explained.

What is AI lip sync?+

AI lip sync matches mouth movement in a video to a new audio track. It replaces manual frame-by-frame animation with an automated workflow that produces natural talking-video output.

Can I create a lip-sync video from text or audio?+

Yes. Upload your own audio, or generate narration from a script with DreamAPI voice tools and pass that audio into LipSync 2.0.

Can I keep the same voice across languages?+

Yes. Pair DreamAPI translation and voice-cloning workflows with LipSync 2.0 to create localized videos while preserving the speaker's vocal identity.

Can I make a talking video from one photo?+

Yes. DreamAPI's avatar workflow can animate a portrait into a speaking presenter and combine it with generated or uploaded audio.

Does DreamAPI support multiple speakers or faces?+

Yes. DreamAPI supports multi-speaker and multi-face production workflows for dialogue, group content, and scenes where more than one person needs synchronized speech.

What are common AI lip-sync use cases?+

Teams use it for multilingual dubbing, YouTube and short-form localization, training updates, personalized sales videos, UGC ad variants, avatar presenters, and music-led creative content.

How does the API return my video?+

The initial request returns a taskId. Use it with the Polling API, or configure a callback to receive the completed MP4 automatically.

How is LipSync 2.0 billed?+

The default 25 fps mode costs 2 credits per second. Original-FPS mode uses the formula (input FPS / 25) × 2 credits per second.

Turn one video into
reusable assets.

Turn a single approved asset into talking videos for every voice, market, campaign, lesson, and channel — through one production-ready AI platform.