Skip to main content
Sử dụng @youka/sdk@youka/cli phiên bản 0.2.0 trở lên cho các ví dụ này. Các dự án được tạo qua API vẫn sẽ có sẵn trong thư viện Youka của bạn.

Chọn workflow và mô hình

kind chọn workflow của dự án. karaoke tách stem. lyric-video dùng âm thanh gốc và không tính phí tách. Nếu bỏ qua kind thì sẽ giữ nguyên hành vi karaoke hiện có. Xử lý lời bài hát là một lựa chọn riêng: căn chỉnh, phiên âm, hoặc không xử lý. Hãy khám phá các mô hình và điều kiện đủ của tài khoản trước khi chọn mô hình.
Phản hồi mô tả ID mô hình, các thao tác, đầu vào âm thanh, ngữ nghĩa của văn bản được cung cấp, workflow, hỗ trợ ngôn ngữ, và các tính năng bắt buộc. suppliedTextHandling phân biệt căn chỉnh, keyterm của nhà cung cấp, và chỉnh sửa sau khi phiên âm. Điều kiện đủ phản ánh tài khoản đã xác thực. Thông tin khám phá mô tả hỗ trợ đã được cấu hình, không phải là cam kết uptime của nhà cung cấp. Xác thực yêu cầu và báo giá vẫn là nguồn có thẩm quyền. Các mô hình yêu cầu vocal đã được tách riêng không thể xử lý video lời bài hát không tách. Hãy dùng chúng trong workflow karaoke với một mô hình tách tạo ra vocals. Wav2Vec2 là mô hình căn chỉnh. ElevenLabs Scribe là mô hình phiên âm. Văn bản phiên âm được cung cấp chỉ là hướng dẫn, không đảm bảo đầu ra sẽ giống hệt.

Tạo và báo giá dự án

Căn chỉnh lời bài hát đã cung cấp bằng một mô hình được quảng bá cho video lời bài hát.
Giữ tách stem cho các dự án karaoke. Bỏ --kind hoặc truyền --kind karaoke và chọn --split-model. Dùng --mode none để tạo mà không xử lý lời bài hát. Các yêu cầu lyric-video sẽ từ chối các tùy chọn tách. Báo giá cùng nguồn, workflow, và tùy chọn xử lý trước khi tạo.
Báo giá kiểm tra cùng mức tương thích mô hình, chính sách ngôn ngữ, các tính năng tài khoản, thời lượng, và quy tắc lưu trữ như khi tạo. Phân rã tín dụng của nó có số tín dụng tách bằng 0 cho video lời bài hát. Báo giá không giữ chỗ năng lực xử lý hay tín dụng; trạng thái tài khoản có thể thay đổi trước khi tạo.

Sửa thời gian mà không chạy job xử lý

Đọc căn chỉnh qua GET /projects/{projectId}/alignments, sau đó lấy tài nguyên đã chọn qua GET /projects/{projectId}/alignments/{alignmentId}. Danh sách chứa alignments, selectedAlignmentId, và selectionRevision. Mỗi tài nguyên bao gồm payload thời gian, revision, selected, và selectionRevision. Các cập nhật sẽ thay thế toàn bộ đối tượng alignment. Chúng không chạy đồng bộ hóa hoặc tạo một khoản giữ tín dụng xử lý. Khi chỉnh sửa, hãy giữ nguyên ID, văn bản, chỉ mục dòng/từ/subword, thông tin ca sĩ, và bản dịch. Thời gian là giây thập phân tuyệt đối. Áp dụng mọi chỉnh sửa mong muốn một lần trong các giá trị gửi lên. Đừng cộng lại cùng một chỉnh sửa đó lần nữa dưới dạng export offset.
Dùng select: true để lưu và chọn một cách nguyên tử. Để chọn các mốc thời gian hiện có mà không thay thế chúng, hãy gọi client.projects.alignments.select(projectId, alignmentId, { expectedRevision, expectedSelectionRevision }). Revision của căn chỉnh bảo vệ nội dung thời gian. Selection revision bảo vệ việc căn chỉnh nào đang hoạt động. Token cũ sẽ tạo HTTP 409. Hãy lấy tài nguyên mới nhất, so sánh các chỉnh sửa, và gửi một bản thay thế có chủ đích. Đừng tự động làm mới token và ghi đè thay đổi của một người chỉnh sửa khác. CLI chấp nhận một tệp JSON hoặc standard input. Tệp import chứa { "alignment": { "items": [...] }, "expectedRevision": "..." }. Thêm selectexpectedSelectionRevision khi chọn theo cách nguyên tử. Các tài nguyên đã export cũng chứa metadata phản hồi, vì vậy hãy trích các trường của request trước khi import.
Import chấp nhận tối đa 100,000 item. Mọi thời điểm kết thúc phải lớn hơn thời điểm bắt đầu. Số không hợp lệ, thời gian âm, chỉ mục không hợp lệ, khoảng có độ dài 0 hoặc bị đảo ngược, và các mốc thời gian vượt quá thời lượng dự án đã biết sẽ bị từ chối. Các chồng lấn hợp lệ và thời gian song ca vẫn được hỗ trợ. Mở lại hoặc làm mới một dự án ứng dụng đang mở sẵn sau khi có chỉnh sửa bên ngoài.

