Usar o OCI Speech para Transcrever Linguagem Natural

O Oracle Cloud Infrastructure (OCI) Speech é um dos vários serviços de IA nativos da nuvem. Você pode usar o serviço Speech para converter arquivos de áudio em texto legível armazenado no formato JSON.

O Speech aproveita o poder da linguagem falada, permitindo que você converta facilmente arquivos de áudio contendo fala humana em transcrições de texto altamente precisas. O serviço é um aplicativo nativo do OCI que você pode acessar usando um aplicativo Web, uma API REST, um SDK, uma CLI ou uma Console.

O Speech usa a tecnologia de reconhecimento automático de fala (ASR) para fornecer uma transcrição gramaticalmente correta de arquivos de vídeo e áudio. Speech lida com gravações de áudio de baixa fidelidade e transcreve gravações desafiadoras, como reuniões ou chamadas de call center. Usando o Speech, você pode transformar arquivos armazenados no OCI Object Storage ou em um ativo de dados em texto preciso, normalizado, com marca de data/hora e filtrado por palavrões. Esta funcionalidade está disponível com serviços downstream. Por exemplo, você pode usar serviços adicionais, como idioma e previsão, para analisar o sentimento da chamada, direcionar o conteúdo para publicidade, indexar suas pastas de mídia e criar um mecanismo de pesquisa de mídia usando o Oracle Cloud Infrastructure Lakehouse.

Arquitetura

Essa arquitetura demonstra o relacionamento entre os vários componentes em um sistema típico que tem o OCI Speech em sua essência.

Essa arquitetura pode se aplicar a muitos tipos de aplicativos. Por exemplo, um aplicativo Web pode registrar a conversa de um representante do help desk com um cliente que está relatando um problema. O arquivo de áudio da conversa é salvo no OCI Object Storage, que emite eventos para novos arquivos de áudio. O OCI Events aciona um aplicativo do OCI Functions que cria uma solicitação de transcrição usando uma chamada de API REST para o serviço OCI Speech. O Speech pega o job, recupera o arquivo de áudio do OCI Object Storage, alimenta o arquivo em modelos acústicos e de linguagem pré-treinados e transfere a saída para um arquivo de texto JSON. O arquivo JSON é armazenado no OCI Object Storage. O OCI Object Storage detecta o novo arquivo de texto e emite um evento. O OCI Events aciona o OCI Functions para extrair o arquivo de texto e fazer upload do texto e dos metadados para um banco de dados MySQL. O OCI Events também aciona o OCI Notifications para publicar uma mensagem quando a transcrição estiver pronta, o que notifica o aplicativo Web que se inscreve no evento. O aplicativo Web exibe a transcrição no ticket criado pelo representante do helpdesk.

Opcionalmente, o aplicativo Web pode recuperar metadados de arquivo de áudio, como a duração, o tamanho, a data e a hora de início do arquivo de áudio e salvá-los no ticket do help desk.

Os arquivos de áudio e texto armazenados no OCI Object Storage podem ser alimentados em ferramentas analíticas downstream usando o Oracle Cloud Infrastructure Lakehouse (não mostrado no diagrama).

O diagrama a seguir ilustra essa arquitetura de referência.

Veja a seguir a descrição da arquitetura-ai-speech.png
Descrição da ilustração architecture-ai-speech.png

arquitetura-ai-speech-oracle.zip

