CosyVoice eventos do lado do servidor
CosyVoice referência de evento do servidor WebSocket de síntese de fala em tempo real
Guia do usuário: Para introdução do modelo e recomendações de seleção, consulte Síntese de fala.
tarefa iniciada
Após o cliente enviar o run-task comando, o servidor retorna um task-started evento para sinalizar que a tarefa foi iniciada. O cliente poderá enviar comandos subsequentes somente após receber esse evento.
{
"header": {
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"event": "task-started",
"attributes": {}
},
"payload": {}
}
| Campo | Tipo | Descrição |
|---|---|---|
| cabeçalho.task_id | corda | O ID da tarefa gerado pelo cliente. |
| cabeçalho.evento | corda | Tipo de evento. Valor fixo: task-started. |
| carga útil | objeto | Objeto vazio. |
gerado por resultado
Depois que o cliente envia o texto, o servidor retorna continuamente result-generated eventos. Cada evento carrega metadados em nível de frase.
sentence-begin
```json
{
"header": {
"task_id": "3f2d5c86-0550-45c0-801f-xxxxxxxxxx",
"event": "result-generated",
"attributes": {}
},
"payload": {
"output": {
"sentence": {
"index": 0,
"words": []
},
"type": "sentence-begin",
"original_text": "Before my bed, moonlight shines bright,"
}
}
}
```
sentence-synthesis
```json
{
"header": {
"task_id": "3f2d5c86-0550-45c0-801f-xxxxxxxxxx",
"event": "result-generated",
"attributes": {}
},
"payload": {
"output": {
"sentence": {
"index": 0,
"words": []
},
"type": "sentence-synthesis"
}
}
}
```
sentence-end
```json
{
"header": {
"task_id": "3f2d5c86-0550-45c0-801f-xxxxxxxxxx",
"event": "result-generated",
"attributes": {}
},
"payload": {
"output": {
"sentence": {
"index": 0,
"words": [
{
"text": "Before",
"begin_index": 0,
"end_index": 1,
"begin_time": 0,
"end_time": 263
}
]
},
"type": "sentence-end",
"original_text": "Before my bed, moonlight shines bright,"
},
"usage": {
"characters": 6
}
}
}
```
| Campo | Tipo | Descrição |
|---|---|---|
| cabeçalho.task_id | corda | O ID da tarefa gerado pelo cliente. |
| cabeçalho.evento | corda | Tipo de evento. Valor fixo: result-generated. |
| carga útil.output.type | corda | Tipo de subevento. Valores válidos: sentence-begin (início da frase, retorna o texto a ser sintetizado), sentence-synthesis (marca um quadro de áudio, um quadro de áudio é transmitido pelo canal binário WebSocket imediatamente após cada evento), sentence-end (fim da frase, retorna o conteúdo do texto e a contagem cumulativa de caracteres). |
| carga útil.output.sentence.index | inteiro | Índice de sentença, começando em 0. |
| carga útil.output.sentence.words | matriz | Matriz de carimbo de data/hora em nível de palavra. |
| carga útil.output.sentence.words[].texto | corda | Conteúdo textual da palavra. |
| carga útil.output.sentence.words[].begin_index | inteiro | Índice de caracteres iniciais da palavra dentro da frase. Começa em 0. |
| carga útil.output.sentence.words[].end_index | inteiro | Índice de caracteres finais da palavra dentro da frase. Começa em 1. |
| carga útil.output.sentence.words[].begin_time | inteiro | Hora de início do áudio correspondente da palavra, em milissegundos. |
| carga útil.output.sentence.words[].end_time | inteiro | Hora de término do áudio correspondente da palavra, em milissegundos. |
| carga útil.output.original_text | corda | Texto da frase segmentado para síntese. |
| carga útil.usage.characters | inteiro | Número cumulativo de caracteres cobrados (retornado no evento de final de frase). |
tarefa concluída
O servidor retorna um task-finished evento quando a tarefa for concluída. O cliente pode então fechar a conexão WebSocket ou reutilizá-la para iniciar uma nova tarefa.
{
"header": {
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"event": "task-finished",
"attributes": {
"request_uuid": "0a9dba9e-d3a6-45a4-be6d-xxxxxxxxxxxx"
}
},
"payload": {
"usage": {
"characters": 13
}
}
}
| Campo | Tipo | Descrição |
|---|---|---|
| cabeçalho.task_id | corda | O ID da tarefa gerado pelo cliente. |
| cabeçalho.evento | corda | Tipo de evento. Valor fixo: task-finished. |
| carga útil.usage.characters | inteiro | Número cumulativo de caracteres faturados. |
tarefa falhou
O servidor retorna um task-failed evento quando a tarefa falha. Ao receber este evento, o cliente deve fechar a conexão WebSocket e tratar o erro.
{
"header": {
"task_id": "2bf83b9a-baeb-4fda-8d9a-xxxxxxxxxxxx",
"event": "task-failed",
"error_code": "InvalidParameter",
"error_message": "[tts:]Engine return error code: 418",
"attributes": {}
},
"payload": {}
}
| Campo | Tipo | Descrição |
|---|---|---|
| cabeçalho.task_id | corda | O ID da tarefa gerado pelo cliente. |
| cabeçalho.evento | corda | Tipo de evento. Valor fixo: task-failed. |
| cabeçalho.error_code | corda | Código de erro. |
| header.error_message | corda | Mensagem de erro detalhada. |