Editar

Compartilhar via


Implementar a conversão de fala em texto personalizada

Serviços de IA do Azure
Fala de IA do Azure
Azure Machine Learning

Esse guia de duas partes descreve várias abordagens para implementar com eficiência aplicativos com reconhecimento de fala de alta qualidade. Ele concentra-se em estender e personalizar o modelo de linha de base da funcionalidade de conversão de fala em texto fornecido pelo serviço de fala de IA.

Esse artigo descreve o espaço do problema e o processo de tomada de decisão para projetar sua solução. O segundo artigo, Implantar uma solução personalizada de conversão de fala em texto, fornece um caso de uso para aplicar essas instruções e práticas recomendadas.

O espectro de IA pré-construído e personalizado

O espectro de IA pré-construído e personalizado representa vários níveis de esforço de desenvolvimento e personalização de modelos de IA, que vão desde modelos pré-construídos prontos para uso até soluções de IA totalmente personalizadas.

Diagrama que mostra o espectro de camadas de personalização.

No lado esquerdo do espectro, os Serviços de IA do Azure permitem uma implementação rápida e de baixo atrito de recursos de IA em aplicativos por meio de modelos pré-treinados. A Microsoft organiza conjuntos de dados extensos para treinar e criar esses modelos de linha de base. Como resultado, você pode usar modelos de linha de base sem dados de treinamento adicionais. Eles são consumidos por meio de chamadas de API programáticas de segurança aprimorada.

Os serviços de IA do Azure incluem:

  • Fala. Conversão de fala em texto, conversão de texto em fala, tradução de fala e Reconhecimento do Locutor
  • Idioma. Reconhecimento de entidades, análise de sentimentos, resposta às perguntas, compreensão da linguagem coloquial e tradução
  • Oftalmológico. Visão computacional e API Facial
  • Decisão. Detector de anomalias, moderador de conteúdo e personalizador
  • Serviço OpenAI. Modelos de linguagem avançados

Quando os modelos de linha de base pré-criados não têm desempenho com precisão suficiente em seus dados, você pode personalizá-los adicionando dados de treinamento relativos ao domínio do problema. Essa personalização requer o esforço extra de reunir dados adequados para treinar e avaliar um modelo aceitável. Os serviços de IA do Azure personalizáveis incluem Visão Personalizada, Tradução Personalizado, Fala Personalizada e CLU. Estender os modelos de Serviços de IA do Azure pré-construídos é o foco. A maior parte desse artigo está focada nessa área central.

Como alternativa, quando os modelos e os dados de treinamento se concentram em um cenário específico e exigem um conjunto de dados de treinamento proprietário, o Azure Machine Learning fornece recursos de solução personalizados, ferramentas, computação e orientação de fluxo de trabalho para dar suporte à criação de modelos totalmente personalizados. Esse cenário aparece no lado direito do espectro. Esses modelos são construídos do zero. O desenvolvimento de um modelo usando o Azure Machine Learning normalmente varia de usar ferramentas visuais como AutoML a desenvolver programaticamente o modelo usando notebooks.

Serviço de Fala do Azure

O Serviço de Fala do Azure unifica a funcionalidade de conversão de fala em texto, conversão de texto em fala, tradução de fala, assistente de voz e Reconhecimento do Locutor em uma assinatura única baseada nos Serviços de IA do Azure. Você pode habilitar um aplicativo para fala integrando-se ao Serviço Cognitivo do Azure para Fala por meio de SDKs e APIs fáceis de usar.

O serviço de conversão de fala em texto do Azure analisa o áudio em tempo real ou de forma assíncrona para transcrever a palavra falada em texto. Pronta para uso, a conversão de fala em texto do Azure usa um Modelo de Linguagem Universal como uma linha de base que reflete a linguagem falada comumente usada. Esse modelo de linha de base é pré-treinado com dialetos e fonética que representam uma variedade de domínios comuns. Como resultado, o consumo do modelo de linha de base não requer configuração extra e funciona bem na maioria dos cenários.

Observe, no entanto, que o modelo de linha de base pode não ser suficiente se o áudio contiver ruído ambiente ou incluir muitos jargões específicos do setor e do domínio. Nesses casos, a criação de um modelo de fala personalizado faz sentido. Você faz isso treinando com dados adicionais associados ao domínio específico.

Dependendo do tamanho do domínio personalizado, também pode fazer sentido treinar vários modelos e compartimentar um modelo para um aplicativo individual. Por exemplo, os comentaristas das Olimpíadas relatam vários esportes, cada um com seu próprio jargão. Como cada esporte tem um vocabulário que difere significativamente dos outros, a construção de um modelo personalizado específico para um esporte aumenta a precisão, limitando os dados enunciados relativos a esse esporte específico. Como resultado, o modelo pode aprender com um conjunto preciso e direcionado de dados.

