Alura > Cursos de Inteligência Artificial > Cursos de IA para Mobile > Conteúdos de IA para Mobile > Primeiras aulas do curso Android com IA: explorando o Google ML Kit para tradução de textos

Android com IA: explorando o Google ML Kit para tradução de textos

Conhecendo o ML Kit - Apresentação

Quer saber como criar aplicativos mais inteligentes, utilizando recursos de Machine Learning, Inteligência Artificial e tudo com o poder de processamento do próprio Android? Venha comigo, vou te ensinar!

Meu nome é Junior Martins, sou instrutor e desejo boas-vindas a mais este conteúdo de Android.

Audiodescrição: Junior se autodescreve como um homem de pele clara, com cabelos loiros escuros e compridos, que vão até a altura dos ombros. Está utilizando óculos de armação preta, com uma camiseta também na cor preta. Ele está a frente de um fundo degradê azul e rosa.

O que vamos aprender?

Ao longo do curso, vamos utilizar o aplicativo Mail para mensagens eletrônicas ou e-mails. Vamos entender o que é a biblioteca de Machine Learning do Google, ML Kit, utilizada para dispositivos Android e iOS. Além disso, aprenderemos omo ela pode ser útil em situações onde temos alguns e-mails com texto em vários idiomas, para que possamos identificar qual é o idioma do e-mail, e também realizar a tradução de diversos idiomas.

Para isso, vamos entender como realizar a instalação de cada uma delas, quais são as suas peculiaridades e padrões. Também vamos aprender um pouco melhor sobre como gerenciar cada um dos modelos que permitem fazer essa tradução, obtendo o download deles antecipadamente, quando for necessário, e até, se for o caso, realizar a exclusão. Vamos entender o motivo de cada uma dessas situações.

Vamos estudar alguns casos de uso específicos e analisar detalhadamente quais são os requisitos para poder utilizar essas bibliotecas. Um ponto muito importante e interessante é que elas funcionam offline. Ou seja, mesmo sem internet, após desligar o Wi-Fi e os dados móveis, podemos entrar em um modelo e a identificação continuará sendo realizada. Se tivermos o modelo baixado, podemos fazer a tradução do idioma.

Embora toda a interface do nosso aplicativo tenha sido construída utilizando o Jetpack Compose, os conceitos que aprenderemos também poderão ser aplicados com o sistema de View.

Pré-requisitos

Para melhor aproveitar o curso, recomendamos que você tenha noção de como funciona o Jetpack Compose, e especialmente como lidar com o sistema de ViewModel e estados. O motivo é que vamos integrar todo o conhecimento do ML Kit com relação à parte de tradução a essa arquitetura recomendada pela própria equipe de desenvolvedores do Android.

Espero que você esteja animada(o) para começar a estudar inteligência artificial no Android. Vamos lá!

Conhecendo o ML Kit - Review do projeto

Para prosseguirmos com o conteúdo deste curso, vamos utilizar o Mail, um simulador de aplicativos de e-mail dividido em três telas principais. A primeira é uma caixa de entrada contendo e-mails em vários idiomas. Podemos deslizar, clicar em um e-mail e abri-lo.

A segunda tela exibe o conteúdo e o título dos e-mails. Por fim, temos uma terceira tela na opção de ajustes. Por enquanto, ela não contém nada, mas vamos notificar isso posteriormente. É importante conhecermos a estrutura deste projeto.

Conhecendo a estrutura do projeto

Estamos com o projeto aberto no Android Studio. Ele segue uma estrutura bem similar à que desenvolvemos em outros cursos na Alura. As pastas estão divididas em di, que é a nossa Injeção de Dependências. Ela está pronta, assim não gastaremos muito tempo com essa parte, já que não é exatamente da biblioteca que vamos configurar.

O projeto será disponibilizado para download, basta baixar e fazer a instalação.

Temos algumas pastas de extensões e um diretório chamado mlkit com alguns arquivos prontos que nos ajudarão mais adiante. No momento apropriado, entenderemos para que serve.

Além disso, a classe TextTranslator também está pronta, mas ainda não tem conteúdo. Enfim, o que interessa é que ela está pronta e configurada para que a Injeção de Dependências seja feita, e assim não perdemos tempo com esse detalhe.

