> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hooked.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Talking Avatar Example

> Create talking avatar videos with AI avatars

## Overview

Create talking avatar videos with AI avatars that speak naturally. Talking Avatar combines AI avatars with voice synthesis and lipsync technology to create realistic spokesperson videos.

## Quick Example

```javascript theme={null}
const response = await fetch('https://api.hooked.so/v1/project/create/talking-avatar', {
  method: 'POST',
  headers: {
    'x-api-key': process.env.HOOKED_API_KEY,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    script: 'Check out this amazing product! It's super easy to use and I love the results.',
    avatarId: '2',
    voiceId: 'confident_voice_id'
  })
});

const data = await response.json();
console.log('Video ID:', data.data.videoId);
console.log('Project ID:', data.data.projectId);
```

## Complete Example

```javascript theme={null}
const createTalkingAvatar = async () => {
  const response = await fetch('https://api.hooked.so/v1/project/create/talking-avatar', {
    method: 'POST',
    headers: {
      'x-api-key': process.env.HOOKED_API_KEY,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      name: 'Welcome Video',
      script: 'Hey there! Thanks for checking out our channel. We create awesome content every week, so make sure to subscribe and hit that notification bell!',
      avatarId: '2',
      voiceId: 'confident_voice_id',
      lipsyncModel: 'pro',
      caption: {
        preset: 'tiktok',
        alignment: 'bottom',
        disabled: false
      },
      audio: {
        speed: 1,
        stability: 0.5,
        similarityBoost: 0.75,
        style: 0,
        useSpeakerBoost: true
      },
      musicId: 'music_upbeat_01',
      webhook: 'https://yoursite.com/webhook',
      metadata: {
        channelId: 'my-channel',
        videoType: 'welcome'
      }
    })
  });

  return await response.json();
};
```

## Tips for Talking Avatar Videos

<Tip>**Be authentic**: Write scripts that sound natural and conversational, not scripted</Tip>
<Tip>**Keep it short**: 15-60 seconds works best for social media content</Tip>
<Tip>**Choose the right lipsync model**: Use `base` for faster processing, `pro` for higher quality synchronization</Tip>
<Tip>**Match voice to avatar**: Choose a voice that matches the avatar's appearance for authenticity</Tip>
<Tip>**Use webhooks**: Always use webhooks in production instead of polling for video status</Tip>
<Tip>**Customize audio settings**: Adjust speed, stability, and similarity boost to fine-tune the voice output</Tip>

## Effective Script Formulas

| Formula                     | Example                                                                |
| --------------------------- | ---------------------------------------------------------------------- |
| **Conversational Greeting** | "Hey! How's it going? I wanted to share something cool with you..."    |
| **Personal Story**          | "So I tried this yesterday and I was blown away..."                    |
| **Quick Tip**               | "Quick tip that changed everything for me..."                          |
| **Testimonial Style**       | "I've been using this for a month now and here's my honest review\..." |
| **Friendly Update**         | "Hey everyone! Just wanted to give you a quick update..."              |

## Lipsync Models

| Model  | Description                                           | Best For                                                     |
| ------ | ----------------------------------------------------- | ------------------------------------------------------------ |
| `base` | Standard lipsync quality, faster processing           | Quick videos, testing, lower priority content                |
| `pro`  | Higher quality lipsync, more accurate synchronization | Professional content, final productions, high-quality output |

## Audio Settings

The `audio` object allows you to fine-tune the voice output:

```javascript theme={null}
audio: {
  speed: 1,              // Voice speed multiplier (0.7 to 1.2)
  stability: 0.5,        // Voice stability (0 to 1)
  similarityBoost: 0.75, // Voice similarity boost (0 to 1)
  style: 0,             // Voice style exaggeration (0 to 1)
  useSpeakerBoost: true // Enable speaker boost for clearer audio
}
```

## Caption Presets

Available caption presets for the `caption.preset` field:

| Preset    | Description                                              |
| --------- | -------------------------------------------------------- |
| `default` | Default caption style with bold text and shadow effects  |
| `beast`   | Bold uppercase style with Komika font                    |
| `umi`     | Yellow glowing text style                                |
| `tiktok`  | Viral & trendy style, perfect for social media           |
| `wrap1`   | Wrapped style with red background highlight              |
| `wrap2`   | Wrapped style with blue background highlight (uppercase) |
| `ariel`   | Bold uppercase style with purple highlight               |
| `hooked`  | Brand style with purple background                       |
| `classic` | Clean, simple captions with black background (Default)   |
| `active`  | Green background with bold text                          |
| `bubble`  | White background bubble style                            |
| `glass`   | Glassmorphic transparency effect                         |
| `comic`   | Comic Sans font with colorful style                      |
| `glow`    | Pink and orange glow effects                             |
| `pastel`  | Soft pastel pink background                              |
| `neon`    | Green neon glow effect                                   |
| `retroTV` | Retro TV style with cyan glow                            |
| `red`     | Red glow effect with white text                          |
| `marker`  | Yellow marker/highlighter style                          |
| `modern`  | Contemporary white background style                      |
| `blue`    | Blue background style                                    |
| `vivid`   | Vibrant pink background with uppercase text              |

***

## Use Cases

* **Testimonials**: Authentic-looking customer testimonials
* **Social Media Content**: TikTok, Instagram Reels, YouTube Shorts
* **Personal Messages**: Video messages for customers or team
* **Quick Updates**: Company updates or announcements
* **Educational Content**: Quick tips or how-to videos
* **Product Presentations**: Showcase products with talking avatars

## Handling the Webhook Response

```javascript theme={null}
// Express.js webhook handler
app.post('/webhook', (req, res) => {
  const { data, status, message } = req.body;

  if (status === "COMPLETED") {
    const { videoId, status: videoStatus, url, shareUrl, metadata } = data;
    console.log('Video completed!');
    console.log('Video ID:', videoId);
    console.log('Download URL:', url);
    console.log('Share URL:', shareUrl);
    console.log('Channel:', metadata.channelId);

    // Save to your database, notify team, etc.
  }

  res.status(200).send('OK');
});
```
