Detecção de idioma com IA integrada

Publicado: 24 de setembro de 2024, Última atualização: 20 de maio de 2025

Explicação Web Extensões Status do Chrome Intenção
GitHub Atrás de uma sinalização Chrome 137 Beta Atrás de uma sinalização Chrome 137 Beta Ver Intent de envio

Antes de traduzir um texto de um idioma para outro, você precisa determinar qual idioma é usado no texto. Antes, a tradução exigia fazer o 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 funciona do lado do cliente, o que significa que você pode proteger a privacidade do usuário. Embora seja possível enviar uma biblioteca específica que faça isso, seriam necessários recursos adicionais para fazer o download.

Quando usar a detecção de idioma

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.

Primeiros passos

A API Language Detector está disponível no Chrome 138 estável. Execute a detecção de recursos para saber se o navegador oferece suporte à API Language Detector.

if ('LanguageDetector' in self) {
  // The Language Detector API is available.
}

Analisar os requisitos de hardware

As APIs Language Detector e Translator funcionam em computadores somente no Chrome.

As APIs Prompt, Summarizer, Writer e Rewriter funcionam no Chrome quando as seguintes condições são atendidas:

  • Sistema operacional: Windows 10 ou 11, macOS 13 ou mais recente (Ventura e versões mais recentes) ou Linux. O Chrome para Android, iOS e ChromeOS ainda não são compatíveis com nossas APIs com suporte do Gemini Nano.
  • Armazenamento: pelo menos 22 GB no volume que contém seu perfil do Chrome.
  • GPU: estritamente mais de 4 GB de VRAM.
  • Rede: dados ilimitados ou uma conexão ilimitada.
  • GPU: estritamente mais de 4 GB de VRAM.
  • Rede: dados ilimitados ou uma conexão ilimitada.

Esses requisitos existem para você no processo de desenvolvimento e para os usuários que trabalham com os recursos que você cria.

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. Talvez ele já esteja presente, já que esse modelo é usado por outros recursos do Chrome.

Para saber se o modelo está pronto para uso, chame a função LanguageDetector.availability() assíncrona e inspecione a promessa resultante. Há três respostas possíveis:

  • "unavailable": as opções solicitadas não têm suporte ou o modelo não pode ser solicitado.
  • "downloadable": a solicitação tem suporte, mas outros downloads são necessários para criar uma sessão. Esses downloads podem incluir o modelo de linguagem ou o ajuste fino.
  • "downloading": a solicitação tem suporte e um download está em andamento, o que precisa ser concluído antes de criar uma sessão.
  • "available": a solicitação tem suporte e é possível criar uma sessão.

Para acionar o download e instanciar o detector de idioma, chame a função LanguageDetector.create() assíncrona. Se a resposta para availability() foi 'downloadable' ou 'downloading', é recomendável detectar o progresso do download para informar o usuário caso o download demore.

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

const availability = await LanguageDetector.availability();

let detector;
if (availability === 'unavailable') {
  // The language detector isn't usable.
  return;
}
if (availability === 'available') {
  // The language detector can immediately be used.
  detector = await LanguageDetector.create();
} else {
  // The language detector can be used after model download.
  detector = await LanguageDetector.create({
    monitor(m) {
      m.addEventListener('downloadprogress', (e) => {
        console.log(`Downloaded ${e.loaded * 100}%`);
      });
    },
  });
  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
// ...

Playground da API

Teste a API Language Detector no nosso API playground. Digite texto em diferentes idiomas no campo de texto.

Esforço de padronização

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

Queremos saber o que você está criando com a API Language Detector. Compartilhe seus sites e aplicativos da Web com a gente no X, YouTube e LinkedIn.

Se você tiver feedback sobre a implementação do Chrome, registre um bug do Chromium.