Temos o diretório model, contendo alguns modelos simples que utilizaremos ao longo do curso. No diretório samples, temos alguns exemplos, como uma lista de e-mails em vários idiomas, simulações de data e de cores. São conteúdos que utilizaremos para realizar as traduções.

No diretório ui, está a parte de interface do nosso aplicativo. Não lidaremos com toda a parte de interface, pois são conceitos que já abordamos em materiais anteriores, mas vocês podem explorar o diretório Components e o ContentEmail, tela com a qual trabalharemos bastante.

Dentro de ContentEmail, temos o ContentEmailScreen.kt e o ContentEmailViewModel, que são duas partes que usaremos bastante. Caso queiram se familiarizar, podem explorar também. No momento, tanto a parte de ui, quanto a lógica - não diretamente ligadas à biblioteca - estão prontas, assim poupamos tempo e focamos no que interessa, que é trabalhar com os recursos de IA.

Seguindo, teremos o nosso diretório home, navigation, configurações que são bem similares ao diretório do ContentEmail. Descendo mais um pouco, encontramos o nosso MainActivity, que é uma única activity para seguirmos com a parte de navegação. Passaremos um bom tempo realizando os primeiros testes.

Esse projeto utiliza uma tecnologia um pouco diferente do que você pode estar acostumada(o) para instalar dependências no Android Studio. Na seção Gradle Scripts, podemos notar que existe um arquivo chamado libs.versions.toml. E se abrirmos o arquivo build.gradle.kts, ele será um pouco diferente do que estamos acostumados.

Esse arquivo foi atualizado pela equipe de desenvolvimento do Android em si, e também foi disponibilizá-lo dentro deste projeto. Explicarei mais sobre o que muda, mas é interessante ter essa noção.

Para quem quiser conferir melhor sobre essas mudanças, basta acessar a documentação Migrar o build para catálogos de versões.

Após a revisão, você pode baixar, instalar e rodar o aplicativo. Espero que esteja pronta(o) para começar. Vamos lá!

Conhecendo o ML Kit - Tradução vs Identificação de textos

Existe um caso muito comum quando queremos possibilitar que mais pessoas ao redor do planeta utilizem nosso aplicativo. São situações com a seguir: temos um emulador, que está com o idioma em português, nosso aplicativo possui alguns textos como "Escrever", "Início" e "Ajustes". Há outro emulador rodando, com o idioma em inglês por padrão, mostrando "Home", "Settings" e "Write".

Para esse tipo de situação, então, é bastante comum que, dentro de um mesmo projeto do Android Studio, possamos acessar a pasta em "res > values > strings". Se abrirmos o arquivo strings.xml, podemos perceber que no topo existe uma seção que recomenda abrir o editor, "Open Editor".

Clicando nessa seção, localizaremos um botão com o ícone de um planeta e o símbolo de um botão verde para adicionar um novo idioma. Se clicarmos nele, vários idiomas são disponibilizados para que possamos criar um novo arquivo de tradução.

Por exemplo, poderíamos selecionar, dentre os idiomas, o "French" (francês). Dentro da nossa pasta de values surgirá um novo arquivo de strings que estará vazio. Se quisermos traduzir nosso aplicativo para o francês, podemos voltar ao arquivo principal, copiar algumas das mensagens, abrir o novo arquivo de strings e colá-las para fazer a tradução.

Automaticamente, quando nosso app for instalado, o próprio Android identificará que existe um arquivo específico de tradução para o francês e mostrará o aplicativo já traduzido.

Essa abordagem é válida quando sabemos quais são os textos que estarão em nosso aplicativo. Por exemplo, sabemos que o menu sempre estará lá, o "Início", dentre outros. Porém, quando temos textos que variam, como no caso de nosso aplicativo de e-mail, não podemos saber o idioma do e-mail que receberemos, nem seu conteúdo.

Além disso, se quiséssemos traduzir todas as strings de nosso arquivo strings, seria um trabalho considerável. Pode haver cerca de 20, mas em um aplicativo real esse número pode chegar a centenas ou milhares. Imagine o trabalho de fazer essa tradução para cada um dos 10 idiomas mais falados no mundo.

