Testar a precisão de um modelo de fala personalizada
Neste artigo, você aprenderá a medir quantitativamente e melhorar a precisão do modelo básico de conversão de fala em texto ou de seus próprios modelos personalizados. Áudio + dados de transcrição literal são necessários para testar a precisão. É preciso fornecer de 30 minutos a 5 horas de áudio representativo.
Importante
Durante o teste, o sistema realizará uma transcrição. É importante ter isso em mente, pois o preço varia de acordo com a oferta de serviço e o nível de assinatura. Sempre consulte os preços oficiais dos Serviços Cognitivos de IA do Azure para obter os detalhes mais recentes.
Criar um teste
É possível testar a precisão do modelo personalizado criando um teste. Um teste requer uma coleção de arquivos de áudio e suas transcrições correspondentes. Você pode comparar a precisão de um modelo personalizado com um modelo básico de conversão de fala em texto ou outro modelo personalizado. Depois de obter os resultados do teste, avalie a WER (taxa de erros de palavra) em comparação com os resultados do reconhecimento de fala.
Siga estas etapas para criar um teste:
Entre no Speech Studio.
Selecione Fala personalizada> Nome do projeto >Testar modelos.
Selecione Criar novo teste.
Selecione Avaliar a precisão>Avançar.
Selecione um áudio + conjunto de dados de transcrição literal e selecione Avançar. Se não houver conjuntos de dados disponíveis, cancele a instalação e vá para o menu Conjuntos de dados de fala para carregar conjuntos de dados.
Observação
É importante selecionar um conjunto de dados acústico que seja diferente do que você usou com o seu modelo. Essa abordagem pode fornecer uma noção mais realista do desempenho do modelo.
Selecione até dois modelos para avaliar e selecione Avançar.
Insira o nome do teste e a descrição e, em seguida, selecione Avançar.
Examine os detalhes do teste e depois selecione Salvar e fechar.
Para criar um teste, use o comando spx csr evaluation create
. Construa os parâmetros de solicitação de acordo com as seguintes instruções:
- Defina o parâmetro
project
como a ID de um projeto existente. Esse parâmetro é recomendado para que você também possa visualizar o teste no Speech Studio. Você pode executar o comandospx csr project list
para obter projetos disponíveis. - Defina o parâmetro
model1
necessário para a ID de um modelo que você deseja testar. - Defina o parâmetro
model2
necessário para a ID de outro modelo que você deseja testar. Se você não quiser comparar dois modelos, use o mesmo modelo para ambosmodel1
emodel2
. - Defina o parâmetro
dataset
necessário para a ID de um conjunto de dados que você deseja usar para o teste. - Defina o parâmetro
language
, caso contrário, a CLI de fala define "en-US" por padrão. Esse parâmetro deve ser a localidade dos conteúdos do conjunto de dados. Ela não poderá ser alterada posteriormente. O parâmetrolanguage
da CLI de Fala corresponde à propriedadelocale
na solicitação e resposta JSON. - Defina o parâmetro
name
necessário. Esse parâmetro é o nome que é exibido no Speech Studio. O parâmetroname
da CLI de Fala corresponde à propriedadedisplayName
na solicitação e resposta JSON.
Veja um exemplo de comando da CLI de Fala que cria um teste:
spx csr evaluation create --api-version v3.2 --project 0198f569-cc11-4099-a0e8-9d55bc3d0c52 --dataset 23b6554d-21f9-4df1-89cb-f84510ac8d23 --model1 ff43e922-e3e6-4bf0-8473-55c08fd68048 --model2 13fb305e-09ad-4bce-b3a1-938c9124dda3 --name "My Evaluation" --description "My Evaluation Description"
Você deve receber um corpo de resposta no seguinte formato:
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
"model1": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
},
"model2": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
},
"dataset": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
},
"transcription2": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
},
"transcription1": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
},
"project": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
},
"links": {
"files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
},
"properties": {
"wordErrorRate1": -1.0,
"sentenceErrorRate1": -1.0,
"sentenceCount1": -1,
"wordCount1": -1,
"correctWordCount1": -1,
"wordSubstitutionCount1": -1,
"wordDeletionCount1": -1,
"wordInsertionCount1": -1,
"wordErrorRate2": -1.0,
"sentenceErrorRate2": -1.0,
"sentenceCount2": -1,
"wordCount2": -1,
"correctWordCount2": -1,
"wordSubstitutionCount2": -1,
"wordDeletionCount2": -1,
"wordInsertionCount2": -1
},
"lastActionDateTime": "2024-07-14T21:31:14Z",
"status": "NotStarted",
"createdDateTime": "2024-07-14T21:31:14Z",
"locale": "en-US",
"displayName": "My Evaluation",
"description": "My Evaluation Description",
"customProperties": {
"testingKind": "Evaluation"
}
}
A propriedade self
de nível superior no corpo da resposta é o URI da avaliação. Use esse URI para obter detalhes sobre o projeto e os resultados do teste. Você também usa esse URI para atualizar ou excluir a avaliação.
Para a ajuda da CLI de Fala com avaliações, execute o seguinte comando:
spx help csr evaluation
Para criar um teste, use a operação Evaluations_Create da API REST de Conversão de fala em texto . Crie o corpo da solicitação de acordo com as seguintes instruções:
- Defina a propriedade
project
como o URI de um projeto existente. Essa propriedade é recomendada para que você também possa visualizar o teste no Speech Studio. É possível fazer uma solicitação Projects_List para obter os projetos disponíveis. - Defina a propriedade
testingKind
comoEvaluation
dentro decustomProperties
. Se você não especificarEvaluation
, o teste será tratado como um teste de inspeção de qualidade. Se a propriedadetestingKind
estiver definida comoEvaluation
ouInspection
, ou não definida, você poderá acessar as pontuações de precisão por meio da API, mas não no Speech Studio. - Defina a propriedade
model1
necessária para o URI de um modelo que você deseja testar. - Defina a propriedade
model2
necessária para o URI de outro modelo que você deseja testar. Se você não quiser comparar dois modelos, use o mesmo modelo para ambosmodel1
emodel2
. - Defina o propriedade
dataset
necessário para o URI de um conjunto de dados que você deseja usar para o teste. - Defina a propriedade
locale
obrigatória. Essa propriedade deve ser a localidade dos conteúdos do conjunto de dados. Ela não poderá ser alterada posteriormente. - Defina a propriedade
displayName
obrigatória. Essa propriedade é o nome que é exibido no Speech Studio.
Faça uma solicitação HTTP POST usando o URI, conforme mostrado no exemplo a seguir. Substitua YourSubscriptionKey
pela chave de recurso de Fala, YourServiceRegion
pela região do recurso de Fala e defina as propriedades do corpo da solicitação, conforme descrito anteriormente.
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
"model1": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/13fb305e-09ad-4bce-b3a1-938c9124dda3"
},
"model2": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
},
"dataset": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
},
"project": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
},
"displayName": "My Evaluation",
"description": "My Evaluation Description",
"customProperties": {
"testingKind": "Evaluation"
},
"locale": "en-US"
}' "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations"
Você deve receber um corpo de resposta no seguinte formato:
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
"model1": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
},
"model2": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
},
"dataset": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
},
"transcription2": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
},
"transcription1": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
},
"project": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
},
"links": {
"files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
},
"properties": {
"wordErrorRate1": -1.0,
"sentenceErrorRate1": -1.0,
"sentenceCount1": -1,
"wordCount1": -1,
"correctWordCount1": -1,
"wordSubstitutionCount1": -1,
"wordDeletionCount1": -1,
"wordInsertionCount1": -1,
"wordErrorRate2": -1.0,
"sentenceErrorRate2": -1.0,
"sentenceCount2": -1,
"wordCount2": -1,
"correctWordCount2": -1,
"wordSubstitutionCount2": -1,
"wordDeletionCount2": -1,
"wordInsertionCount2": -1
},
"lastActionDateTime": "2024-07-14T21:31:14Z",
"status": "NotStarted",
"createdDateTime": "2024-07-14T21:31:14Z",
"locale": "en-US",
"displayName": "My Evaluation",
"description": "My Evaluation Description",
"customProperties": {
"testingKind": "Evaluation"
}
}
A propriedade self
de nível superior no corpo da resposta é o URI da avaliação. Use esse URI para obter detalhes sobre o projeto de avaliação e os resultados do teste. Você também usa esse URI para atualizar ou excluir a avaliação.
Obter resultados do teste
É preciso obter os resultados do teste e avalie a WER (taxa de erros de palavra) em comparação com os resultados do reconhecimento de fala.
Siga estas etapas para obter resultados de teste:
- Entre no Speech Studio.
- Selecione Fala personalizada> Nome do projeto >Testar modelos.
- Selecione o link pelo nome do teste.
- Depois que o teste for concluído, conforme indicado pelo conjunto de status como Bem-sucedido, você deverá ver os resultados que incluem o número WER para cada modelo testado.
Essa página lista todos os enunciados no conjunto de dados e os resultados de reconhecimento, junto com a transcrição do conjunto de dados enviado. É possível alternar entre vários tipos de erro, incluindo inserção, exclusão e substituição. Ao ouvir o áudio e comparar os resultados de reconhecimento em cada coluna, decida qual modelo atende às suas necessidades e determine se são necessários mais aprimoramentos e treinamento.
Para obter resultados de teste, use o comando spx csr evaluation status
. Construa os parâmetros de solicitação de acordo com as seguintes instruções:
- Defina o parâmetro
evaluation
necessário para a ID da avaliação que você deseja obter resultados de teste.
Veja um exemplo de comando da CLI de Fala que obtém os resultados do teste:
spx csr evaluation status --api-version v3.2 --evaluation 8bfe6b05-f093-4ab4-be7d-180374b751ca
As taxas de erro da palavra e mais detalhes são retornados no corpo da resposta.
Você deve receber um corpo de resposta no seguinte formato:
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
"model1": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
},
"model2": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
},
"dataset": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
},
"transcription2": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
},
"transcription1": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
},
"project": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
},
"links": {
"files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
},
"properties": {
"wordErrorRate1": 0.028900000000000002,
"sentenceErrorRate1": 0.667,
"tokenErrorRate1": 0.12119999999999999,
"sentenceCount1": 3,
"wordCount1": 173,
"correctWordCount1": 170,
"wordSubstitutionCount1": 2,
"wordDeletionCount1": 1,
"wordInsertionCount1": 2,
"tokenCount1": 165,
"correctTokenCount1": 145,
"tokenSubstitutionCount1": 10,
"tokenDeletionCount1": 1,
"tokenInsertionCount1": 9,
"tokenErrors1": {
"punctuation": {
"numberOfEdits": 4,
"percentageOfAllEdits": 20.0
},
"capitalization": {
"numberOfEdits": 2,
"percentageOfAllEdits": 10.0
},
"inverseTextNormalization": {
"numberOfEdits": 1,
"percentageOfAllEdits": 5.0
},
"lexical": {
"numberOfEdits": 12,
"percentageOfAllEdits": 12.0
},
"others": {
"numberOfEdits": 1,
"percentageOfAllEdits": 5.0
}
},
"wordErrorRate2": 0.028900000000000002,
"sentenceErrorRate2": 0.667,
"tokenErrorRate2": 0.12119999999999999,
"sentenceCount2": 3,
"wordCount2": 173,
"correctWordCount2": 170,
"wordSubstitutionCount2": 2,
"wordDeletionCount2": 1,
"wordInsertionCount2": 2,
"tokenCount2": 165,
"correctTokenCount2": 145,
"tokenSubstitutionCount2": 10,
"tokenDeletionCount2": 1,
"tokenInsertionCount2": 9,
"tokenErrors2": {
"punctuation": {
"numberOfEdits": 4,
"percentageOfAllEdits": 20.0
},
"capitalization": {
"numberOfEdits": 2,
"percentageOfAllEdits": 10.0
},
"inverseTextNormalization": {
"numberOfEdits": 1,
"percentageOfAllEdits": 5.0
},
"lexical": {
"numberOfEdits": 12,
"percentageOfAllEdits": 12.0
},
"others": {
"numberOfEdits": 1,
"percentageOfAllEdits": 5.0
}
}
},
"lastActionDateTime": "2024-07-14T21:31:22Z",
"status": "Succeeded",
"createdDateTime": "2024-07-14T21:31:14Z",
"locale": "en-US",
"displayName": "My Evaluation",
"description": "My Evaluation Description",
"customProperties": {
"testingKind": "Evaluation"
}
}
Para a ajuda da CLI de Fala com avaliações, execute o seguinte comando:
spx help csr evaluation
Para obter os resultados do teste, comece usando a operação Evaluations_Get da API REST de Conversão de fala em texto.
Faça uma solicitação HTTP GET usando o URI, conforme mostrado no exemplo a seguir. Substitua YourEvaluationId
por sua ID de avaliação, substitua YourSubscriptionKey
pela sua chave de recurso de Fala e substitua YourServiceRegion
pela sua região de recurso de Fala.
curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/YourEvaluationId" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"
As taxas de erro da palavra e mais detalhes são retornados no corpo da resposta.
Você deve receber um corpo de resposta no seguinte formato:
{
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
"model1": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
},
"model2": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
},
"dataset": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
},
"transcription2": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
},
"transcription1": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
},
"project": {
"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
},
"links": {
"files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
},
"properties": {
"wordErrorRate1": 0.028900000000000002,
"sentenceErrorRate1": 0.667,
"tokenErrorRate1": 0.12119999999999999,
"sentenceCount1": 3,
"wordCount1": 173,
"correctWordCount1": 170,
"wordSubstitutionCount1": 2,
"wordDeletionCount1": 1,
"wordInsertionCount1": 2,
"tokenCount1": 165,
"correctTokenCount1": 145,
"tokenSubstitutionCount1": 10,
"tokenDeletionCount1": 1,
"tokenInsertionCount1": 9,
"tokenErrors1": {
"punctuation": {
"numberOfEdits": 4,
"percentageOfAllEdits": 20.0
},
"capitalization": {
"numberOfEdits": 2,
"percentageOfAllEdits": 10.0
},
"inverseTextNormalization": {
"numberOfEdits": 1,
"percentageOfAllEdits": 5.0
},
"lexical": {
"numberOfEdits": 12,
"percentageOfAllEdits": 12.0
},
"others": {
"numberOfEdits": 1,
"percentageOfAllEdits": 5.0
}
},
"wordErrorRate2": 0.028900000000000002,
"sentenceErrorRate2": 0.667,
"tokenErrorRate2": 0.12119999999999999,
"sentenceCount2": 3,
"wordCount2": 173,
"correctWordCount2": 170,
"wordSubstitutionCount2": 2,
"wordDeletionCount2": 1,
"wordInsertionCount2": 2,
"tokenCount2": 165,
"correctTokenCount2": 145,
"tokenSubstitutionCount2": 10,
"tokenDeletionCount2": 1,
"tokenInsertionCount2": 9,
"tokenErrors2": {
"punctuation": {
"numberOfEdits": 4,
"percentageOfAllEdits": 20.0
},
"capitalization": {
"numberOfEdits": 2,
"percentageOfAllEdits": 10.0
},
"inverseTextNormalization": {
"numberOfEdits": 1,
"percentageOfAllEdits": 5.0
},
"lexical": {
"numberOfEdits": 12,
"percentageOfAllEdits": 12.0
},
"others": {
"numberOfEdits": 1,
"percentageOfAllEdits": 5.0
}
}
},
"lastActionDateTime": "2024-07-14T21:31:22Z",
"status": "Succeeded",
"createdDateTime": "2024-07-14T21:31:14Z",
"locale": "en-US",
"displayName": "My Evaluation",
"description": "My Evaluation Description",
"customProperties": {
"testingKind": "Evaluation"
}
}
Avaliar a taxa de erros de palavras (WER)
O padrão do setor para medir a precisão do modelo é o WER (taxa de erros de palavras). O WER conta o número de palavras incorretas identificadas durante o reconhecimento e divide a soma pelo número total de palavras fornecidas na transcrição literal (N).
As palavras incorretamente identificadas se enquadram em três categorias:
- I (inserção): palavras que são adicionadas incorretamente na transcrição de hipótese
- D (exclusão): palavras que não são detectadas na transcrição de hipótese
- S (substituição): palavras que foram substituídas entre a referência e a hipótese
No Speech Studio, o quociente é multiplicado por 100 e mostrado como uma porcentagem. Os resultados da CLI de Fala e da API REST não são multiplicados por 100.
$$ WER = {{I+D+S}\over N} \times 100 $$
Aqui está um exemplo que mostra palavras identificadas incorretamente, quando comparadas com a transcrição literal:
O resultado do reconhecimento de fala errou da seguinte maneira:
- Inserção (I): adicionada a palavra "a"
- Exclusão (D): excluído a palavra "are"
- Substituição (S): substituiu a palavra "Jones" por "John"
A taxa de erro da palavra do exemplo anterior é de 60%.
Se você quiser replicar as medidas do WER localmente, poderá usar a ferramenta sclite do SCTK (Conjunto de Ferramentas de Pontuação da NIST).
Resolver erros e aprimorar o WER
Você pode usar o cálculo do WER nos resultados de reconhecimento do computador para avaliar a qualidade do modelo que você está usando com seu aplicativo, ferramenta ou produto. Um WER de 5% a 10% é considerado uma boa qualidade e está pronto para uso. Um WER de 20% é aceitável, mas talvez você queira considerar mais treinamento. Um WER de 30% ou mais sinaliza baixa qualidade e requer personalização e treinamento.
O modo como os erros são distribuídos é importante. Quando muitos erros de exclusão são encontrados, isso geralmente ocorre devido à intensidade do sinal de áudio fraco. Para resolver esse problema, você precisará coletar dados de áudio mais perto da origem. Erros de inserção significam que o áudio foi registrado em um ambiente barulhento e com muitas conversas, causando problemas de reconhecimento. Erros de substituição geralmente são encontrados quando uma amostra insuficiente de termos específicos do domínio é fornecida como transcrições literais ou texto relacionado.
Ao analisar os arquivos, você pode determinar quais tipos de erros existem e quais erros são exclusivos para um arquivo específico. Entender os problemas no nível de arquivo ajuda você a direcionar os aprimoramentos.
Avaliar a taxa de erro de token (TER)
Além da taxa de erros de palavra, você também pode usar a medida estendida da Taxa de Erro de Token (TER) para avaliar a qualidade no formato de exibição de ponta a ponta final. Além do formato léxico (That will cost $900.
em vez de that will cost nine hundred dollars
), o TER leva em conta os aspectos de formato de exibição, como pontuação, capitalização e ITN. Saiba mais sobre a Formatação de texto de exibição com a conversão de fala em texto.
O WER conta o número de palavras incorretas identificadas durante o reconhecimento e divide a soma pelo número total de palavras fornecidas na transcrição literal (N).
$$ TER = {{I+D+S}\over N} \times 100 $$
A fórmula de cálculo do TER também é semelhante ao WER. A única diferença é que o TER é calculado com base no nível do token em vez do nível de palavra.
- Inserção (I): palavras que são adicionadas incorretamente na transcrição de hipótese
- Exclusão (D): palavras que não são detectadas na transcrição de hipótese
- Substituição (S): palavras que foram substituídas entre a referência e a hipótese
Em um caso real, é possível analisar os resultados de WER e TER para obter as melhorias desejadas.
Observação
Para medir o TER, você precisa verificar se os dados de teste de áudio + transcrição incluem transcrições com formatação de exibição, como pontuação, uso de maiúsculas e ITN.
Resultados do cenário de exemplo
Os cenários de reconhecimento de fala variam de acordo com a qualidade e a linguagem de áudio (vocabulário e estilo de fala). A seguinte tabela examina quatro cenários comuns:
Cenário | Qualidade de áudio | Vocabulário | Estilo de fala |
---|---|---|---|
Call center | Baixa, 8 kHz, poderia ser duas pessoas em um canal de áudio, poderia ser compactada | Estreito, exclusivo para domínio e produtos | De conversação, estruturada sem rigidez |
Assistente de voz, como a Cortana ou uma janela de drive-thru | Alta, 16 kHz | Entidade pesada (títulos de música, produtos, locais) | Palavras e frases claramente enunciadas |
Ditado (mensagem instantânea, notas, pesquisa) | Alta, 16 kHz | Variado | Anotações |
Legendagem oculta de vídeo | Variada, incluindo uso variado de microfone, música adicionada | Variado, desde reuniões, fala recitada, letra de música | Lido, preparado ou estruturado de modo flexível |
Diferentes cenários produzem resultados de qualidade diferentes. A tabela a seguir examina como o conteúdo desses quatro cenários está classificado no WER. A tabela mostra quais tipos de erro são mais comuns em cada cenário. As taxas de erro de inserção, substituição e exclusão ajudam você a determinar que tipo de dados adicionar para melhorar o modelo.
Cenário | Qualidade do reconhecimento de fala | Erros de inserção | Erros de exclusão | Erros de substituição |
---|---|---|---|---|
Call center | Médio (< 30% WER) |
Baixo, exceto quando outras pessoas falam em segundo plano | Pode ser alto. Os call centers podem ser ruidosos e as falas sobrepostas podem confundir o modelo | Média: Os nomes de pessoas e produtos podem causar esses erros |
Assistente de voz | Alto (pode ser < 10% WER) |
Baixo | Baixo | Médio, devido a títulos de música, nomes de produtos ou locais |
Ditado | Alto (pode ser < 10% WER) |
Baixo | Baixo | Alto |
Legendagem oculta de vídeo | Depende do tipo de vídeo (o WER pode ser < 50%) | Baixo | Pode ser alto devido a música, ruídos, qualidade do microfone | Jargão pode causar esses erros |