Portanto, há três abordagens para implementar a conversão de fala em texto do Azure:

  • O modelo de linha de base é apropriado quando o áudio está livre de ruído ambiente e a fala transcrita consiste em linguagem comumente falada.
  • Um modelo personalizado aumenta o modelo de linha de base para incluir vocabulário específico do domínio que é compartilhado em todas as áreas do domínio personalizado.
  • Vários modelos personalizados fazem sentido quando o domínio personalizado tem várias áreas, cada uma com um vocabulário específico.

Diagrama que resume as três abordagens para implementar a conversão de fala em texto do Azure.

Possíveis casos de uso

Aqui estão alguns cenários genéricos e casos de uso em que a conversão de fala em texto personalizada é útil:

  • Transcrição de fala para um domínio específico, como transcrição médica ou transcrição de call center
  • Transcrição ao vivo, como em um aplicativo ou para fornecer legendas para streaming de vídeo ao vivo

SDKs da Microsoft e ferramentas de código aberto

Estes recursos poderão ser úteis quando você estiver trabalhando com a conversão de fala em texto:

Considerações sobre o design

Esta seção descreve algumas considerações de design para a criação de um aplicativo baseado em fala.

Modelo de linha de base versus modelo personalizado

A Fala do Azure inclui modelos de linha de base que dão suporte a vários idiomas. Esses modelos são pré-treinados com uma vasta quantidade de vocabulário e domínios. No entanto, você pode ter um vocabulário especializado que precisa de reconhecimento. Nessas situações, os modelos de linha de base podem ficar aquém. A melhor maneira de determinar se o modelo base será suficiente é analisar a transcrição produzida a partir do modelo de linha de base e compará-la com uma transcrição gerada por humanos para o mesmo áudio. O artigo de implantação neste guia descreve o uso do Speech Studio para comparar as transcrições e obter uma pontuação de taxa de erro de palavras (WER). Se houver várias substituições incorretas de palavras nos resultados, recomendamos que você treine um modelo personalizado para reconhecer essas palavras.

Um versus muitos modelos personalizados

Se o seu cenário se beneficiar de um modelo personalizado, você precisará determinar quantos modelos criar. Um modelo é tipicamente suficiente se os enunciados estiverem intimamente relacionados a uma área ou domínio. No entanto, vários modelos são melhores se o vocabulário for significativamente diferente entre as áreas de domínio. Nesse cenário, você também precisa de uma variedade de dados de treinamento.

Voltemos ao exemplo das Olimpíadas. Digamos que você precise incluir a transcrição de comentários em áudio para vários esportes, incluindo hóquei no gelo, luge, snowboard, esqui alpino e muito mais. A construção de um modelo de fala personalizado para cada esporte melhorará a precisão, pois cada esporte tem uma terminologia única. No entanto, cada modelo deve ter dados de treinamento diversos. É muito restritivo e inextensível criar um modelo para cada comentarista para cada esporte. Uma abordagem mais prática é construir um modelo único para cada esporte, mas incluir áudio de um grupo que inclui comentaristas com sotaques diferentes, de ambos os gêneros e de várias idades. Todas as frases específicas de domínio relacionadas ao esporte, capturadas pelos diversos comentaristas, residem no mesmo modelo.

Você também precisa considerar quais idiomas e localidades oferecer suporte. Pode fazer sentido criar esses modelos por localidade.

Adaptação de modelos acústicos e de linguagem

A Fala do Azure fornece três opções para treinar um modelo personalizado:

Adaptação de modelo de linguagem é a personalização mais comumente usada. Um modelo de linguagem ajuda a treinar como certas palavras são usadas juntas em um contexto específico ou em um domínio específico. Criar um modelo de linguagem também é relativamente fácil e rápido. Primeiro, treine o modelo fornecendo uma variedade de enunciados e frases para o domínio específico. Por exemplo, se o objetivo é gerar transcrição para esqui alpino, colete transcrições geradas por humanos de vários eventos de esqui. Edite e combine-os para criar um arquivo de dados de treinamento com cerca de 50 mil frases. Para obter mais detalhes sobre os requisitos de dados para treinamento de modelo de idioma personalizado, consulte Conjuntos de dados de treinamento e teste.

A personalização do modelo de pronúncia também é uma das personalizações mais usadas. Um modelo de pronúncia ajuda o modelo personalizado a reconhecer palavras incomuns que não têm uma pronúncia padrão. Por exemplo, algumas das terminologias do esqui alpino tomam emprestado de outras línguas, como os termos schuss e mogul. Essas palavras são excelentes candidatas para treinamento com um conjunto de dados de pronúncia. Para obter mais detalhes sobre como melhorar o reconhecimento usando um arquivo de pronúncia, consulte Dados de pronúncia para treinamento. Para obter detalhes sobre como criar um modelo personalizado usando o Speech Studio, consulte O que é a Fala Personalizada?.

A Adaptação de modelo acústico fornece treinamento fonético sobre a pronúncia de determinadas palavras para que a Fala do Azure possa reconhecê-las adequadamente. Para construir um modelo acústico, você precisa de amostras de áudio e transcrições geradas por humanos. Se o idioma de reconhecimento corresponder a localidades comuns, como en-US, o uso do modelo de linha de base atual deverá ser suficiente. Os modelos de linha de base têm treinamento diversificado que usa as vozes de falantes nativos e não nativos de inglês para cobrir uma vasta quantidade de vocabulário em inglês. Portanto, a construção de uma adaptação do modelo acústico no modelo base en-US pode não proporcionar muitas melhorias. Treinar um modelo acústico personalizado também leva um pouco mais de tempo. Para obter mais informações sobre os requisitos de dados para treinamento acústico personalizado, consulte Conjuntos de dados de treinamento e teste.

O modelo personalizado final pode incluir conjuntos de dados que usam uma combinação de todas as três personalizações descritas nessa seção.

Treinando um modelo personalizado

Há duas abordagens para treinar um modelo personalizado:

  • Treine com inúmeros exemplos de frases e enunciados do domínio. Por exemplo, inclua transcrições de áudio de eventos de esqui alpino limpos e normalizados e transcrições geradas por humanos de eventos anteriores. Certifique-se de que as transcrições incluam os termos usados no esqui alpino e vários exemplos de como os comentaristas os pronunciam. Se você seguir esse processo, o modelo personalizado resultante deverá ser capaz de reconhecer palavras e frases específicas do domínio.

  • Treine com dados específicos que se concentram em áreas problemáticas. Essa abordagem funciona bem quando não há muitos dados de treinamento, por exemplo, se novas gírias são usadas durante eventos de esqui alpino e precisam ser incluídas no modelo. Esse tipo de treinamento usa a seguinte abordagem:

    • Use o Speech Studio para gerar uma transcrição e compará-la com transcrições geradas por humanos.
    • Identifique áreas problemáticas a partir de padrões no que os comentaristas dizem. Identificar:
      • Os contextos dentro dos quais a palavra-problema ou enunciado é aplicado.
      • Diferentes flexões e pronúncias da palavra ou enunciado.
      • Quaisquer aplicações específicas do comentarista da palavra ou do enunciado.

Treinar um modelo personalizado com dados específicos pode ser demorado. As etapas incluem analisar cuidadosamente as lacunas de transcrição, adicionar manualmente frases de treinamento e repetir esse processo várias vezes. No entanto, ao final, essa abordagem proporciona um treinamento focado para as áreas problemáticas que foram transcritas incorretamente. E é possível construir iterativamente esse modelo treinando seletivamente em áreas críticas e, em seguida, descendo a lista em ordem de importância. Outro benefício é que o tamanho do conjunto de dados incluirá algumas centenas de declarações em vez de alguns milhares, mesmo após muitas iterações de construção dos dados de treinamento.

Depois de criar seu modelo

Depois de criar seu modelo, lembre-se das seguintes recomendações:

  • Esteja ciente da diferença entre texto lexical e texto de exibição. O Speech Studio produz WER com base em texto lexical. No entanto, o que o usuário vê é o texto de exibição com pontuação, maiúsculas e palavras numéricas representadas como números. A seguir está um exemplo de texto lexical versus texto de exibição.

    Texto lexical: a velocidade é ótima, e o tempo é ainda melhor cinquenta e sete zero seis três segundos para o alemão

    Texto de exibição: a velocidade é ótima. E esse tempo é ainda melhor. 57063 segundos para o alemão.

    O que se espera (implícito) é: a velocidade é ótima. E esse tempo é ainda melhor. 57,063 segundos para o alemão

    O modelo personalizado tem uma taxa WER baixa, mas isso não significa que a taxa de erro percebida pelo usuário (erros no texto de exibição) seja baixa. Esse problema ocorre principalmente na entrada alfanumérica porque aplicativos diferentes podem ter maneiras alternativas de representar a entrada. Você não deve confiar apenas no WER. Você também precisa revisar o resultado final do reconhecimento.

    Quando o texto de exibição parecer errado, revise o resultado de reconhecimento detalhado do SDK, que inclui texto lexical, no qual tudo é soletrado. Se o texto lexical estiver correto, o reconhecimento é preciso. Em seguida, você pode resolver imprecisões no texto de exibição (o resultado final reconhecido) adicionando regras de pós-processamento.

  • Gerencie conjuntos de dados, modelos e suas versões. No Speech Studio, quando você cria projetos, conjuntos de dados e modelos, há apenas dois campos: nome e descrição. Ao criar conjuntos de dados e modelos iterativamente, você precisa seguir um bom esquema de nomenclatura e controle de versão para facilitar a identificação do conteúdo de um conjunto de dados e qual modelo reflete qual versão do conjunto de dados. Para obter mais detalhes sobre essa recomendação, consulte Implantar uma solução personalizada de conversão de fala em texto.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Outros colaboradores:

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas