Detecção de idioma com IA integrada

Publicado em 24 de setembro de 2024 e atualizado pela última vez em 10 de dezembro de 2024

Explicação Web Extensões Status do Chrome Intenção
GitHub Atrás de uma sinalização Teste do Origin Atrás de uma sinalização Teste do Origin Ver Intenção de fazer um experimento

Antes de traduzir um texto de um idioma para outro, você precisa determinar qual idioma é usado no texto. Antes, a tradução exigia fazer upload do texto para um serviço em nuvem, realizar a tradução no servidor e fazer o download dos resultados.

A API Language Detector usa inferência no dispositivo para melhorar sua privacidade. Embora seja possível enviar uma biblioteca específica que faça isso, seriam necessários recursos adicionais para fazer o download.

Primeiros passos

Participe do teste de origem da API Language Detector, que está sendo executado no Chrome 132 a 135, para testar a API com usuários reais em produção. Os testes de origem ativam o recurso para todos os usuários na sua origem no Chrome.

Inscrever-se no teste de origem

Para começar a usar a API Language Detector, siga estas etapas:

  1. Leia e aceite a Política de uso proibido da IA generativa do Google.
  2. Acesse o teste de origem da API Language Detector.
  3. Clique em Registrar e preencha o formulário.
    • No campo Origem da Web, informe o ID da origem ou da extensão, chrome-extension://YOUR_EXTENSION_ID.
  4. Para enviar, clique em Registrar.
  5. Copie o token fornecido e adicione-o a todas as páginas da Web na origem ou no arquivo da extensão em que você quer ativar o teste.
  6. Comece a usar a API Language Detection.

Saiba mais sobre como começar a usar os testes de origem.

Adicionar suporte ao localhost

Para acessar a API Language Detection no localhost durante o teste de origem, é necessário atualizar o Chrome para a versão mais recente. Em seguida, siga estas etapas:

  1. Acesse chrome://flags/#language-detection-api.
  2. Selecione Ativado.
  3. Clique em Reiniciar ou reinicie o Chrome.

Exemplos de casos de uso

A API Language Detector é útil principalmente nos seguintes cenários:

  • Determina o idioma do texto de entrada para que ele possa ser traduzido.
  • Determine o idioma do texto de entrada para que o modelo correto possa ser carregado para tarefas específicas de linguagem, como a detecção de toxicidade.
  • Determinar a linguagem do texto de entrada para que ele possa ser rotulado corretamente, por exemplo, em sites de redes sociais on-line.
  • Determine o idioma do texto de entrada para que a interface de um app possa ser ajustada de acordo. Por exemplo, em um site belga, mostrar apenas a interface relevante para usuários que falam francês.

Usar a API Language Detector

A API Language Detector faz parte da família maior da API Translator. Primeiro, execute a detecção de recursos para saber se o navegador oferece suporte à API Language Detector.

if ('ai' in self && 'languageDetector' in self.ai)
  // The Language Detector API is available.
}  

Download do modelo

A detecção de idioma depende de um modelo ajustado para a tarefa específica de detectar idiomas. Enquanto a API é criada no navegador, o modelo é transferido por download sob demanda na primeira vez que um site tenta usar a API. No Chrome, esse modelo é muito pequeno em comparação com outros modelos. Na verdade, ele pode já estar presente, já que esse modelo também é usado pelos recursos do navegador Chrome.

Para saber se o modelo está pronto para uso, chame a função self.ai.languageDetector.capabilities() assíncrona e inspecione o campo available. Há três respostas possíveis:

  • 'no': o navegador atual oferece suporte à API Language Detector, mas ela não pode ser usada no momento. Por exemplo, porque não há espaço livre suficiente em disco disponível para fazer o download do modelo.
  • 'readily': o navegador atual oferece suporte à API Language Detector e pode ser usado imediatamente.
  • 'after-download': o navegador atual oferece suporte à API Language Detector, mas precisa fazer o download do modelo primeiro.

Para acionar o download e instanciar o detector de idioma, chame a função self.ai.languageDetector.create() assíncrona. Se a resposta para capabilities() foi 'after-download', a prática recomendada é detectar o progresso do download para informar o usuário caso o download demore.

Para saber se um determinado idioma pode ser detectado, chame a função languageAvailable().

const languageDetectorCapabilities = await self.ai.languageDetector.capabilities();
languageDetectorCapabilities.languageAvailable('es');
// 'readily'

O exemplo a seguir demonstra como inicializar o detector de idioma.

const languageDetectorCapabilities = await self.ai.languageDetector.capabilities();
const canDetect = languageDetectorCapabilities.capabilities;
let detector;
if (canDetect === 'no') {
  // The language detector isn't usable.
  return;
}
if (canDetect === 'readily') {
  // The language detector can immediately be used.
  detector = await self.ai.languageDetector.create();
} else {
  // The language detector can be used after model download.
  detector = await self.ai.languageDetector.create({
    monitor(m) {
      m.addEventListener('downloadprogress', (e) => {
        console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
      });
    },
  });
  await detector.ready;
}

Executar o detector de idioma

A API Language Detector usa um modelo de classificação para determinar qual idioma é mais provável de ser usado em um determinado texto. O ranking é um tipo de aprendizado de máquina, em que o objetivo é ordenar uma lista de itens. Nesse caso, a API Language Detector classifica os idiomas da maior para a menor probabilidade.

A função detect() pode retornar o primeiro resultado, a resposta mais provável ou iterar os candidatos classificados com o nível de confiança. Isso é retornado como uma lista de objetos {detectedLanguage, confidence}. O nível confidence é expresso como um valor entre 0.0 (menor confiança) e 1.0 (maior confiança).

const someUserText \= 'Hallo und herzlich willkommen\!';
const results \= await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

Demonstração

Confira a API Language Detector na nossa demonstração. Insira texto escrito em diferentes idiomas no campo de texto.

Esforço de padronização

A API Language Detector foi movida para o Grupo da comunidade do Incubator da Web do W3C depois que a proposta correspondente recebeu suporte suficiente. A API faz parte de uma proposta maior da API Translation.

A equipe do Chrome pediu feedback do W3C Technical Architecture Group e pediu à Mozilla e ao WebKit as posições dos padrões.

Envie feedback

Se você tiver feedback sobre a implementação do Chrome, registre um bug do Chromium. Compartilhe seu feedback sobre a forma da API do detector de idioma comentando em um problema existente ou abrindo um novo no repositório da API Translation no GitHub.