Skip to main content
Đồng bộ lời bài hát căn chỉnh văn bản lời với âm thanh để các từ được tô sáng đúng thời điểm. Dùng client.projects.syncLyrics(...) để chạy lại đồng bộ cho bất kỳ dự án nào khi bạn cập nhật lời, dùng một model khác, hoặc đổi ngôn ngữ.

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

Bắt đầu một thao tác đồng bộ lời bài hát mới.
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);

Nguồn lời bài hát

Truyền một object lyricsSource trong body của request:
Để model phiên âm lời bài hát từ âm thanh.
{
  lyricsSource: {
    type: "transcribe",
    syncModel: "audioshake-transcription",
    language: "en",
  },
}

Các model đồng bộ

Model căn chỉnh (dùng với align khi bạn có lời bài hát chính xác):
  • audioshake-alignment
  • musicai-alignment
  • musicai-alignment-subword
Model phiên âm (dùng với transcribe):
  • audioshake-transcription
  • musicai-transcription
  • wav2vec2
  • whisper
Xem Sync model reference để được hướng dẫn.

Ví dụ end-to-end

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

Tiếp theo

  • Stems — chạy lại tách stem trước khi đồng bộ lại
  • Tasks — handle thao tác và các mẫu hủy
  • Sync model reference — chọn đúng model