A arquitetura tem os seguintes componentes:

  • Região

    Região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominada domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou até mesmo continentes).

  • Domínios de disponibilidade

    Domínios de disponibilidade são data centers stand-alone e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que oferece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou refrigeração ou a rede interna do domínio de disponibilidade. Portanto, uma falha em um domínio de disponibilidade não deve afetar os outros domínios de disponibilidade na região.

  • Domínios de falha

    Um domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com energia e hardware independentes. Quando você distribui recursos entre vários domínios de falha, seus aplicativos podem tolerar falhas físicas do servidor, manutenção do sistema e falhas de energia dentro de um domínio de falha.

  • Rede virtual na nuvem (VCN) e sub-redes

    Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes tradicionais de data center, as VCNs oferecem controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após a criação da VCN. Você pode segmentar uma VCN em sub-redes, com escopo definido para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não se sobrepõem a outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

  • Compartimento

    Compartimentos são partições lógicas entre regiões em uma tenancy do Oracle Cloud Infrastructure. Use compartimentos para organizar seus recursos no Oracle Cloud, controlar o acesso aos recursos e definir cotas de uso. Para controlar o acesso aos recursos em um determinado compartimento, você define políticas que especificam quem pode acessar os recursos e quais ações eles podem executar.

  • Balanceador de carga

    O serviço Oracle Cloud Infrastructure Load Balancing fornece distribuição automatizada de tráfego de um único ponto de entrada para vários servidores no back-end.

  • Lista de segurança

    Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego que deve ser permitido dentro e fora da sub-rede.

  • Serviço IAM (Identity and Access Management)

    O Oracle Cloud Infrastructure Identity and Access Management (IAM) é o plano de controle de acesso para o Oracle Cloud Infrastructure (OCI) e o Oracle Cloud Applications. A API do serviço IAM e a interface do usuário permitem que você gerencie domínios de identidade e os recursos dentro do domínio de identidades. Cada domínio de identidades do OCI IAM representa uma solução independente de gerenciamento de identidade e acesso ou uma população de usuários diferente.

  • Object Storage

    O armazenamento de objetos fornece acesso rápido a grandes quantidades de dados estruturados e não estruturados de qualquer tipo de conteúdo, incluindo backups de bancos de dados, dados de análise e conteúdo avançado, como imagens e vídeos. Você pode armazenar de forma segura e depois recuperar dados diretamente da internet ou de dentro da plataforma da nuvem. Você pode dimensionar o armazenamento sem prejudicar o desempenho ou a confiabilidade do serviço. Use o armazenamento padrão para armazenamento "quente" que você precisa para acessar de forma rápida, imediata e com frequência. Use o armazenamento de arquivos compactados para armazenamento "frio" que você mantém por longos períodos de tempo e raramente acessa.

  • Serviço Functions

    O Oracle Cloud Infrastructure Functions é uma plataforma Functions-as-a-Service (FaaS) totalmente gerenciada, multitenant, altamente escalável e sob demanda. Ele é alimentado pelo mecanismo de código aberto do Fn Project. As funções permitem que você implante seu código e o chame diretamente ou o acione em resposta a eventos. O Oracle Functions usa contêineres do Docker hospedados no Oracle Cloud Infrastructure Registry.

  • Eventos

    Os serviços do Oracle Cloud Infrastructure emitem eventos, que são mensagens estruturadas que descrevem as alterações em recursos. Os eventos são emitidos para operações de criação, leitura, atualização ou exclusão (CRUD), alterações no estado do ciclo de vida do recurso e eventos do sistema que afetam os recursos da nuvem.

  • Monitoring

    O serviço Oracle Cloud Infrastructure Monitoring monitora ativa e passivamente seus recursos de nuvem usando métricas para monitorar recursos e alarmes para notificá-lo quando essas métricas atenderem aos acionadores especificados pelo alarme.

  • Auditoria

    O serviço Oracle Cloud Infrastructure Audit registra automaticamente as chamadas para todos os pontos finais suportados da API (application programming interface) pública do Oracle Cloud Infrastructure como eventos de log. Atualmente, todos os serviços suportam os logs do Oracle Cloud Infrastructure Audit.

  • Notifications

    O serviço Oracle Cloud Infrastructure Notifications transmite mensagens a componentes distribuídos por meio de um padrão publicar-assinar, entregando mensagens seguras, altamente confiáveis, de baixa latência e duráveis para aplicativos hospedados no Oracle Cloud Infrastructure.

  • Serviço Oracle Cloud Infrastructure Speech

    O Oracle Cloud Infrastructure Speech é um novo serviço de IA que usa o ASR (Reconhecimento Automático de Fala) para converter fala em texto.

  • Oracle MySQL Database Service

    O Oracle MySQL Database Service é um serviço de banco de dados totalmente gerenciado do Oracle Cloud Infrastructure (OCI) que permite aos desenvolvedores desenvolver e implantar rapidamente aplicativos seguros e nativos na nuvem. Otimizado e exclusivamente disponível na OCI, o Oracle MySQL Database Service é 100% criado, gerenciado e suportado pelas equipes de engenharia da OCI e MySQL.

    O Oracle MySQL Database Service tem um mecanismo de análise integrado e de alto desempenho (HeatWave) para executar análises sofisticadas em tempo real diretamente em um banco de dados MySQL operacional.

Recomendações

