Gere vídeos com rostos animados a partir de imagens de retrato e áudio de voz. Envie uma imagem e um arquivo de áudio para receber um vídeo com o rosto animado em sincronia com a fala.
Esta API aplica-se apenas à região China (Beijing). Use uma chave de API da região China (Beijing).
Certifique-se de que as imagens e os arquivos de áudio enviados estejam em conformidade legal e que você possua as permissões necessárias para seu uso.
Processe a imagem de entrada com a API de detecção de imagem EMO para obter as coordenadas da área do rosto (face_bbox)e daárea dinâmica (ext_bbox). Ambos são parâmetros obrigatórios.
Modo de processamento assíncrono. Defina como enable. As solicitações HTTP suportam apenas processamento assíncrono. Sem este cabeçalho, as solicitações falham com a mensagem "current user api does not support synchronous calls".
Authorization
string
Obrigatório
Credencial de autenticação no formato Bearer {API_KEY}, usando uma chave de API do Model Studio. Exemplo: Bearer sk-xxxx.
Content-Type
string
Obrigatório
Tipo de conteúdo da solicitação. Defina como application/json.
URL da imagem de retrato. O modelo recorta a imagem usando ext_bbox. A proporção da área recortada determina a resolução do vídeo de saída. Consulte Requisitos de imagem.
audio_url
string
Obrigatório
URL do arquivo de áudio de voz para inferência do modelo EMO. Consulte Requisitos de áudio.
face_bbox
array
Obrigatório
Coordenadas da caixa delimitadora da área do rosto no formato [x1, y1, x2, y2] (cantos superior esquerdo e inferior direito). Obtenha esses valores do campo face_bbox na resposta da API de detecção de imagem EMO. Exemplo: [302, 286, 610, 593].
ext_bbox
array
Obrigatório
Coordenadas da caixa delimitadora da área dinâmica no formato [x1, y1, x2, y2] (cantos superior esquerdo e inferior direito). A proporção deve ser 1:1 ou 3:4. Obtenha esses valores do campo ext_bbox na resposta da API de detecção de imagem EMO. Exemplo: [71, 9, 840, 778].
A origem das coordenadas (0,0) está no canto superior esquerdo da imagem. O eixo x se estende para a direita e o eixo y se estende para baixo.
Validade do task_id: Os IDs de tarefa permanecem válidos por 24 horas após a criação. Após a expiração, a API retorna o status UNKNOWN.
Fluxo de status da tarefa:PENDING → RUNNING → SUCCEEDED ou FAILED.
Consulta periódica: A geração do vídeo leva alguns minutos. Limite da API de consulta: 20 QPS. Faça consultas a cada 15 segundos ou mais.
Validade da video_url: As URLs de vídeo permanecem válidas por 24 horas após o sucesso da tarefa. Baixe e transfira para um armazenamento permanente (por exemplo, O que é o OSS?) imediatamente.
curl -X GET \--header "Authorization: Bearer $DASHSCOPE_API_KEY" \https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
Copy
import requestsimport os# 1. Get the API key from the environment variable.api_key = os.getenv("DASHSCOPE_API_KEY")# 2. Replace this with the actual task ID.task_id = "a8532587-fa8c-4ef8-82be-xxxxxx"# 3. Prepare the request.url = f"https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}"headers = { 'Authorization': f'Bearer {api_key}'}# 4. Send a GET request.response = requests.get(url, headers=headers)# 5. Print the response.print(response.json())
Copy
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.nio.charset.StandardCharsets;import java.util.stream.Collectors;/** * Requirements: * - Java 8 or later. * - The DASHSCOPE_API_KEY environment variable must be set at runtime. **/public class TaskStatusChecker { public static void main(String[] args) throws IOException { // 1. Get the API key from the environment variable. String apiKey = System.getenv("DASHSCOPE_API_KEY"); // 2. Replace this with the actual task ID. String taskId = "a8532587-fa8c-4ef8-82be-xxxxxx"; // 3. Prepare the request. String urlString = "https://dashscope.aliyuncs.com/api/v1/tasks/" + taskId; // 4. Create a connection and send a GET request. URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("Authorization", "Bearer " + apiKey); // 5. Get and print the server response. int statusCode = connection.getResponseCode(); System.out.println("Status Code: " + statusCode); InputStream inputStream = (statusCode >= 200 && statusCode < 300) ? connection.getInputStream() : connection.getErrorStream(); String responseBody; try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8))) { responseBody = reader.lines().collect(Collectors.joining("\n")); } System.out.println("Response Body: " + responseBody); connection.disconnect(); }}
Copy
// The node-fetch package is required.// npm install node-fetch@2const fetch = require('node-fetch');// 1. Get the API key from the environment variable.const apiKey = process.env.DASHSCOPE_API_KEY;// 2. Replace this with the actual task ID.const taskId = "a8532587-fa8c-4ef8-82be-xxxxxx";// 3. Prepare the request.const url = `https://dashscope.aliyuncs.com/api/v1/tasks/${taskId}`;const headers = { 'Authorization': `Bearer ${apiKey}`};// 4. Send a GET request.fetch(url, { headers: headers}).then(response => response.json()).then(data => { // 5. Print the response. console.log(data);});