Babel Fish AI, um projeto pessoal, é uma extensão Chrome inovadora que transforma a voz em texto com uma precisão excepcional, além de oferecer uma opção de tradução automática. Projetada para ser confiável e sem publicidade, ela fornece uma transcrição vocal de qualidade através da API Whisper da OpenAI. Criei essa extensão em parte para atender a uma necessidade pessoal: simplificar a comunicação com as IAs ditando minhas solicitações.
Você pode usá-la exclusivamente para a transcrição ou ativar a tradução para facilitar a comunicação multilíngue.
Também foi a ocasião ideal para testar Roo Code, uma ferramenta de desenvolvimento assistida por IA.
1. Apresentação
Babel Fish AI é um projeto pessoal, desenvolvido com o apoio de IAs como Claude, Gemini e OpenAI via Roo Code.
Graças à sua interface intuitiva e configuração personalizável, o Babel Fish AI permite obter uma transcrição rápida e precisa, com uma opção de tradução imediata para superar as barreiras linguísticas.
2. Funcionalidades e Opções
-
Transcrição Vocal Avançada:
- Captura de áudio de alta qualidade via microfone.
- Transcrição realizada pela API Whisper da OpenAI, com inserção automática no campo ativo ou exibição em uma janela de diálogo.
-
Tradução Automática Opcional:
- Tradução rápida e fiel do texto transcrito, ativável conforme a necessidade.
- Possibilidade de usar a extensão apenas para a transcrição.
-
Suporte Multilíngua Completo: Babel Fish AI processa a entrada vocal e exibe o texto em diversas línguas, ampliando o seu uso internacional.
Línguas suportadas: 🇸🇦 Árabe, 🇩🇪 Alemão, 🇺🇸 Inglês, 🇪🇸 Espanhol, 🇫🇷 Francês, 🇮🇳 Hindi, 🇮🇹 Italiano, 🇯🇵 Japonês, 🇰🇷 Coreano, 🇳🇱 Holandês, 🇵🇱 Polonês, 🇵🇹 Português, 🇷🇴 Romeno, 🇸🇪 Sueco, 🇨🇳 Chinês. -
Interface Intuitiva e Personalizável:
- Escolha entre exibição na área de texto ativa ou em uma janela de diálogo.
- Faixa de status personalizável (cor, opacidade, duração) para um retorno visual imediato.
-
Opções Avançadas:
- Modo expert oferecendo uma configuração detalhada (URLs das APIs, parâmetros por domínio, etc.).
- Configurações da extensão acessíveis via uma página de opções amigável.
3. Nos Bastidores do Desenvolvimento: Minha Aventura com a IA e o Roo Code
Babel Fish AI não é apenas uma extensão Chrome, é também o fruto de uma experimentação apaixonante com a inteligência artificial e uma ferramenta inovadora: o Roo Code.
Deixe-me contar como transformei uma ideia em realidade, contando com o poder de várias IAs e um ambiente de desenvolvimento único.
3.1. Roo Code: Meu Companheiro de Codificação IA
Roo Code é muito mais do que uma simples extensão do VS Code. É um verdadeiro agente de codificação autônomo que o assiste em seu trabalho. Imagine um copiloto IA capaz de:
- Comunicar-se em linguagem natural.
- Ler e escrever arquivos diretamente em seu espaço de trabalho.
- Executar comandos de terminal.
- Integrar-se com diversas APIs (OpenAI, Google Gemini, etc.).
- Adaptar sua “personalidade” através de “modos personalizados”.
Para desenvolver o Babel Fish AI, usei o Roo Code como um maestro, orientando diferentes IAs para que colaborassem na criação da extensão.
3.2. Um Elenco de IAs para um Projeto Único
Recorri a um verdadeiro painel de IAs, cada uma com seus pontos fortes e fracos:
- o3-mini, Claude 3.5 Sonnet, Gemini (exp 1206, 1.5 pro exp 0827, Flash Think), GPT-4o: Esses modelos foram meus principais colaboradores, cada um contribuindo com sua parte na construção.
- Gemini (modelos gratuitos): Sua gratuidade foi um grande trunfo, embora eu tenha tido que lidar com os limites de uso (felizmente, o Roo Code gerencia as tentativas repetidas em caso de falha!).
3.3. Superando os Obstáculos: Uma Jornada Repleta de Desafios (e Soluções!)
O desenvolvimento não foi um mar de rosas. Enfrentei vários desafios, especialmente:
-
Acesso ao Microfone e Permissões: No início, foi impossível obter a autorização de acesso ao microfone! As IAs insistiam em adicionar uma permissão “microphone” que não existe no Manifest V3 do Chrome. Tive que mergulhar na documentação oficial e fornecê-la ao Claude 3.5 Sonnet para que ele encontrasse a solução.
-
Armazenamento Seguro da Chave API: Outro desafio foi como armazenar e recuperar a chave API da OpenAI de forma segura no Chrome. Forneci a documentação oficial ao Gemini, que conseguiu me oferecer o código adequado para interagir com o armazenamento do Chrome.
3.4. Colaboração e Experimentação: A Chave do Sucesso
Utilizei um pouco todas as IAs para as opções e as localizações, e quis testar o Roo Code.
Além desses desafios específicos, pude:
- Testar o Roo Code em condições reais: O desenvolvimento do Babel Fish AI também foi a ocasião para pôr à prova essa ferramenta promissora.
- Gerar o ícone e a imagem de fundo: Graças ao DALL-E 3 (integrado à OpenAI), pude criar uma identidade visual única para a extensão.
- Personalizar a Faixa de Exibição: Usei o GIMP para extrair as cores da imagem, depois pedi à IA para codificar a parte das opções que permite configurar as cores da faixa.
- Traduzir a Interface para Várias Línguas: Explorei o poder da IA via Roo Code para gerar os arquivos de localização (
_locales
) e traduzir as opções para diversas línguas, economizando um tempo considerável! - Criação dos menus suspensos: a IA gerou tudo, economizando um tempo incrível.
- Gerenciar a renderização HTML das opções: em conjunto com a IA.
3.5. Dificuldades Encontradas
- Problema com a injeção de texto em um iframe para o Google Chat: Uma exceção foi adicionada, e deixei um pop-up padrão.
- Modo Expert e permissões: Para permitir a alteração dos URLs das APIs, tive que autorizar todos os hosts no manifesto. Isso parece causar problemas com a navegação reforçada do Chrome, e por enquanto não vejo uma solução (se alguém tiver uma ideia, estou aberto a sugestões!).
4. Por que Babel Fish AI? Uma Extensão Nascida de uma Necessidade
Antes de mergulhar nos detalhes técnicos, é importante entender por que criei o Babel Fish AI. Tudo começou por uma necessidade pessoal:
- Cansado de digitar prompts longos: Eu queria poder me comunicar com as IAs de maneira mais natural, falando diretamente com elas.
- Transcrições medíocres: As extensões de transcrição que testei foram decepcionantes.
- Desejo de transparência: Queria uma extensão open source, sem publicidade, e cujo código eu controlasse.
Babel Fish AI nasceu, portanto, desse desejo de criar uma ferramenta que atendesse às minhas próprias necessidades, ao mesmo tempo em que fosse útil para a comunidade.
5. Um Zoom no Código e nos Detalhes Técnicos
Babel Fish AI é construída com base em uma arquitetura típica de extensão Chrome, com algumas especificidades relacionadas ao uso das APIs da OpenAI.
Segue uma visão geral dos principais componentes:
5.1. Arquitetura Geral
A extensão é composta por vários arquivos JavaScript que interagem entre si:
manifest.json
: O arquivo de configuração principal da extensão. Define as permissões, os scripts, os recursos acessíveis, etc.background.js
: O service worker que roda em segundo plano. Gerencia os eventos (clique no ícone, atalhos de teclado), injeta ocontent script
se necessário, e se comunica com ocontent script
.content.js
: O script que é injetado nas páginas web. Interage diretamente com o DOM, capta o áudio do microfone, chama as APIs de transcrição e tradução, e exibe os resultados.src/utils/api.js
: Contém as funções para chamar a API Whisper da OpenAI (transcrição).src/utils/translation.js
: Contém as funções para chamar a API GPT da OpenAI (tradução).src/utils/ui.js
: Contém funções utilitárias para gerenciar a interface do usuário (faixa, caixa de diálogo, botão de cópia).src/constants.js
: Define constantes para a configuração, estados, ações, etc.src/pages/options/
: Contém os arquivos para a página de opções da extensão (HTML, CSS, JavaScript).
5.2. manifest.json
O arquivo manifest.json
utiliza a versão 3 do manifesto. Declara as seguintes permissões:
activeTab
: Para acessar a aba ativa.storage
: Para armazenar a chave API e as opções da extensão.commands
: Para definir atalhos de teclado.scripting
: Para injetar ocontent script
.host_permissions
:https://api.openai.com/*
para as chamadas às APIs, ehttps://*/*
que é necessário no modo expert para permitir ao usuário especificar URLs de APIs personalizadas.
Os content_scripts
são injetados em todas as URLs (<all_urls>
) e são executados ao final do carregamento do documento ("run_at": "document_end"
). O background script
é declarado como um service worker do tipo módulo ("type": "module"
).
5.3. background.js
O background script
tem várias funções:
- Injeção do
content script
: Se ocontent script
ainda não estiver injetado, obackground.js
o injeta durante uma interação (clique no ícone ou atalho de teclado). - Gerenciamento de eventos: Ouve os eventos
chrome.runtime.onMessage
(mensagens docontent script
),chrome.action.onClicked
(clique no ícone) echrome.commands.onCommand
(atalhos de teclado). - Comunicação com o
content script
: Envia mensagens para ocontent script
para iniciar ou parar a gravação ({ action: ACTIONS.TOGGLE }
). - Atualização do ícone: Atualiza o badge do ícone da extensão para indicar o estado da gravação (em andamento, parado, erro).
5.4. content.js
O content script
é o núcleo da extensão. Ele realiza as seguintes tarefas:
- Inicialização: Inicializa a chave API e as opções de cor da faixa a partir do armazenamento do Chrome.
- Captura de Áudio: Utiliza a API
navigator.mediaDevices.getUserMedia
para acessar o microfone e gravar o áudio. - Transcrição: Utiliza a função
transcribeAudio
(src/utils/api.js
) para enviar o áudio à API Whisper da OpenAI e obter a transcrição. - Tradução (opcional): Se a opção de tradução estiver ativada, utiliza a função
translateText
(src/utils/translation.js
) para enviar o texto transcrito à API GPT da OpenAI e obter a tradução. - Exibição: Exibe a transcrição (e a tradução, quando aplicável) seja no elemento ativo da página (caso seja um campo de texto ou elemento editável), ou em uma caixa de diálogo.
- Gerenciamento da Faixa: Exibe uma faixa de status no topo da página para indicar o estado da gravação ou mostrar mensagens de erro.
- Comunicação com o
background script
: Envia mensagens para obackground script
para indicar o início, o fim ou um erro na gravação. - Escuta das mudanças de opções: Observa as alterações nas opções da extensão e atualiza a exibição conforme necessário.
5.5. Comunicação
A comunicação entre o background script
e o content script
ocorre via API de mensagens do Chrome (chrome.runtime.sendMessage
e chrome.runtime.onMessage
).
5.6. API
A extensão utiliza duas APIs da OpenAI:
- Whisper: Para a transcrição vocal. A URL padrão é
https://api.openai.com/v1/audio/transcriptions
, e o modelo utilizado éwhisper-1
. - GPT: Para a tradução (opcional). A URL padrão é
https://api.openai.com/v1/chat/completions
, e o modelo utilizado égpt-4o-mini
.
As URLs das APIs podem ser modificadas nas opções da extensão (modo expert).
5.7. Armazenamento
A extensão utiliza chrome.storage.sync
para armazenar:
- A chave API da OpenAI (
apiKey
). - As opções da extensão (exibição, tradução, cores da faixa, etc.).
5.8. Interface do Usuário
A interface do usuário da extensão é gerida por várias funções em src/utils/ui.js
e content.js
:
- Faixa: Uma faixa de status é exibida no topo da página para indicar o estado da gravação ou mostrar mensagens de erro. A cor e a opacidade da faixa são personalizáveis.
- Caixa de Diálogo: A transcrição (e a tradução) podem ser exibidas em uma caixa de diálogo. A duração da exibição é personalizável.
- Botão de Cópia: Um botão de cópia é adicionado à caixa de diálogo para copiar facilmente o texto transcrito.
5.9. Gerenciamento de Erros
Os erros são geridos de forma centralizada. As mensagens de erro são definidas em src/constants.js
(objeto ERRORS
). Os erros são exibidos para o usuário via faixa de status.
6. Recursos
- Repositório GitHub: Babel Fish AI
- Chrome Web Store: Babel Fish AI
7. Conclusão
Babel Fish AI oferece uma solução completa para uma transcrição vocal precisa e uma tradução opcional, garantindo ao mesmo tempo uma interface intuitiva e uma segurança reforçada. Graças a essa extensão, a experiência de converter voz em texto é otimizada, e a barreira linguística é superada. Teste o Babel Fish AI na Chrome Web Store e descubra como ele pode transformar a sua comunicação.
Obrigado pela leitura, e bom uso do Babel Fish AI!
Este documento foi traduzido da versão fr para a língua pt utilizando o modelo o3-mini. Para mais informações sobre o processo de tradução, consulte https://gitlab.com/jls42/ai-powered-markdown-translator