Para poupar esse trabalho, podemos usar o ML Kit, que é um conjunto de ferramentas de inteligência artificial otimizadas para Android e iOS, desenvolvidas especificamente para trabalhar com Machine Learning em dispositivos móveis pela Google.

Temos a vantagem de utilizá-lo offline uma vez configurado. Isso permite respostas mais rápidas, pois podemos obter uma tradução sem enviar e receber dados de um servidor. Oferece maior segurança, permitindo traduzir textos sensíveis localmente, sem expor os dados a uma rede.

E há também uma economia de dados para quem usa o app e para nós, como desenvolvedores ou empresa, por não precisarmos pagar por um serviço em nuvem para realizar as traduções.

O ML Kit é um conjunto de possibilidades. É como se tivéssemos várias caixinhas com propósitos diferentes, e cada uma delas pode ser baixada, instalada e configurada para oferecer algumas opções.

Atualmente, o ML Kit é dividido em duas seções:

Disponibilizaremos um material mais completo na descrição, caso queiram entender melhor o ML Kit.

Para termos uma noção do potencial dessas ferramentas, a Google disponibiliza alguns estudos de caso. Um deles é do aplicativo WPS, que utiliza as duas bibliotecas que abordaremos, economizando cerca de 65 milhões de dólares por ano identificando idiomas e realizando traduções. É um estudo de caso interessante que recomendo a leitura.

Estudo de caso: A WPS usa o ML Kit para traduzir textos em 43 idiomas e economizar US $65 milhões por ano

Para começarmos a utilizar esses recursos, deixarei o link da documentação na descrição. Nela, selecionaremos a opção de Android, que é a biblioteca de identificação de idiomas. Existem tutoriais na página, mas podemos deslizar até encontrar a seção sobre instalação. Há duas formas de instalar as bibliotecas do ML Kit, optaremos pela mais simples. Copiaremos implementation 'com.google.mlkit:language-id:17.0.4.

Voltando ao Android Studio, primeiramente fecharemos os arquivos abertos e excluiremos o arquivo de strings que criamos anteriormente, pois era apenas um exemplo. Localizaremos o arquivo build.gradle.kts, deslizaremos até o final e colaremos a dependência que copiamos.

Se você estiver utilizando um projeto mais antigo, bastará sincronizar o projeto. No entanto, como estamos usando uma versão mais recente, precisaremos colocar parênteses após "implementation", fechar com outro parênteses no final e substituir as aspas simples por apóstrofos.

implementation ("com.google.mlkit:language-id:17.0.4")

Agora, deixaremos o cursor em cima do google, selecionaremos apertaremos "Alt + Enter", escolheremos a opção "Replace with new library catalog declaration for language-id" e pressionaremos "Enter". Feito isso, se clicarmos em "Sync Now", a dependência será instalada.

O procedimento terminou e se clicarmos com "Ctrl + V" em "Language", seremos redirecionados ao nosso arquivo de libs.version.toml. Nele, é possível notar que existe um language-id sendo adicionado.

Está tudo pronto para começarmos a utilizar os recursos de Machine Learning em nosso aplicativo. Vamos lá!!

Sobre o curso Android com IA: explorando o Google ML Kit para tradução de textos

O curso Android com IA: explorando o Google ML Kit para tradução de textos possui 127 minutos de vídeos, em um total de 56 atividades. Gostou? Conheça nossos outros cursos de IA para Mobile em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda IA para Mobile acessando integralmente esse e outros cursos, comece hoje!

Plus

De
R$ 1.800
por 12x R$ 109
Desconto Adicional: 20%
12X
R$87,20
à vista R$1.046,40
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

Matricule-se

Pro

De
R$ 2.400
por 12x R$ 149
Desconto Adicional: 20%
12X
R$119,20
à vista R$1.430,40
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Luri, a inteligência artificial da Alura

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

Matricule-se

Pro 24 Meses

De
R$ 3.576
por 12x R$ 298
OFERTA INÉDITA
12X
R$199,06
à vista R$2.388,77
  • Acesso a TODOS os cursos da Alura por 2 anos

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Luri, a inteligência artificial da Alura

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas