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

# Sincronización de letras

> Vuelve a ejecutar la sincronización de letras en un proyecto existente

La sincronización de letras alinea el texto de la letra con el audio para que las palabras se resalten en el momento adecuado. Usa `client.projects.syncLyrics(...)` para volver a ejecutar la sincronización en cualquier proyecto con letras actualizadas, un modelo diferente o un nuevo idioma.

## `client.projects.syncLyrics(projectId, body, options?)`

Inicia una nueva operación de sincronización de letras.

```ts theme={null}
const operation = await client.projects.syncLyrics("prj_abc123", {
  lyricsSource: {
    type: "align",
    lyrics: "First line\nSecond line\n...",
    syncModel: "audioshake-alignment",
  },
});

const { project } = await client.projects.wait(operation);
console.log(project.alignments);
```

### Fuente de letras

Pasa un objeto `lyricsSource` en el cuerpo de la solicitud:

<Tabs>
  <Tab title="transcribe">
    Permite que el modelo transcriba las letras desde el audio.

    ```ts theme={null}
    {
      lyricsSource: {
        type: "transcribe",
        syncModel: "audioshake-transcription",
        language: "en",
      },
    }
    ```
  </Tab>

  <Tab title="align">
    Pasa las letras exactas. El modelo las alinea con el audio.

    ```ts theme={null}
    {
      lyricsSource: {
        type: "align",
        lyrics: "First line\nSecond line\n...",
        syncModel: "audioshake-alignment",
        language: "en",
      },
    }
    ```
  </Tab>
</Tabs>

### Modelos de sincronización

**Modelos de alineación** (úsalos con `align` cuando tengas letras precisas):

* `audioshake-alignment`
* `musicai-alignment`
* `musicai-alignment-subword`

**Modelos de transcripción** (úsalos con `transcribe`):

* `audioshake-transcription`
* `musicai-transcription`
* `wav2vec2`
* `whisper`

Consulta la [Referencia de modelos de sincronización](/es/desktop/sync-model) para obtener orientación.

## Ejemplo de principio a fin

```ts theme={null}
import { YoukaClient } from "@youka/sdk";
import { readFile } from "node:fs/promises";

const client = new YoukaClient({ apiKey: process.env.YOUKA_API_KEY! });

async function reAlignLyrics(projectId: string) {
  const lyrics = await readFile("./lyrics.txt", "utf8");

  const operation = await client.projects.syncLyrics(projectId, {
    lyricsSource: {
      type: "align",
      lyrics,
      syncModel: "audioshake-alignment",
      language: "en",
    },
  });

  const { project } = await client.projects.wait(operation);
  console.log("Updated lyrics with", project.lyrics?.length, "lines");
}
```

## Qué sigue

* [Stems](/es/sdk/stems) — vuelve a ejecutar la separación de stems antes de volver a sincronizar
* [Tasks](/es/sdk/tasks) — manejadores de operaciones y patrones de cancelación
* [Sync model reference](/es/desktop/sync-model) — elige el modelo adecuado