Xuất một phiên bản đã chọn

versionId là tùy chọn trong các yêu cầu export và cập nhật settings, và trong truy vấn GET của settings. Nếu bỏ qua thì giữ nguyên hành vi phiên bản chính. Căn chỉnh được chọn thuộc về dự án, còn styling và settings thuộc về phiên bản đã chọn.
Các handle thao tác export cloud và payload local bao gồm versionId, alignmentId, và alignmentRevision. Những trường này xác định snapshot thời gian được dùng cho export hoặc payload đã chuẩn bị đó. Mỗi lần chuẩn bị sẽ đọc trạng thái hiện tại, vì vậy một lần export khác về sau có thể quan sát các chỉnh sửa mới hơn. Hãy lưu payload trả về khi một renderer bên ngoài phải render chính xác snapshot đã chuẩn bị đó, và làm mới payload khi các signed media URL hết hạn. Đầu ra local trong suốt dùng ProRes 4444 trong container MOV. --mute-all ánh xạ mọi stem của dự án về âm lượng 0. Im lặng và việc không có audio stream là hai thuộc tính đầu ra khác nhau; hãy kiểm tra tệp đã render nếu một công cụ downstream yêu cầu một trong hai. Render local không tiêu thụ tín dụng export cloud và vẫn phụ thuộc vào điều kiện đủ tính năng hiện có. Word timing, global audio offsets, và lyric anticipation là các setting riêng biệt. Các layout hiện có điều khiển việc hiển thị của từng dòng. Bản phát hành này không cam kết một khoảng hiển thị cố định cho mọi dòng hoặc thêm một API đính kèm backing-track riêng.

Vận hành một catalogue an toàn

Giữ một manifest với ID item ổn định, fingerprint của nguồn, cài đặt thao tác, idempotency key, ID dự án/task, và kết quả terminal gần nhất. Chỉ tái sử dụng một key cho các lần retry của cùng một request. Lưu kết quả tạo trước khi chờ hoàn tất để khi khởi động lại có thể tiếp tục polling. Upload và chuẩn bị tệp local có vòng đời riêng; idempotency key khi tạo không khử trùng lặp mọi lần upload. Ví dụ runnable catalogue example chấp nhận các input file ID đã upload sẵn và lưu một checkpoint cho mỗi item. Một manifest trông như sau.
Tải ví dụ về dưới dạng catalogue.ts. Cài dependency và đặt YOUKA_API_KEY. Dùng một dự án Node.js với "type": "module" trong package.json.
Chạy lại với cùng manifest và thư mục state để tiếp tục polling các job đã được chấp nhận hoặc retry một lần gửi không chắc chắn với key gốc của nó. Các job đã hoàn tất và thất bại được ghi lại và sẽ bị bỏ qua. Các request thay đổi yêu cầu ID item mới. Khóa thư mục ngăn hai tiến trình gửi cùng một manifest đồng thời. Sau một lần crash cứng, chỉ xóa .lock bị stale sau khi xác nhận PID được lưu trong đó không còn chạy. Bắt đầu với một item đang xử lý. Chỉ tăng số worker có giới hạn sau khi đo độ trễ xử lý và phản hồi rate-limit cho tài khoản của bạn. Retry lỗi truyền tải và rate limit với backoff, tôn trọng Retry-After. Đừng retry mù quáng các lỗi validation, xung đột timing, hoặc các thất bại xử lý ở trạng thái terminal. Lỗi xác thực yêu cầu thông tin đăng nhập hợp lệ; chúng không có nghĩa là một job xử lý đã thất bại. Giữ nguyên polling cloud task hiện có và xử lý failure-credit. Không có batch endpoint, cam kết webhook, thay đổi giá, thay đổi giấy phép, hay chính sách lưu trữ nào được giới thiệu ở đây.