Marcação de palavra-chave e alternativas de palavras
O serviço IBM Watson® Speech to Text pode identificar palavras-chave especificadas pelo usuário em seus resultados de transcrição. Ele também pode sugerir palavras alternativas que sejam acusticamente semelhantes às palavras de uma transcrição. Em ambos os casos, as palavras-chave e as palavras alternativas devem atender a um nível de confiança especificado pelo usuário.
Marcação de palavra-chave
Os parâmetros keywords e keywords_threshold são suportados apenas com modelos de geração anterior, não com modelos de última geração.
O recurso de marcação da palavra-chave detecta sequências especificadas em uma transcrição. O serviço pode marcar a mesma palavra-chave diversas vezes e relatar cada ocorrência. O serviço marca as palavras-chave somente nos resultados finais, não nos resultados provisórios. Por padrão, o serviço não faz nenhuma marcação de palavra-chave.
Para usar a marcação de palavra-chave, deve-se especificar ambos os parâmetros a seguir:
-
Use o parâmetro
keywordspara especificar uma matriz de sequências a serem marcadas. O serviço não marcará nenhuma palavra-chave se você omitir o parâmetro ou especificar uma matriz vazia. Uma sequência de palavra-chave pode incluir mais de um token. Por exemplo, a palavra-chaveSpeech to Texttem três tokens. A correspondência de palavras-chave é sem distinção entre maiúsculas e minúsculas, portanto,Speech to Texté efetivamente equivalente aspeech to text.Para inglês dos EUA, o serviço normaliza cada palavra-chave para corresponder às sequências faladas versus por escrito. Por exemplo, ele normaliza números para corresponder ao modo como elas são faladas em oposição a como são escritas. Para outros idiomas, as palavras-chave devem ser especificadas à medida que são ditas.
-
Use o parâmetro
keywords_thresholdpara especificar uma probabilidade entre 0,0 e 1,0 para uma correspondência de palavra-chave. O limite indica o limite inferior para o nível de confiança que o serviço deve ter para uma palavra que corresponda à palavra-chave. Uma palavra-chave é marcada na transcrição somente se sua confiança for maior ou igual ao limite especificado.Especificar um pequeno limite pode potencialmente produzir muitas correspondências. Se você especificar um limite, também deverá especificar uma ou mais palavras-chave. Omita o parâmetro para não retornar nenhuma correspondência.
Os limites a seguir aplicam-se à marcação de palavra-chave:
- É possível identificar um máximo de 1.000 palavras-chave com uma única solicitação.
- Uma única palavra-chave pode ter um comprimento máximo de 1.024 caracteres. O comprimento máximo efetivo para idiomas de byte duplo pode ser mais curto.
- A maioria dos servidores HTTP e proxies impõe um limite de 8 KB nos parâmetros de uma solicitação. A marcação de um número muito grande de palavras-chave ou muitas palavras-chave longas pode exceder esse limite. Se for necessário corresponder a mais palavras-chave, considere usar uma solicitação de HTTP de várias partes.
A marcação de palavra-chave é necessária para identificar palavras-chave em um fluxo de áudio. Não é possível identificar palavras-chave processando uma transcrição final porque a transcrição representa os melhores resultados decodificadores do serviço para o áudio de entrada. Ela não inclui tokens com pontuações de confiança mais baixas que podem representar uma palavra de interesse. Então, aplicar as ferramentas de processamento de texto a uma transcrição no lado do cliente pode não identificar palavras-chave. Uma representação mais rica dos resultados decodificadores é necessária e essa representação está disponível somente no servidor.
Resultados de marcação de palavra-chave
O serviço retorna os resultados em um campo keywords_result que é um elemento da matriz results. O campo keywords_result é um dicionário, ou matriz associativa, de propriedades enumeráveis. Cada propriedade
é identificada por uma palavra-chave especificada e inclui uma matriz de objetos. O serviço retorna um elemento da matriz para cada correspondência que ele localiza para a palavra-chave. O objeto para cada correspondência inclui os campos
a seguir:
normalized_texté a palavra-chave especificada que é normalizada para a frase falada que correspondeu ao áudio de entrada.start_timeé o horário de início em segundos da correspondência.end_timeé o horário de encerramento em segundos da correspondência.confidenceé a confiança do serviço de que a correspondência representa a palavra-chave especificada. A confiança deve ser pelo menos tão grande quanto o limite especificado a ser incluído nos resultados.
Uma palavra-chave para a qual o serviço não localiza nenhuma correspondência é omitida da matriz. Uma palavra-chave pode não ser localizada se
-
O áudio simplesmente não inclui a palavra-chave. A ausência da palavra-chave é a explicação mais óbvia.
-
O limite está configurado muito alto. O serviço pode identificar a palavra-chave, mas com um nível inferior de confiança, caso em que ele omite a correspondência dos resultados.
-
Uma sequência de palavra-chave que contém diversos tokens (por exemplo,
Speech to Text) é falada com muito silêncio entre os seus tokens. Quando o serviço transcreve o áudio, ele divide o fluxo em uma série de blocos. Cada bloco representa um chunk contínuo de áudio que não tem um intervalo de silêncio acima de meio segundo. Ele constrói uma matriz de objetos de resultado que consiste nesses blocos.O serviço corresponde a uma palavra-chave com diversos tokens somente se
- Os tokens da palavra-chave estão no mesmo bloco.
- Os tokens são adjacentes ou separados por uma diferença de até 0,1 segundo.
Nesse último caso, pode haver um breve preenchimento ou uma elocução não lexical, como "uhm" ou "bem", entre dois tokens da palavra-chave. Nesse caso, modelos de geração anterior podem inserir um marcador de hesitação nessa posição da transcrição. Os modelos de última geração incluem a hesitação real nos resultados da transcrição. Para obter mais informações, consulte Hesitações de fala e marcadores de hesitação.
Exemplo de marcação de palavra-chave
A solicitação de exemplo a seguir configura o parâmetro keywords para uma matriz codificada por URL de três sequências (colorado, tornadoe tornadoes) e o parâmetro keywords_threshold para 0.5:
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file.flac \
"{url}/v1/recognize?keywords=colorado%2Ctornado%2Ctornadoes&keywords_threshold=0.5"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file.flac \
"{url}/v1/recognize?keywords=colorado%2Ctornado%2Ctornadoes&keywords_threshold=0.5"
O serviço encontra ocorrências qualificadas de colorado e tornadoes:
{
"result_index": 0,
"results": [
{
"keywords_result": {
"colorado": [
{
"normalized_text": "Colorado",
"start_time": 4.94,
"confidence": 0.91,
"end_time": 5.62
}
],
"tornadoes": [
{
"normalized_text": "tornadoes",
"start_time": 1.52,
"confidence": 1.0,
"end_time": 2.15
}
]
},
"alternatives": [
{
"confidence": 0.96,
"transcript": "several tornadoes touch down as a line of
severe thunderstorms swept through Colorado on Sunday "
}
],
"final": true
}
]
}
Alternativas de palavra
O parâmetro word_alternatives_threshold é suportado apenas com modelos de geração anterior, não com modelos de última geração.
O recurso de palavras alternativas (também conhecido como Redes de confusão) relata hipóteses de alternativas acústicas similares para palavras do áudio de entrada. Por exemplo, a palavra Austin pode ser a melhor hipótese
para uma palavra do áudio. Mas a palavra Boston é outra hipótese possível no mesmo intervalo de tempo. As hipóteses compartilham um horário comum inicial e de encerramento, mas têm diferentes ortografias e, geralmente, diferentes
pontuações de confiança.
Por padrão, o serviço não relata alternativas de palavra. Para indicar que você deseja receber hipóteses alternativas, use o parâmetro word_alternatives_threshold para especificar uma probabilidade entre 0,0 e 1,0. O limite indica
o limite inferior para o nível de confiança que o serviço deve ter em uma hipótese para retorná-la como uma alternativa de palavra. Uma hipótese é retornada apenas se sua confiança for maior ou igual ao limite especificado.
É possível pensar em alternativas de palavra como a linha de tempo para uma transcrição que é dividida em intervalos ou compartimentos menores. Cada compartimento pode ter uma ou mais hipóteses com diferentes ortografias e confiança. O parâmetro
word_alternatives_threshold controla a densidade dos resultados que o serviço retorna. Especificar um pequeno limite pode produzir potencialmente muitas hipóteses.
Resultados de alternativas de palavra
O serviço retorna os resultados em um campo word_alternatives que é um elemento da matriz results. O campo word_alternatives é uma matriz de objetos, cada um dos quais fornece os campos a seguir para
uma palavra alternativa:
start_timeindica o tempo em segundos em que a palavra para a qual as hipóteses são retornadas inicia no áudio de entrada.end_timeindica o tempo em segundos no qual a palavra para a qual as hipóteses são retornadas termina no áudio de entrada.alternativesé uma matriz de objetos de hipótese. Cada objeto inclui umaconfidenceque indica a pontuação de confiança do serviço para a hipótese e umawordque identifica a hipótese. A confiança deve ser pelo menos tão grande quanto o limite especificado a ser incluído nos resultados. O serviço ordena as alternativas por confiança.
Exemplo de alternativas de palavra
A solicitação de exemplo a seguir especifica um word_alternatives_threshold bastante baixo de 0.10. O áudio de entrada simples inclui palavras com homônimos comuns e diferentes interpretações acústicas possíveis.
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/wav" \
--data-binary @{path}audio-file.wav \
"{url}/v1/recognize?word_alternatives_threshold=0.10"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/wav" \
--data-binary @{path}audio-file.wav \
"{url}/v1/recognize?word_alternatives_threshold=0.10"
Por causa do limite baixo, o serviço retorna várias hipóteses e pontuações de confiança para algumas das palavras, além dos horários de início e encerramento de todas elas. A transcrição final reconhece corretamente o áudio de entrada.
{
"result_index": 0,
"results": [
{
"final": true,
"alternatives": [
{
"transcript": "yes I ate that tuna ",
"confidence": 0.82
}
],
"word_alternatives": [
{
"start_time": 0.0,
"end_time": 0.31,
"alternatives": [
{
"word": "yes",
"confidence": 1.0
}
]
},
{
"start_time": 0.31,
"end_time": 0.46,
"alternatives": [
{
"word": "I",
"confidence": 1.0
}
]
},
{
"start_time": 0.46,
"end_time": 0.63,
"alternatives": [
{
"word": "ate",
"confidence": 0.89
},
{
"word": "eat",
"confidence": 0.11
}
]
},
{
"start_time": 0.63,
"end_time": 0.77,
"alternatives": [
{
"word": "that",
"confidence": 0.72
},
{
"word": "the",
"confidence": 0.27
}
]
},
{
"start_time": 0.77,
"end_time": 1.2,
"alternatives": [
{
"word": "tuna",
"confidence": 0.94
}
]
}
]
}
]
}