Skip to main content
تعمل مزامنة كلمات الأغاني على محاذاة نص الكلمات مع الصوت بحيث يتم تمييز الكلمات في اللحظة المناسبة. استخدم client.projects.syncLyrics(...) لإعادة تشغيل المزامنة على أي مشروع عند تحديث الكلمات، أو استخدام نموذج مختلف، أو اختيار لغة جديدة.

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

بدء عملية مزامنة كلمات أغاني جديدة.
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);

مصدر الكلمات

مرّر كائن lyricsSource في جسم الطلب:
دع النموذج يقوم بتفريغ كلمات الأغاني من الصوت.
{
  lyricsSource: {
    type: "transcribe",
    syncModel: "audioshake-transcription",
    language: "en",
  },
}

نماذج المزامنة

نماذج المحاذاة (استخدمها مع align عندما تكون لديك كلمات دقيقة):
  • audioshake-alignment
  • musicai-alignment
  • musicai-alignment-subword
نماذج التفريغ (استخدمها مع transcribe):
  • audioshake-transcription
  • musicai-transcription
  • wav2vec2
  • whisper
راجع مرجع نموذج المزامنة للإرشادات.

مثال شامل من البداية إلى النهاية

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

ما التالي

  • Stems — أعد تشغيل فصل المسارات قبل إعادة المزامنة
  • Tasks — مقابض العمليات وأنماط الإلغاء
  • Sync model reference — اختر النموذج المناسب