Entendendo resultados de reconhecimento de voz
Independentemente da interface usada, o serviço IBM Watson® Speech to Text retornará resultados de transcrição que refletem os parâmetros que você especificar. O serviço retorna todo o conteúdo de resposta JSON no conjunto de caracteres UTF-8.
Resposta de transcrição básica
O serviço retorna a resposta a seguir para os exemplos em Fazendo uma solicitação de reconhecimento de voz. Os exemplos passam apenas um arquivo de áudio e seu tipo de conteúdo. O áudio fala uma única sentença sem pausas perceptíveis entre as palavras.
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"confidence": 0.96,
"transcript": "several tornadoes touch down as a line of severe thunderstorms swept through Colorado on Sunday "
}
],
"final": true
}
]
}
O serviço retorna um objeto SpeechRecognitionResults, que é o objeto de resposta de nível superior. Para essas solicitações simples, o objeto inclui um campo results e um campo result_index:
- O campo
resultsfornece uma matriz de informações sobre os resultados da transcrição. Para este exemplo, o campoalternativesinclui atranscripte aconfidencedo serviço nos resultados. O campofinaltem um valor igual atruepara indicar que esses resultados não mudarão. - O campo
result_indexfornece um identificador exclusivo para os resultados. O exemplo mostra os resultados finais para uma solicitação com um único arquivo de áudio que não tem pausas e a solicitação não inclui parâmetros adicionais. Portanto, o serviço retorna um único camporesult_indexcom um valor de0, que é sempre o índice inicial.
Se o áudio de entrada for mais complexo ou a solicitação incluir parâmetros adicionais, os resultados poderão conter muito mais informações.
O campo alternatives
O campo alternatives fornece uma matriz de resultados da transcrição. Para esta solicitação, a matriz inclui apenas um elemento.
- O campo
transcriptfornece os resultados da transcrição. - O campo
confidenceé uma pontuação que indica a confiança do serviço na transcrição, que para este exemplo excede 90 por cento.
Os campos final e result_index qualificam o significado desses campos.
Mudanças internas e melhorias no serviço podem afetar transcrições e pontuações de confiança. Por exemplo, o reconhecimento de fala pode ser melhorado para retornar resultados mais precisos de transcrição. Da mesma forma, as pontuações de confiança de transcrição e de palavra podem mudar ligeiramente como resultado de um reconhecimento de fala melhorado Essas mudanças devem ser modestas, mas não esperam que as transcrições e as pontuações de confiança permaneçam inalteradas ao longo do tempo.
O campo final
O campo final indica se a transcrição mostra os resultados da transcrição final:
- O campo é
truepara obter os resultados finais, que têm a garantia de não mudar. O serviço não envia mais atualizações para os resultados finais. - O campo é
falsepara resultados provisórios, que estão sujeitos à mudança. Se você utilizar o parâmetrointerim_resultscom a interface do WebSocket, o serviço retornará hipóteses evolutivas em forma de vários camposresults, conforme transcreve o áudio. Para resultados provisórios, o campofinalé semprefalsee o campoconfidenceé sempre omitido.
Para obter mais informações sobre como usar a interface WebSocket para obter resultados provisórios com modelos de fala grandes, modelos anteriores e de próxima geração, consulte os tópicos a seguir:
O campo result_index
O campo result_index fornece um identificador para os resultados que são exclusivos para essa solicitação. Se você solicitar resultados provisórios, o serviço enviará diversos campos results para o desenvolvimento
de hipóteses do áudio de entrada. Os índices para resultados provisórios para o mesmo áudio sempre têm o mesmo valor, assim como os resultados finais para o mesmo áudio.
O mesmo índice também pode ser usado para múltiplos resultados finais de uma única solicitação. Independentemente de você solicitar resultados provisórios, o serviço poderá retornar vários resultados finais com o mesmo índice se o áudio incluir pausas ou períodos prolongados de silêncio. Para obter mais informações, consulte Pausas e silêncio.
Depois de receber os resultados finais para qualquer áudio, o serviço não envia mais resultados com esse índice para o restante da solicitação. O índice para qualquer resultado adicional é incrementado por um.
Se o áudio produzir diversos resultados finais, concatene os elementos transcript dos resultados finais para montar a transcrição completa do áudio. Monte os resultados na ordem em que eles forem recebidos. Ao montar uma transcrição
final completa, é possível ignorar resultados provisórios para os quais o campo final é false.
Conteúdo de resposta adicional
Muitos parâmetros de reconhecimento de fala impactam o conteúdo da resposta do serviço. Alguns parâmetros podem fazer com que o serviço retorne vários resultados de transcrição:
end_of_phrase_silence_timeinterim_resultssplit_transcript_at_phrase_end
Alguns parâmetros podem modificar o conteúdo de uma transcrição:
profanity_filterredactionsmart_formatting
Outros parâmetros podem incluir mais informações nos resultados:
audio_metricskeywordsekeywords_thresholdmax_alternativesprocessing_metricseprocessing_metrics_intervalspeaker_labelstimestampsword_alternatives_thresholdword_confidence
Para obter mais informações sobre os parâmetros disponíveis, consulte Usando parâmetros de reconhecimento de voz e o Resumo do parâmetro.
Pausas e silêncio
A forma como o serviço retorna resultados depende da interface e do modelo usados para reconhecimento de voz, assim como o áudio passado para o serviço. Por padrão, o serviço transcreve um fluxo de áudio inteiro como uma única elocução e retorna um único resultado final para todo o áudio. No entanto, o serviço pode retornar vários resultados finais em resposta às seguintes condições:
- O áudio contém uma pausa ou um silêncio estendido entre palavras ou frases faladas. Para a maioria dos idiomas, o intervalo de pausa padrão que o serviço usa para determinar resultados finais separados é de 0,8 segundos. Para chinês, o intervalo
padrão é de 0,6 segundos. Você pode usar o parâmetro
end_of_phrase_silence_timepara alterar a duração do intervalo de pausa. Para obter mais informações, consulte Tempo de silêncio no término da frase. - Para modelos de geração anterior, a elocução atinge um máximo de dois minutos. O serviço divide uma transcrição em múltiplos resultados finais após dois minutos de processamento contínuo.
Os exemplos a seguir mostram respostas com dois resultados finais das interfaces HTTP e WebSocket. O mesmo áudio de entrada é usado em ambos os casos. O áudio fala a frase "um dois três quatro cinco seis", com uma pausa de um segundo entre as palavras "três" e "quatro". Os exemplos usam o intervalo de pausa padrão para reconhecimento de voz.
-
Para as interfaces HTTP, o serviço sempre envia um único objeto
SpeechRecognitionResults. A matrizalternativestem um elemento separado para cada resultado final. A resposta tem um único camporesult_indexcom um valor de0.{ "result_index": 0, "results": [ { "alternatives": [ { "confidence": 0.99, "transcript": "one two three " } ], "final": true }, { "alternatives": [ { "confidence": 0.99, "transcript": "four five six " } ], "final": true } ] } -
Para a interface do WebSocket, o serviço envia os mesmos resultados do exemplo anterior. A resposta inclui um único objeto
SpeechRecognitionResults, a matrizalternativestem um elemento separado para cada resultado final e a resposta tem um único camporesult_indexcom um valor de0.{ "result_index": 0, "results": [ { "alternatives": [ { "confidence": 0.99, "transcript": "one two three " } ], "final": true }, { "alternatives": [ { "confidence": 0.99, "transcript": "four five six " } ], "final": true } ] }Com a interface do WebSocket, as respostas para resultados provisórios contêm mais objetos JSON. Para obter mais informações sobre como usar a interface WebSocket para obter resultados provisórios com modelos de fala grandes, modelos anteriores e de próxima geração, consulte os tópicos a seguir:
O silêncio de 30 segundos em áudio de streaming pode resultar em um tempo limite de inatividade. Para obter mais informações, consulte Tempos limites.
Hesitações de discurso e marcadores de hesitações
A fala geralmente inclui hesitações ou pausas verbais, que também são referidas como disfluências. Hesitações ocorrem quando o usuário insere preenchimentos como "uhm", "uh", "hmm" e enunciados não lexicais relacionados durante a fala. O serviço manipula hesitações de forma diferente para grandes modelos de fala, modelos anteriores e da próxima geração..
Hesitações para modelos de geração anterior
Para modelos de geração anterior, o serviço inclui marcadores de hesitação em resultados de transcrição para a maioria dos idiomas.. Idiomas diferentes podem usar marcadores de hesitação diferentes ou não indicar nenhuma hesitação:
- Para inglês dos EUA, marcadores de hesitação são indicados pelo token
%HESITATION. Palavras que geram marcadores de hesitação sãoaah,ah,hm,hmm,huh,huh-uh,hum,ohh,ugh,uh,uh-huh,uh-oh,uh-uh,umeum-hum. - Para japonês, normalmente os marcadores de hesitação começam com
D_. - Para espanhol, o serviço não produz marcadores de hesitação.
O exemplo a seguir mostra o token %HESITATION para uma transcrição em inglês dos EUA:
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"confidence": 0.99,
"transcript": ". . . that %HESITATION that's a . . ."
}
],
"final": true
}
]
}
Os marcadores de hesitação podem aparecer nos resultados provisórios e finais. A ativação de formatação inteligente evita que marcadores de hesitação apareçam em resultados finais para o inglês dos EUA. Para obter mais informações, consulte Formatação inteligente.
Os marcadores de hesitação também podem aparecer em outros campos de uma transcrição. Por exemplo, se você solicitar Registros de data e hora da palavra para as palavras individuais de uma transcrição, o serviço relatará o horário de início e de encerramento de cada marcador de hesitação.
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"timestamps": [
. . .
[
"that",
7.31,
7.69
],
[
"%HESITATION",
7.69,
7.98
],
[
"that's",
7.98,
8.41
],
[
"a",
8.41,
8.48
],
. . .
],
"confidence": 0.99,
"transcript": ". . . that %HESITATION that's a . . ."
}
],
"final": true
}
]
}
A menos que seja necessário usá-los para seu aplicativo, é possível filtrar com segurança os marcadores de hesitação de uma transcrição.
Hesitações para modelos de próxima geração
Para modelos de próxima geração, o serviço inclui as palavras de hesitações reais em todos os resultados de transcrição Os modelos da próxima geração tratam as hesitações como palavras, portanto, as hesitações podem aparecer em resultados provisórios, resultados finais e outros campos, como os resultados para registros de data e hora da palavra Os modelos da próxima geração não produzem marcadores de hesitação e a ativação da formatação inteligente não faz com que hesitações sejam removidas dos resultados finais. Diferentes idiomas podem identificar diferentes palavras hesitantes:
- Para inglês dos EUA, palavras comuns de hesitação, como para modelos de geração anteriores, são
aah,ah,hm,hmm,huh,huh-uh,hum,ohh,ugh,uheuh-huh,uh-oh,uh-uh,umeum-hum. Nem todas essas palavras hesitantes podem aparecer em transcrições. - Para japonês, as palavras de hesitação geralmente consistem em caracteres de meia largura como
ア,アノー,ウーン,エート,マ,テ,マeンート. Algumas hesitações podem ser reconhecidas como caracteres de largura total.
Para aumentar a probabilidade de ver hesitações em sua resposta, você pode utilizar um modelo de idioma customizado. No modelo customizado, inclua corpora que inclua as hesitações ou crie palavras customizadas cujos sons-likes capturam a maneira como os usuários dizem as disfluências. Para obter mais informações sobre modelos de idioma customizados, consulte Criando um modelo de idioma customizado..
O exemplo a seguir mostra a hesitação "uhm" em uma transcrição em inglês americano:
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"confidence": 0.99,
"transcript": ". . . that uhm that's a . . ."
}
],
"final": true
}
]
}
Letras maiúsculas e minúsculas
Para a maioria dos idiomas, o serviço não usa letras maiúsculas e minúsculas em transcrições de resposta. Se letras maiúsculas e minúsculas forem importantes para o seu aplicativo, você deverá mudar para letra maiúscula a primeira palavra de cada sentença e qualquer outro termo para o qual letras maiúsculas e minúsculas sejam apropriadas.
O serviço aplica a capitalização automática apenas para os idiomas e modelos a seguir. O serviço sempre aplica essa capitalização, independentemente de você usar formatação inteligente.
-
Para modelos de geração anterior em inglês dos EUA, o serviço capitaliza muitos substantivos próprios. Por exemplo, o serviço retorna a transcrição a seguir para a frase barack obama formou-se na universidade de columbia:
Barack Obama graduated from Columbia UniversityO serviço não capitaliza substantivos próprios para inglês dos EUA com modelos de última geração.
-
Para modelos alemães de última geração, o serviço capitaliza muitos substantivos. Por exemplo, o serviço retorna a transcrição a seguir para a frase er braucht erst einen neuen eintrag ins vokabular punkt:
er braucht erst einen neuen Eintrag ins Vokabular PunktO serviço não capitaliza substantivos para alemão com modelos de geração anterior.
Pontuação
Por padrão, o serviço não insere a pontuação em transcrições de resposta. Deve-se incluir qualquer pontuação que você precisa para os resultados do serviço.
Para alguns idiomas, é possível usar formatação inteligente para direcionar o serviço a substituir símbolos de pontuação, como vírgulas, pontos, pontos de interrogação e pontos de exclamação, para determinadas sequências de palavras-chave. Para obter mais informações, consulte Formatação inteligente.