Skip to main content
Синхронизация текста выравнивает текст песни по аудио, чтобы слова подсвечивались в нужный момент. Используйте client.projects.syncLyrics(...), чтобы повторно запустить синхронизацию для любого проекта с обновлённым текстом, другой моделью или новым языком.

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

Запустите новую операцию синхронизации текста.

Источник текста

Передайте объект lyricsSource в теле запроса:
Позвольте модели транскрибировать текст из аудио.

Модели синхронизации

Модели выравнивания (используйте с align, когда у вас точный текст):
  • audioshake-alignment
  • musicai-alignment
  • musicai-alignment-subword
  • wav2vec2
Модели транскрибации (используйте с transcribe):
  • audioshake-transcription
  • elevenlabs-transcription
  • musicai-transcription
  • whisper
Рекомендации см. в разделе Choose a lyrics sync model.

Полный пример

Что дальше

  • Stems — повторно выполните разделение на стемы перед повторной синхронизацией
  • Tasks — хэндлы операций и паттерны отмены
  • Choose a lyrics sync model — выберите подходящую модель

Узнайте о поддерживаемых моделях

client.capabilities.get() возвращает поддержку настроенных моделей и соответствие аутентифицированного аккаунта требованиям. Каждая модель описывает свою операцию, inputAudio, поддерживаемые workflows, языковую политику, требуемые возможности и suppliedTextHandling. Доступность не является гарантией аптайма провайдера. Транскрибация принимает необязательные lyrics в качестве опорного текста. Ответ capabilities различает ключевые термины провайдера и исправления после транскрибации. Опорный текст не гарантирует идентичный результат. Для точного использования предоставленного текста выберите подходящую модель выравнивания.

Редактирование существующих таймингов

Используйте client.projects.alignments.list(projectId) и .get(projectId, alignmentId), чтобы читать типизированные ресурсы таймингов. .update(projectId, alignmentId, body) заменяет тайминги без задания синхронизации или удержания кредитов на обработку. Тело обновления требует полный alignment и expectedRevision. Добавьте select: true и expectedSelectionRevision, чтобы атомарно выбрать сохранённое выравнивание. .select(projectId, alignmentId, { expectedRevision, expectedSelectionRevision }) выбирает существующие тайминги. Обе ревизии защищают от параллельных правок. Устаревшая ревизия возвращает HTTP 409. При редактировании сохраняйте IDs элементов, текст, индексы, исполнителей и переводы. Времена указаны в абсолютных секундах. Каждое окончание должно быть больше своего начала. Недопустимые, отрицательные или выходящие за длительность тайминги отклоняются. Поддерживаются корректные перекрытия и дуэтные тайминги. Полный пример редактирования таймингов и обработки конфликтов см. в Automate lyric videos.