Babel Fish AI, projekt osobisty, to nowatorskie rozszerzenie Chrome, które przekształca mowę na tekst z wyjątkową precyzją, oferując jednocześnie możliwość automatycznego tłumaczenia. Zaprojektowane tak, aby było niezawodne i wolne od reklam, zapewnia wysokiej jakości transkrypcję głosową dzięki API Whisper firmy OpenAI. Stworzyłem to rozszerzenie częściowo, aby odpowiedzieć na osobistą potrzebę: uproszczenie komunikacji z AI poprzez dyktowanie moich zapytań. Możesz korzystać z niego wyłącznie do transkrypcji lub aktywować tłumaczenie, aby ułatwić komunikację wielojęzyczną. Była to również idealna okazja do przetestowania Roo Code, narzędzia wspomaganego przez AI.
1. Prezentacja
Babel Fish AI to projekt osobisty, rozwijany przy wsparciu AI takich jak Claude, Gemini i OpenAI za pośrednictwem Roo Code. Dzięki intuicyjnemu interfejsowi oraz możliwości dostosowania konfiguracji, Babel Fish AI umożliwia uzyskanie szybkiej i precyzyjnej transkrypcji, z opcją natychmiastowego tłumaczenia, pomagając przełamać bariery językowe.
2. Funkcje i Opcje
-
Zaawansowana Transkrypcja Mowy:
- Nagrywanie dźwięku w wysokiej jakości za pomocą mikrofonu.
- Transkrypcja wykonywana przez API Whisper firmy OpenAI, z automatycznym wstawieniem do aktywnego pola lub wyświetleniem w oknie dialogowym.
-
Opcjonalne Automatyczne Tłumaczenie:
- Szybkie i wierne tłumaczenie transkrybowanego tekstu, aktywowane w razie potrzeby.
- Możliwość korzystania z rozszerzenia wyłącznie do transkrypcji.
-
Pełne Wsparcie Wielojęzyczne: Babel Fish AI przetwarza mowę i wyświetla tekst w różnych językach, co zwiększa jego międzynarodowe zastosowanie.
Obsługiwane języki: 🇸🇦 Arabski, 🇩🇪 Niemiecki, 🇺🇸 Angielski, 🇪🇸 Hiszpański, 🇫🇷 Francuski, 🇮🇳 Hindi, 🇮🇹 Włoski, 🇯🇵 Japoński, 🇰🇷 Koreański, 🇳🇱 Niderlandzki, 🇵🇱 Polski, 🇵🇹 Portugalski, 🇷🇴 Rumuński, 🇸🇪 Szwedzki, 🇨🇳 Chiński. -
Intuicyjny i Personalizowany Interfejs:
- Wybór między wyświetlaniem w aktywnym polu tekstowym a oknem dialogowym.
- Pasek statusu, który można dostosować (kolor, przezroczystość, czas wyświetlania) dla szybkiej wizualnej informacji zwrotnej.
-
Zaawansowane Opcje:
- Tryb ekspercki oferujący szczegółową konfigurację (URL-e API, parametry dla poszczególnych domen itp.).
- Ustawienia rozszerzenia dostępne poprzez przyjazną stronę opcji.
3. Za kulisami Rozwoju: Moja Przygoda z AI i Roo Code
Babel Fish AI to nie tylko rozszerzenie Chrome, ale również owoc pasjonujących eksperymentów z sztuczną inteligencją i innowacyjnym narzędziem: Roo Code.
Pozwól, że opowiem Ci, jak przekształciłem pomysł w rzeczywistość, opierając się na sile kilku AI oraz unikalnym środowisku programistycznym.
3.1. Roo Code: Mój Towarzysz w Programowaniu z AI
Roo Code to znacznie więcej niż tylko rozszerzenie VS Code. To prawdziwy autonomiczny agent programistyczny, który wspiera Cię w Twojej pracy. Wyobraź sobie pomocnika AI, który potrafi:
- Komunikować się w języku naturalnym.
- Odczytywać i zapisywać pliki bezpośrednio w Twojej przestrzeni roboczej.
- Wykonywać polecenia terminala.
- Integrację z różnymi API (OpenAI, Google Gemini itp.).
- Dostosowywać swoją “osobowość” dzięki “trybom personalizowanym”.
Do tworzenia Babel Fish AI użyłem Roo Code jak dyrygenta, kierując różnymi AI, aby współpracowały przy tworzeniu rozszerzenia.
3.2. Zespół AI dla Unikalnego Projektu
Skorzystałem z prawdziwego panelu AI, z których każda miała swoje mocne i słabe strony:
- o3-mini, Claude 3.5 Sonnet, Gemini (exp 1206, 1.5 pro exp 0827, Flash Think), GPT-4o : Te modele były moimi głównymi współpracownikami, każdy dodając swoją cegiełkę do budowli.
- Gemini (modele darmowe) : Ich bezpłatność była ogromnym atutem, mimo że musiałem radzić sobie z limitami (na szczęście, Roo Code obsługuje powtarzanie prób w razie niepowodzenia!).
3.3. Pokonywanie Przeszkód: Droga Pełna Trudności (i Rozwiązań!)
Rozwój nie był usłany różami. Napotkałem na kilka wyzwań, w tym:
-
Dostęp do Mikrofonu i Uprawnienia: Na początku nie udało się uzyskać zgody na dostęp do mikrofonu! AI nalegały, aby dodać uprawnienie “microphone”, które nie istnieje w Manifeście V3 dla Chrome. Musiałem zagłębić się w dokumentację oficjalną i przekazać ją do Claude 3.5 Sonnet, aby znalazł rozwiązanie.
-
Bezpieczne Przechowywanie Klucza API: Kolejna zagwozdka: jak bezpiecznie przechowywać i pobierać klucz API OpenAI w Chrome? Przekazałem oficjalną dokumentację do Gemini, który zdołał zaproponować mi odpowiedni kod do interakcji z przechowywaniem w Chrome.
3.4. Współpraca i Eksperymentowanie: Klucz do Sukcesu
Używałem różnych AI do opcji i lokalizacji, a także chciałem przetestować Roo Code.
Oprócz specyficznych wyzwań, udało mi się:
- Przetestować Roo Code w Warunkach Rzeczywistych: Rozwój Babel Fish AI był również okazją do sprawdzenia tego obiecującego narzędzia.
- Wygenerować ikonę i tło: Dzięki DALL-E 3 (zintegrowanemu z OpenAI) udało mi się stworzyć unikalną tożsamość wizualną dla rozszerzenia.
- Dostosować Pasek Wyświetlania: Użyłem GIMP-a, aby wyodrębnić kolory z obrazu, a następnie poprosiłem AI o napisanie części opcji umożliwiającej konfigurację kolorów paska.
- Przetłumaczyć Interfejs na Wiele Języków: Wykorzystałem siłę AI poprzez Roo Code do wygenerowania plików lokalizacyjnych (
_locales
) i przetłumaczenia opcji na wiele języków, co zaoszczędziło mnóstwo czasu! - Stworzenie menu rozwijanych: AI wygenerowało wszystko, co przyniosło ogromną oszczędność czasu.
- Zarządzanie renderowaniem HTML opcji: We współpracy z AI.
3.5 Napotkane Trudności
- Problem z wstrzykiwaniem tekstu do iframe w Google Chat: Dodano wyjątek i pozostawiłem domyślne okienko dialogowe.
- Tryb Ekspert i uprawnienia: Aby umożliwić zmianę URL-i API, musiałem autoryzować wszystkie hosty w manifeście. Wydaje się, że sprawia to problem z wzmocnioną nawigacją w Chrome i na razie nie widzę rozwiązania (jeśli ktoś ma pomysł, proszę daj znać!).
4. Dlaczego Babel Fish AI? Rozszerzenie zrodzone z Potrzeby
Zanim przejdziemy do technicznych szczegółów, ważne jest zrozumienie, dlaczego stworzyłem Babel Fish AI. Wszystko zaczęło się od osobistej potrzeby:
- Męczliwość pisania długich promptów: Chciałem móc komunikować się z AI w sposób bardziej naturalny, mówiąc do nich bezpośrednio.
- Przeciętne transkrypcje: Rozszerzenia do transkrypcji, które testowałem, były rozczarowujące.
- Dążenie do przejrzystości: Chciałem, aby rozszerzenie było open source, bez reklam i z pełną kontrolą nad kodem.
Babel Fish AI powstało z chęci stworzenia narzędzia, które odpowiadałoby na moje własne potrzeby, a jednocześnie byłoby przydatne dla społeczności.
5. Przybliżenie Kodu i Szczegóły Techniczne
Babel Fish AI zbudowane jest na typowej architekturze rozszerzenia Chrome, z kilkoma specyficznymi elementami związanymi z wykorzystaniem API OpenAI.
Oto przegląd głównych komponentów:
5.1. Ogólna Architektura
Rozszerzenie składa się z kilku plików JavaScript, które współdziałają ze sobą:
manifest.json
: Główny plik konfiguracyjny rozszerzenia. Definiuje uprawnienia, skrypty, dostępne zasoby itp.background.js
: Service worker, który działa w tle. Zarządza zdarzeniami (kliknięcie w ikonę, skróty klawiszowe), wstrzykujecontent script
w razie potrzeby i komunikuje się zcontent script
.content.js
: Skrypt wstrzykiwany na strony internetowe. Interaguje bezpośrednio z DOM, nagrywa dźwięk z mikrofonu, wywołuje API transkrypcji i tłumaczenia oraz wyświetla wyniki.src/utils/api.js
: Zawiera funkcje do wywoływania API Whisper firmy OpenAI (transkrypcja).src/utils/translation.js
: Zawiera funkcje do wywoływania API GPT firmy OpenAI (tłumaczenie).src/utils/ui.js
: Zawiera funkcje użytkowe do zarządzania interfejsem użytkownika (baner, okno dialogowe, przycisk kopiowania).src/constants.js
: Definiuje stałe używane w konfiguracji, stany, akcje itp.src/pages/options/
: Zawiera pliki do strony opcji rozszerzenia (HTML, CSS, JavaScript).
5.2. manifest.json
Plik manifest.json
korzysta z wersji 3 manifestu. Deklaruje następujące uprawnienia:
activeTab
: Dostęp do aktywnej karty.storage
: Do przechowywania klucza API oraz opcji rozszerzenia.commands
: Do definiowania skrótów klawiszowych.scripting
: Do wstrzykiwaniacontent script
.host_permissions
:https://api.openai.com/*
do wywołań API orazhttps://*/*
, co jest niezbędne w trybie eksperckim, aby umożliwić użytkownikowi określenie własnych URL-i API.
content_scripts
są wstrzykiwane we wszystkie adresy URL (<all_urls>
) i uruchamiane na końcu ładowania dokumentu ("run_at": "document_end"
). Skrypt w tle jest deklarowany jako service worker typu modułowego ("type": "module"
).
5.3. background.js
Skrypt background.js
pełni kilka ról:
- Wstrzykiwanie
content script
: Jeślicontent script
nie został jeszcze wstrzyknięty,background.js
wstrzykuje go podczas interakcji (kliknięcie w ikonę lub skrót klawiszowy). - Zarządzanie zdarzeniami: Nasłuchuje zdarzeń
chrome.runtime.onMessage
(wiadomości zcontent script
),chrome.action.onClicked
(kliknięcie w ikonę) orazchrome.commands.onCommand
(skróty klawiszowe). - Komunikacja z
content script
: Wysyła wiadomości docontent script
, aby rozpocząć lub zakończyć nagrywanie ({ action: ACTIONS.TOGGLE }
). - Aktualizacja ikony: Aktualizuje odznakę ikony rozszerzenia, aby wskazać stan nagrywania (w trakcie, zatrzymane, błąd).
5.4. content.js
Content script
jest sercem rozszerzenia. Wykonuje następujące zadania:
- Inicjalizacja: Inicjuje klucz API oraz opcje kolorów paska z przechowywania Chrome.
- Nagrywanie dźwięku: Używa API
navigator.mediaDevices.getUserMedia
, aby uzyskać dostęp do mikrofonu i nagrywać dźwięk. - Transkrypcja: Używa funkcji
transcribeAudio
(src/utils/api.js
), aby wysłać dźwięk do API Whisper firmy OpenAI i otrzymać transkrypcję. - Tłumaczenie (opcjonalne): Jeśli opcja tłumaczenia jest aktywna, używa funkcji
translateText
(src/utils/translation.js
), aby wysłać przetranskrybowany tekst do API GPT firmy OpenAI i otrzymać tłumaczenie. - Wyświetlanie: Wyświetla transkrypcję (oraz tłumaczenie, jeśli dotyczy) albo w aktywnym elemencie strony (jeśli jest to pole tekstowe lub element edytowalny), albo w oknie dialogowym.
- Zarządzanie banerem: Wyświetla baner statusu na górze strony, aby wskazać stan nagrywania lub wyświetlić komunikaty o błędach.
- Komunikacja ze
background script
: Wysyła wiadomości dobackground script
, aby zgłosić rozpoczęcie, zakończenie lub błąd nagrywania. - Nasłuchiwanie zmian opcji: Monitoruje zmiany w opcjach rozszerzenia i aktualizuje wyświetlanie zgodnie z nimi.
5.5. Komunikacja
Komunikacja między background script
a content script
odbywa się za pomocą API komunikacji Chrome (chrome.runtime.sendMessage
oraz chrome.runtime.onMessage
).
5.6. API
Rozszerzenie wykorzystuje dwa API OpenAI:
- Whisper : Do transkrypcji mowy. Domyślny URL to
https://api.openai.com/v1/audio/transcriptions
, a używany model towhisper-1
. - GPT : Do tłumaczenia (opcjonalnie). Domyślny URL to
https://api.openai.com/v1/chat/completions
, a używany model togpt-4o-mini
.
URL-e API można zmieniać w opcjach rozszerzenia (tryb ekspercki).
5.7. Przechowywanie
Rozszerzenie używa chrome.storage.sync
do przechowywania:
- Klucza API OpenAI (
apiKey
). - Opcji rozszerzenia (wyświetlanie, tłumaczenie, kolory paska itp.).
5.8. Interfejs Użytkownika
Interfejs użytkownika rozszerzenia jest zarządzany przez kilka funkcji w src/utils/ui.js
oraz content.js
:
- Baner: Baner statusu wyświetlany jest na górze strony, aby wskazać stan nagrywania lub wyświetlić komunikaty o błędach. Kolor i przezroczystość banera są konfigurowalne.
- Okno dialogowe: Transkrypcja (oraz tłumaczenie) mogą być wyświetlane w oknie dialogowym. Czas wyświetlania jest konfigurowalny.
- Przycisk kopiowania: Przycisk kopiowania jest dodany do okna dialogowego, aby łatwo skopiować przetranskrybowany tekst.
5.9. Zarządzanie Błędami
Błędy są zarządzane centralnie. Komunikaty o błędach są zdefiniowane w src/constants.js
(obiekt ERRORS
). Błędy są wyświetlane użytkownikowi poprzez baner statusu.
6. Zasoby
- Repozytorium GitHub: Babel Fish AI
- Chrome Web Store: Babel Fish AI
7. Podsumowanie
Babel Fish AI oferuje kompleksowe rozwiązanie dla precyzyjnej transkrypcji mowy oraz opcjonalnego tłumaczenia, gwarantując przy tym intuicyjny interfejs i wzmocnione bezpieczeństwo. Dzięki temu rozszerzeniu, doświadczenie przekształcania mowy na tekst jest zoptymalizowane, a bariera językowa zniesiona. Przetestuj Babel Fish AI w Chrome Web Store i odkryj, jak może zmienić Twoją komunikację.
Dziękuję za lekturę i życzę owocnego korzystania z Babel Fish AI!
Ten dokument został przetłumaczony z wersji fr na język pl przy użyciu modelu o3-mini. Aby uzyskać więcej informacji na temat procesu tłumaczenia, odwiedź https://gitlab.com/jls42/ai-powered-markdown-translator