Melhorando o Reconhecimento de Voz para Nomes Raros
Esse método melhora a precisão de reconhecimento para nomes pouco comuns em saídas de voz.
Ernest Pusateri, Anmol Walia, Anirudh Kashi, Bortik Bandyopadhyay, Nadia Hyder, Sayantan Mahinder, Raviteja Anantha, Daben Liu, Sashank Gondala
― 6 min ler
Índice
Nos últimos tempos, os sistemas que reconhecem fala automaticamente ficaram bem avançados e precisos. Mas, mesmo assim, esses sistemas ainda cometem erros, especialmente quando se trata de nomes de entidades, como pessoas, lugares ou músicas que não aparecem muito nos dados de treinamento. Juntamente com esses sistemas de reconhecimento de fala, modelos de linguagem grandes surgiram como ferramentas úteis para várias tarefas linguísticas, incluindo a correção de erros no reconhecimento de fala.
O Problema com Nomes Raros
Quando os sistemas de reconhecimento de fala são treinados, eles aprendem a partir de muitos dados, mas se certos nomes ou termos não estão frequentemente incluídos, o sistema tem dificuldade em reconhecê-los corretamente. Isso é um problema especialmente para assistentes de voz, que os usuários esperam que entendam uma ampla gama de nomes, inclusive os menos conhecidos.
Usando Modelos de Linguagem para Correção
Modelos de linguagem grandes podem ser bem eficazes quando combinados com bancos de dados de conhecimento relevante. Eles podem puxar informações desses bancos para ajudar a realizar tarefas melhor. Esse método é chamado de geração aumentada por recuperação. Nesse contexto, podemos usar um método semelhante para corrigir erros no reconhecimento de nomes de entidades falados.
Nossa Abordagem
Propondo um método que utiliza um banco de dados vetorial onde armazenamos nomes de entidades relevantes. Quando o sistema de reconhecimento de fala gera um nome potencialmente incorreto, podemos criar uma consulta com base nessa saída. Essa consulta é enviada ao nosso banco de dados vetorial para encontrar os nomes de entidades corretos. Os nomes recuperados são então combinados com a saída original de fala e enviados para um Modelo de Linguagem projetado para corrigir erros de reconhecimento da fala.
Como Funciona
Nosso método envolve quatro passos principais:
- Geração de Consultas: Geramos consultas a partir da saída de fala para encontrar nomes relevantes.
- Recuperação de Entidades: Procuramos os nomes em um banco de dados usando as consultas geradas.
- Construção de Contexto: Coletamos o contexto necessário para ajudar nosso modelo de linguagem a fazer correções.
- Aplicação do Modelo de Linguagem: Finalmente, alimentamos o contexto coletado no modelo de linguagem, que fornece saídas corrigidas.
Gerando Consultas
Criar consultas eficazes é crucial para recuperar os nomes certos. Exploramos três maneiras principais de gerar essas consultas, cada uma com seus prós e contras:
Todos os N-grams: Esse método usa todas as sequências possíveis de palavras da saída de fala. Embora seja simples e não precise de regras extras, pode gerar muitas consultas, dificultando a identificação da certa.
Correspondência de Padrões: Essa abordagem usa padrões específicos na linguagem para identificar nomes potenciais. Embora gere menos consultas, requer a criação manual desses padrões, o que pode deixar alguns nomes de fora.
Marcação de Entidades Nomeadas: Esse método usa um modelo que foi treinado para identificar nomes na saída de fala. Esse é mais flexível e captura mais casos especiais, mas traz complexidade adicional, pois precisa de seu próprio treinamento.
Recuperando Nomes
Para a etapa de recuperação, precisamos casar nossas consultas com os nomes em nosso banco de dados. Temos diferentes métodos para isso:
- Okapi BM25: Um método para classificar a relevância do texto.
- Embutimentos Semânticos T5: Esse método captura o significado por trás das palavras.
- Embutimentos de Vizinhos Acústicos: Esse foca nos sons, essencial para reconhecer nomes com base em como são pronunciados.
Entre esses, os Embutimentos de Vizinhos Acústicos se mostraram os mais eficazes em nossos testes.
Construindo Contexto
Para garantir que nossas correções sejam precisas, precisamos criar um contexto que inclua nomes relevantes sem sobrecarregar o sistema com informações desnecessárias. Filtramos os nomes recuperados com base em métricas de distância para garantir que mantemos apenas os candidatos mais relacionados.
Também consideramos dois formatos para nossas strings de dica. Uma opção inclui apenas o nome recuperado, enquanto a outra adiciona a consulta usada para encontrar aquele nome. Depois de criar esse contexto, apresentamos ao modelo de linguagem.
Trabalhos Anteriores
Existem vários estudos sobre correção de erros em reconhecimento de fala, especialmente em relação a nomes. Algumas pesquisas examinaram como aproveitar a fonética e semelhanças acústicas para melhorar o reconhecimento. No entanto, poucos incluíram uma etapa de recuperação, o que limita a capacidade de lembrar nomes relevantes.
Nosso método simplifica o processo usando codificadores genéricos e um modelo menor em vez de arquiteturas complexas. Isso possibilita correções mais eficientes sem necessidade de entrada de áudio, tornando-o adaptável a cenários onde somente a saída de texto está disponível.
Testando Nosso Método
Para testar nossa abordagem, focamos em como ela melhora o reconhecimento de nomes relacionados à música em um sistema de assistente de voz. Usamos diferentes fontes de dados, incluindo um dataset amplamente reconhecido que inclui vários domínios. Também criamos consultas sintéticas de música para expandir nosso conjunto de dados e garantir que pudéssemos testar nosso método com uma variedade de nomes comuns e raros.
Treinamos nossos sistemas para reconhecer diferentes entidades e avaliamos seu desempenho com base em quão precisamente transcreveram os nomes.
Resultados do Teste
Através dos nossos testes, medimos o desempenho do nosso sistema em termos de Taxa de Erro de Palavras (WER). Primeiro, comparamos vários métodos para gerar chaves e consultas e descobrimos que os Embutimentos de Vizinhos Acústicos superaram significativamente os outros, alcançando taxas de sucesso muito mais altas.
Em seguida, tentamos diferentes estratégias para adaptar nosso modelo de linguagem à nossa tarefa específica. Descobrimos que um modelo adaptador menor teve desempenho tão bom quanto modelos maiores, tornando-o mais eficiente.
Quando aplicamos nossas técnicas de geração de consultas, notamos melhorias na WER ao usar dicas para entidades nomeadas. Mesmo quando não fornecemos dicas, ainda vimos pequenos ganhos, o que sugeriu que nosso sistema estava fazendo correções de forma eficaz por conta própria.
Fazendo Sentido dos Resultados
Os melhores resultados que alcançamos mostraram reduções significativas na WER em vários testes. A eficácia do nosso método foi particularmente notável ao lidar com nomes raros em consultas relacionadas à música. Importante, garantimos que nossas correções não impactassem negativamente a capacidade do sistema de entender nomes em outros domínios.
Conclusão
Em conclusão, apresentamos um método simples para corrigir erros no reconhecimento de nomes a partir de saídas de fala. Ao incorporar uma etapa de recuperação juntamente com um modelo de linguagem adaptado, melhoramos a precisão do reconhecimento para nomes raros de entidades. Nossas descobertas demonstram que aproveitar semelhanças acústicas pode levar a melhorias significativas na compreensão, especialmente para assistentes de voz que atendem usuários com solicitações de nomes diversos e potencialmente incomuns.
Título: Retrieval Augmented Correction of Named Entity Speech Recognition Errors
Resumo: In recent years, end-to-end automatic speech recognition (ASR) systems have proven themselves remarkably accurate and performant, but these systems still have a significant error rate for entity names which appear infrequently in their training data. In parallel to the rise of end-to-end ASR systems, large language models (LLMs) have proven to be a versatile tool for various natural language processing (NLP) tasks. In NLP tasks where a database of relevant knowledge is available, retrieval augmented generation (RAG) has achieved impressive results when used with LLMs. In this work, we propose a RAG-like technique for correcting speech recognition entity name errors. Our approach uses a vector database to index a set of relevant entities. At runtime, database queries are generated from possibly errorful textual ASR hypotheses, and the entities retrieved using these queries are fed, along with the ASR hypotheses, to an LLM which has been adapted to correct ASR errors. Overall, our best system achieves 33%-39% relative word error rate reductions on synthetic test sets focused on voice assistant queries of rare music entities without regressing on the STOP test set, a publicly available voice assistant test set covering many domains.
Autores: Ernest Pusateri, Anmol Walia, Anirudh Kashi, Bortik Bandyopadhyay, Nadia Hyder, Sayantan Mahinder, Raviteja Anantha, Daben Liu, Sashank Gondala
Última atualização: 2024-09-09 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2409.06062
Fonte PDF: https://arxiv.org/pdf/2409.06062
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.