Seus requisitos podem ser diferentes da arquitetura descrita aqui. Use as recomendações a seguir como ponto de partida.

  • VCN

    Ao criar uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar às sub-redes na VCN. Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão.

    Selecione blocos CIDR que não se sobreponham a qualquer outra rede (no Oracle Cloud Infrastructure, seu data center local ou outro provedor de nuvem) para a qual você pretende configurar conexões privadas.

    Depois de criar uma VCN, você poderá alterar, adicionar e remover seus blocos CIDR.

    Ao projetar as sub-redes, considere seus requisitos de fluxo de tráfego e segurança. Anexe todos os recursos dentro de uma camada ou função específica à mesma sub-rede, que pode servir como um limite de segurança.

  • Segurança

    Use o Oracle Cloud Guard para monitorar e manter a segurança de seus recursos no Oracle Cloud Infrastructure de forma proativa. O Cloud Guard usa receitas do detector que você pode definir para examinar seus recursos quanto a pontos fracos de segurança e monitorar operadores e usuários em busca de atividades arriscadas. Quando qualquer configuração incorreta ou atividade insegura é detectada, o Cloud Guard recomenda ações corretivas e ajuda a executar essas ações, com base nas receitas do respondedor que você pode definir.

    Para recursos que exigem segurança máxima, a Oracle recomenda o uso de zonas de segurança. Uma zona de segurança é um compartimento associado a uma receita definida pela Oracle de políticas de segurança baseadas nas melhores práticas. Por exemplo, os recursos de uma zona de segurança não devem ser acessíveis por meio da internet pública e devem ser criptografados usando chaves gerenciadas pelo cliente. Quando você criar e atualizar recursos em uma zona de segurança, o Oracle Cloud Infrastructure validará as operações de acordo com as políticas na receita de zona de segurança e negará as operações que violarem qualquer uma das políticas.

  • Cloud Guard

    Clone e personalize as receitas padrão fornecidas pela Oracle para criar receitas personalizadas do detector e do respondedor. Essas receitas permitem que você especifique que tipo de violações de segurança geram uma advertência e quais ações podem ser executadas nelas. Por exemplo, talvez você queira detectar buckets do serviço Object Storage que tenham visibilidade definida como pública.

    Aplique o Cloud Guard no nível da tenancy para cobrir o escopo mais amplo e reduzir a carga administrativa de manter várias configurações.

    Você também pode usar o recurso Lista Gerenciada para aplicar determinadas configurações aos detectores.

  • Zonas de Segurança

    Clone e personalize as receitas padrão fornecidas pela Oracle para criar receitas personalizadas do detector e do respondedor. Essas receitas permitem que você especifique que tipo de violações de segurança geram uma advertência e quais ações podem ser executadas nelas. Por exemplo, talvez você queira detectar buckets do serviço Object Storage que tenham visibilidade definida como pública.

    Aplique o Cloud Guard no nível da tenancy para cobrir o escopo mais amplo e reduzir a carga administrativa de manter várias configurações.

    Você também pode usar o recurso Lista Gerenciada para aplicar determinadas configurações aos detectores.

  • Largura de Banda do Balanceador de Carga

    Ao criar o balanceador de carga, você pode selecionar uma forma predefinida que forneça uma largura de banda fixa ou especificar uma forma flexível personalizada na qual defina um intervalo de largura de banda e deixe que o serviço dimensione a largura de banda automaticamente com base nos padrões de tráfego. Com qualquer uma das abordagens, você pode alterar a forma a qualquer momento após criar o balanceador de carga.

Considerações

  • Desempenho

    Use os serviços nativos da nuvem da Oracle - Eventos, Funções, Notificações e AI Speech para implantar aplicativos sem servidor que são dimensionados automaticamente com base na carga de trabalho. Os serviços são gerenciados pela Oracle.

    O trabalho de fala de IA é processado de maneira rigorosa, primeiro a sair. Você pode criar uma fila de jobs com um máximo de 10.000 tarefas no nível do tenant. Se você enviar um job que exceda o máximo de tarefas, esse job falhará. Os trabalhos são retidos por 90 dias.

  • Acesso

    O OCI Speech suporta acesso por meio da Console do OCI, do cliente SDK Java e Python e da CLI do OCI. Ao testar, é recomendável usar a ferramenta ou a Console da CLI.

  • Disponibilidade

    Neste exemplo, o banco de dados não está altamente disponível. Para aplicativos críticos, considere a execução do MySQL Database Service no modo HA com 3 réplicas.

  • Custo

    Use os serviços nativos da nuvem da Oracle - Eventos, Funções, Notificações e AI Speech para implantar o aplicativo sem servidor que não incorra em custo fixo. Você só paga pela solicitação de serviço quando a usa.

Reconhecimentos

  • Autores: Wei Han, Zaid Al Qaddoumi
  • Colaboradores: Sreya Dutta

Alterar Log

Este log lista alterações significativas: