Editar

Implementar fala personalizada para texto

Azure AI services
Azure AI Speech
Azure Machine Learning

Este guia de duas partes descreve várias abordagens para implementar eficientemente aplicativos com reconhecimento de fala de alta qualidade. Ele se concentra em estender e personalizar o modelo de linha de base da funcionalidade de fala para texto que é fornecido pelo serviço AI Speech.

Este 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 fala para 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árias camadas de personalização e esforço de desenvolvimento 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 de oradores
  • Idioma. Reconhecimento de entidades, análise de sentimento, resposta a perguntas, compreensão de linguagem conversacional e tradutor
  • Visão. Visão computacional e Face API
  • Decisão. Detetor de anomalias, moderador de conteúdo e personalizador
  • Serviço OpenAI. Modelos linguísticos avançados

Quando os modelos de linha de base pré-criados não tiverem um desempenho suficientemente preciso em seus dados, você poderá personalizá-los adicionando dados de treinamento relativos ao domínio do problema. Essa personalização requer o esforço extra de coletar dados adequados para treinar e avaliar um modelo aceitável. Os serviços de IA do Azure que são personalizáveis incluem Visão Personalizada, Tradutor Personalizado, Fala Personalizada e CLU. A extensão de modelos de serviços de IA do Azure pré-criados está no centro do espectro. A maior parte deste 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 Aprendizado de Máquina do Azure 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. Este cenário aparece no lado direito do espectro. Estes modelos são construídos de raiz. O desenvolvimento de um modelo usando o Aprendizado de Máquina do Azure normalmente varia desde o uso de ferramentas visuais como AutoML até o desenvolvimento programático do modelo usando blocos de anotações.

Serviço de Fala do Azure

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

O serviço de fala para texto do Azure analisa o áudio em tempo real ou de forma assíncrona para transcrever a palavra falada em texto. Pronto para usar, 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. Este modelo de base é pré-treinado com dialetos e fonética que representam uma variedade de domínios comuns. Como resultado, consumir o modelo de linha de base não requer nenhuma configuração extra e funciona bem na maioria dos cenários.

Note, 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 da indústria 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, construir um modelo personalizado específico para um esporte aumenta a precisão, limitando os dados de enunciação relativos a esse esporte em particular. 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 o Azure speech to text.

Potenciais casos de utilização

Aqui estão alguns cenários genéricos e casos de uso em que a fala personalizada para o texto é ú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

Quando estiver a trabalhar com conversão de voz em texto, poderá considerar estes recursos úteis:

Considerações de design

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

Modelo de linha de base versus modelo personalizado

O Azure Speech inclui modelos de linha de base que dão suporte a vários idiomas. Estes 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. Nestas situações, os modelos 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 contra muitos modelos personalizados

Se o seu cenário se beneficiar de um modelo personalizado, você precisará determinar quantos modelos criar. Normalmente, um modelo é 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. Construir um modelo de fala personalizado para cada esporte melhorará a precisão, porque cada esporte tem terminologia única. No entanto, cada modelo deve ter diversos dados de treinamento. É demasiado restritivo e inextensível criar um modelo para cada comentador de cada desporto. 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 sexos e de várias idades. Todas as frases específicas de domínio relacionadas ao esporte, conforme 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 linguísticos

O Azure Speech fornece três opções para treinar um modelo personalizado:

A adaptação do modelo de linguagem é a personalização mais usada. Um modelo de linguagem ajuda a treinar como certas palavras são usadas juntas em um contexto particular ou um domínio específico. Construir 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 o esqui alpino, colete transcrições geradas por humanos de vários eventos de esqui. Limpe-os e combine-os para criar um arquivo de dados de treinamento com cerca de 50 mil frases e 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 são emprestadas de outras línguas, como os termos schuss e mogul. Estas 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 é fala personalizada?.

A adaptação do modelo acústico fornece treinamento fonético na pronúncia de determinadas palavras para que o Azure Speech possa reconhecê-las corretamente. 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, construir uma adaptação de modelo acústico no modelo base en-US pode não fornecer 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 nesta 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 incluem os termos usados no esqui alpino e vários exemplos de como os comentadores 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. Este tipo de formação utiliza 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 ou enunciado problemático é aplicado.
      • Diferentes flexões e pronúncias da palavra ou enunciado.
      • Quaisquer aplicações específicas do comentador 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, no final, esta abordagem fornece treinamento focado para as áreas problemáticas que anteriormente 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 enunciados em vez de alguns milhares, mesmo depois de muitas iterações de construção dos dados de treinamento.

Depois de construir o seu modelo

Depois de criar seu modelo, tenha em mente as 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. Segue-se um exemplo de texto lexical versus texto de visualização.

    Texto lexical: a velocidade é grande e o tempo é ainda melhor cinquenta e sete oh seis três segundos para o alemão

    Exibir texto: 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 baixa taxa de WER, 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 diferentes aplicativos podem ter maneiras alternativas de representar a entrada. Você não deve confiar apenas no WER. Você também precisa rever 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 está escrito. 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 fala para texto.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

Outros contribuidores:

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

Próximos passos