> ## 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.

# Sincronizzazione testi

> Esegui di nuovo la sincronizzazione dei testi su un progetto esistente

La sincronizzazione dei testi allinea il testo dei testi all’audio in modo che le parole si evidenzino nel momento giusto. Usa `client.projects.syncLyrics(...)` per rieseguire la sincronizzazione su qualsiasi progetto con testi aggiornati, un modello diverso o una nuova lingua.

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

Avvia una nuova operazione di sincronizzazione dei testi.

```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);
```

### Sorgente dei testi

Passa un oggetto `lyricsSource` nel corpo della richiesta:

<Tabs>
  <Tab title="transcribe">
    Lascia che il modello trascriva i testi dall’audio.

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

  <Tab title="align">
    Fornisci i testi esatti. Il modello li allinea all’audio.

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

### Modelli di sincronizzazione

**Modelli di allineamento** (da usare con `align` quando hai testi accurati):

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

**Modelli di trascrizione** (da usare con `transcribe`):

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

Consulta la guida in [Riferimento dei modelli di sincronizzazione](/it/desktop/sync-model).

## Esempio end-to-end

```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");
}
```

## Cosa fare dopo

* [Stems](/it/sdk/stems) — esegui di nuovo la separazione degli stem prima di risincronizzare
* [Tasks](/it/sdk/tasks) — handle delle operazioni e pattern di interruzione
* [Sync model reference](/it/desktop/sync-model) — scegli il modello giusto
