Métodos¶
RECOGNIZE¶
Realiza o reconhecimento de fala de um áudio enviado para o serviço. O conteúdo do áudio deve ser enviado no corpo da mensagem HTTP. O reconhecimento é realizado de forma síncrona e o resultado vem na resposta HTTP.
Requisição
POST /asr-server/rest/recognize/{audio.rate}
HTTP Headers
| Accept | (Opcional) Tipo de conteúdo do resultado do reconhecimento. Valores válidos:
Valor padrão: application/json. |
| User-Agent | Identificação do dispositivo e/ou aplicação que está gerando o áudio. Útil para fins de log de aplicação. |
| Content-Length | Indica o número de bytes do conteúdo |
| Content-Type | Indica o formato do áudio enviado. Formatos válidos:
|
O reconhecimento de fala pode ser configurado para se adaptar às características específicas da aplicação. A configuração é feita através de parâmetros definidos como headers da requisição HTTP. A lista dos parâmetros é encontrada em Parâmetros de reconhecimento
Parâmetros da requisição
| audio.rate | indica a taxa do áudio que se está enviando. Permite que o serviço utilize o modelo acústico adequado para o reconhecimento. Valores possíveis:
|
| lm | URI do modelo de língua. Caso não seja informada, será retornado um erro. A URI deve possuir um dos prefixos abaixo:
|
Resultado
O resultado do reconhecimento é um objeto que possui a seguinte estrutura:
recognition_result
- alternatives
- result_status
alternatives: lista com os resultados prováveis do reconhecimento
- index: índice da alternativa de resultado
- text: texto reconhecimento
- score: pontuação ou índice de confiança
- interpretations: lista com os resultados da interpretação, conforme definido na gramática. Em caso de modelo de língua de fala livre, essa lista é vazia.
result_status: estado do reconhecimento. Pode ser um dos valores abaixo:
result_status Descrição RECOGNIZED reconhecimento realizado com sucesso NO_MATCH reconhecimento realizado com sucesso mas sem correspondência na gramática NO_INPUT_TIMEOUT o reconhecimento não detectou o início de fala antes do vencimento do temporizador EARLY_SPEECH o áudio recebido não possui trecho de silêncio inicial (a fala começou antes do início do reconhecimento) MAX_SPEECH o servidor recebeu uma quantidade de áudio maior do que a capacidade de processamento RECOGNITION_TIMEOUT não foi possível gerar um resultado final antes do vencimento do temporizador NO_SPEECH não foi possível detectar fala no áudio enviado CANCELED o reconhecimento foi cancelado FAILURE falha não específica no servidor
Exemplos
Chamada REST:
curl -X POST \
--user username:passwd \
--header "Content-Type: audio/wav" \
--data-binary '@bank-transfira-8k.wav' \
https://speech.cpqd.com.br/asr/rest/v1/recognize/8k?lm=builtin:grammar/samples/bank
Resultado JSON:
{
"alternatives": [{
"index": 0,
"text": "transfira seis mil novecentos e trinta e sete reais para conta corrente",
"score": 99,
"interpretations": [{
"action": "TRANSFERENCIA",
"money": 6937,
"to_account_type": "CONTA_CORRENTE"
}]
},
{
"index": 1,
"text": "transfira seis mil novecentos e trinta e sete reais para a conta corrente",
"score": 93,
"interpretations": [{
"action": "TRANSFERENCIA",
"money": 6937,
"to_account_type": "CONTA_CORRENTE"
}]
},
{
"index": 2,
"text": "transfira seis mil novecentos e trinta e sete reais pra conta corrente",
"score": "92",
"interpretations": [{
"action": "TRANSFERENCIA",
"money": 6937,
"to_account_type": "CONTA_CORRENTE"
}]
}
],
"result_status": "RECOGNIZED"
}
Resultado XML:
<?xml version="1.0" encoding="UTF-8"?>
<recognition_result>
<alternatives>
<alternative>
<index>0</index>
<text>transfira seis mil novecentos e trinta e sete reais para conta corrente</text>
<score>99</score>
<interpretations>
<interpretation>
<action>TRANSFERENCIA</action>
<money>6937</money>
<to_account_type>CONTA_CORRENTE</to_account_type>
</interpretation>
</interpretations>
</alternative>
<alternative>
<index>1</index>
<text>transfira seis mil novecentos e trinta e sete reais para a conta corrente</text>
<score>93</score>
<interpretations>
<interpretation>
<action>TRANSFERENCIA</action>
<money>6937</money>
<to_account_type>CONTA_CORRENTE</to_account_type>
</interpretation>
</interpretations>
</alternative>
<alternative>
<index>2</index>
<text>transfira seis mil novecentos e trinta e sete reais pra conta corrente</text>
<score>92</score>
<interpretations>
<interpretation>
<action>TRANSFERENCIA</action>
<money>6937</money>
<to_account_type>CONTA_CORRENTE</to_account_type>
</interpretation>
</interpretations>
</alternative>
</alternatives>
<result_status>RECOGNIZED</result_status>
</recognition_result>
INTERPRET¶
Realiza a interpretação semântica de um texto fornecido pelo cliente, usando a gramática indicada, de forma similar a RECOGNIZE. O texto deve ser enviado no corpo da mensagem HTTP. O reconhecimento é realizado de forma síncrona e o resultado vem na resposta HTTP.
Requisição
POST /asr-server/rest/interpret
HTTP Headers
| Accept | (Opcional) Tipo de conteúdo do resultado do reconhecimento. Valores válidos:
Valor padrão: application/json. |
| User-Agent | Identificação do dispositivo e/ou aplicação que está gerando o áudio. Útil para fins de log de aplicação. |
| Content-Length | Indica o número de bytes do conteúdo |
| Content-Type | Indica o formato do áudio enviado. Formatos válidos:
|
Parâmetros da requisição
| lm | URI do modelo de língua. Caso não seja informada, será retornado um erro. A URI deve possuir um dos prefixos abaixo:
|
Resultado
O resultado do reconhecimento é um objeto que possui a seguinte estrutura: