Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 82 additions & 52 deletions CREATE_PORTABLE.bat
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
@echo off
chcp 65001 >nul 2>&1
cd /d "%~dp0"
title VoxFlow - Tworzenie wersji Portable

echo.
echo ============================================================
echo VoxFlow - Tworzenie wersji Portable
echo VoxFlow - Tworzenie wersji Portable (venv-based)
echo by AI Evolution Polska
echo ============================================================
echo.

set VER=1.1.0
set PORTABLE_DIR=dist\VoxFlow_Portable_v%VER%
set PORTABLE_APP=%PORTABLE_DIR%\VoxFlow
set VER=1.2.0
set PORTABLE_DIR=portable\VoxFlow_Portable_v%VER%

REM --- Sprawdz venv ---
if not exist "venv\Scripts\activate.bat" (
Expand All @@ -20,84 +20,113 @@ if not exist "venv\Scripts\activate.bat" (
echo.
pause & exit /b 1
)
call venv\Scripts\activate.bat

REM --- Krok 1: Zbuduj EXE jesli nie istnieje ---
echo [1/4] Sprawdzam czy VoxFlow.exe jest zbudowany...
if exist "dist\VoxFlow\VoxFlow.exe" (
echo [OK] VoxFlow.exe juz istnieje - pomijam build
) else (
echo Budowanie VoxFlow.exe przez PyInstaller...
echo (To moze potrwac 3-6 minut)
pip install pyinstaller --quiet --disable-pip-version-check
pyinstaller VoxFlow.spec --noconfirm --clean
if %errorlevel% neq 0 (
echo [BLAD] Build nie powiodl sie!
pause & exit /b 1
)
if not exist "dist\VoxFlow\VoxFlow.exe" (
echo [BLAD] Nie znaleziono dist\VoxFlow\VoxFlow.exe
pause & exit /b 1
)
echo [OK] VoxFlow.exe zbudowany
)

REM --- Krok 2: Wyczysc stary portable folder ---
echo.
echo [2/4] Przygotowanie katalogu portable...
REM ==============================================================
REM KROK 1: Przygotuj katalog portable
REM ==============================================================
echo [1/5] Przygotowanie katalogu portable...
if exist "%PORTABLE_DIR%" (
echo Usuwam stary folder %PORTABLE_DIR%...
echo Usuwam stary folder %PORTABLE_DIR%...
rmdir /s /q "%PORTABLE_DIR%"
)
mkdir "%PORTABLE_DIR%"
mkdir "%PORTABLE_DIR%\assets"

REM ==============================================================
REM KROK 2: Skopiuj zrodla VoxFlow
REM ==============================================================
echo [2/5] Kopiowanie zrodel VoxFlow...
xcopy "voxflow\*" "%PORTABLE_DIR%\voxflow\" /E /I /Q /Y
if %errorlevel% neq 0 (
echo [BLAD] Blad kopiowania zrodel!
pause & exit /b 1
)

REM --- Krok 3: Kopiuj pliki ---
REM --- Skopiuj ikone i zasoby ---
if exist "assets\voxflow.ico" copy /Y "assets\voxflow.ico" "%PORTABLE_DIR%\assets\" >nul
if exist "assets\voxflow_256.png" copy /Y "assets\voxflow_256.png" "%PORTABLE_DIR%\assets\" >nul
if exist "requirements.txt" copy /Y "requirements.txt" "%PORTABLE_DIR%\" >nul

echo [OK] Zrodla skopiowane

REM ==============================================================
REM KROK 3: Skopiuj i zregeneruj srodowisko venv (site-packages)
REM ==============================================================
echo.
echo [3/4] Kopiowanie plikow VoxFlow...
xcopy "dist\VoxFlow\*" "%PORTABLE_APP%\" /E /I /Q
echo [3/5] Kopiowanie srodowiska Python (venv)...
echo (to moze chwile potrwac)
xcopy "venv\*" "%PORTABLE_DIR%\venv\" /E /I /Q /Y
if %errorlevel% neq 0 (
echo [BLAD] Blad kopiowania plikow!
echo [BLAD] Blad kopiowania venv!
pause & exit /b 1
)
echo [OK] venv skopiowany

REM ==============================================================
REM KROK 4: Stworz launcher START_VOXFLOW.bat w katalogu portable
REM ==============================================================
echo.
echo [4/5] Tworzenie launchera i skrotu na pulpicie...

REM --- Stworz launcher START_VOXFLOW.bat ---
(
echo @echo off
echo cd /d "%%~dp0VoxFlow"
echo start "" "VoxFlow.exe"
echo chcp 65001 ^>nul 2^>^&1
echo cd /d "%%~dp0"
echo call venv\Scripts\activate.bat
echo start "" pythonw -m voxflow.main
echo if errorlevel 1 start "" python -m voxflow.main
) > "%PORTABLE_DIR%\START_VOXFLOW.bat"

REM --- Stworz README_PORTABLE.txt ---
REM --- Skrot na pulpicie wskazujacy na launcher portable ---
call venv\Scripts\activate.bat
set PORTABLE_ABS=%~dp0%PORTABLE_DIR%
venv\Scripts\python.exe -c "import sys; sys.path.insert(0,'%~dp0'); from voxflow.create_shortcut import create_desktop_shortcut_for_bat; create_desktop_shortcut_for_bat(r'%PORTABLE_ABS%')"
if %errorlevel% equ 0 (
echo [OK] Skrot VoxFlow Portable pojawil sie na pulpicie!
) else (
echo [UWAGA] Skrotu nie udalo sie utworzyc automatycznie.
echo Mozesz recznie przeniesc START_VOXFLOW.bat na pulpit.
)

REM ==============================================================
REM KROK 5: Stworz README_PORTABLE.txt
REM ==============================================================
(
echo VoxFlow %VER% - Wersja Portable
echo ================================
echo VoxFlow v%VER% - Wersja Portable
echo =================================
echo.
echo JAK URUCHOMIC:
echo Kliknij dwukrotnie START_VOXFLOW.bat
echo (lub uruchom VoxFlow\VoxFlow.exe bezposrednio)
echo 1. Kliknij skrot "VoxFlow" na Pulpicie
echo lub
echo 2. Kliknij dwukrotnie START_VOXFLOW.bat w tym folderze
echo.
echo CO NOWEGO:
echo - Jezyki: Polski + Angielski + Niemiecki + Francuski + inne
echo - Tlumaczenie glosu -^> Angielski (100%% offline)
echo - Skrot na Pulpicie tworzony automatycznie
echo.
echo JAK DZIALA:
echo - Przytrzymaj F2 i mow - pojawi sie animacja nagrywania na dole ekranu
echo - Zwolnij F2 - tekst zostanie wklejony w aktywnym oknie
echo - Kliknij przycisk klawisza w UI aby zmienic skrot klawiszowy
echo - Ikona w zasobniku - kliknij prawym przyciskiem dla opcji
echo - Przytrzymaj F2 i mow ^(pojawi sie animacja fal^)
echo - Zwolnij F2 ^- tekst zostanie wklejony w aktywnym oknie
echo - Kliknij przycisk klawisza w UI aby zmienic skrot
echo - Ustawienia: przelacznik Tlumaczenie w panelu Ustawien
echo.
echo WYMAGANIA:
echo - Windows 10/11 (64-bit)
echo - Mikrofon
echo - Internet TYLKO przy pierwszym uruchomieniu
echo (pobranie modelu AI ~500 MB)
echo ^(pobranie modelu AI ~500 MB, zapisywany w APPDATA\VoxFlow\^)
echo.
echo WAZNE:
echo - NIE przenosic samego VoxFlow.exe bez calego folderu VoxFlow\
echo - Caly folder VoxFlow_Portable_v%VER% mozna przeniesc gdzie chcesz
echo - NIE przenosic samego folderu voxflow\ bez reszty
echo - Caly folder VoxFlow_Portable_v%VER%\ mozna przeniesc gdzie chcesz
echo - Ustawienia zapisywane w: %%APPDATA%%\VoxFlow\
echo.
echo by AI Evolution Polska - https://github.com/aievolutionpl/VoxFlow
) > "%PORTABLE_DIR%\README_PORTABLE.txt"

echo.
echo [4/4] Gotowe!
echo [5/5] Gotowe!
echo.

REM --- Zapytaj czy zipowac ---
Expand All @@ -106,10 +135,10 @@ if /i "%DOZIP%"=="n" goto :done

echo.
echo Pakuje do ZIP...
powershell -Command "Compress-Archive -Path '%PORTABLE_DIR%' -DestinationPath 'dist\VoxFlow_Portable_v%VER%.zip' -Force"
powershell -Command "Compress-Archive -Path '%PORTABLE_DIR%' -DestinationPath 'portable\VoxFlow_Portable_v%VER%.zip' -Force"

if %errorlevel% equ 0 (
echo [OK] ZIP stworzony: dist\VoxFlow_Portable_v%VER%.zip
echo [OK] ZIP stworzony: portable\VoxFlow_Portable_v%VER%.zip
) else (
echo [UWAGA] Nie udalo sie stworzyc ZIP. Folder istnieje: %PORTABLE_DIR%
)
Expand All @@ -119,8 +148,9 @@ echo.
echo ============================================================
echo [OK] Wersja Portable gotowa!
echo.
echo Folder: %PORTABLE_DIR%
echo Folder: %PORTABLE_DIR%
echo Launcher: START_VOXFLOW.bat
echo Skrot: Pulpit\VoxFlow.lnk
echo ============================================================
echo.

Expand Down
15 changes: 14 additions & 1 deletion INSTALL_MAC.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,10 @@ Skrypt automatycznie wykrywa architekturę. Na Apple Silicon:
|---------|-------------|
| `command not found: brew` | Zainstaluj [Homebrew](https://brew.sh) ręcznie |
| `portaudio` błąd | `brew install portaudio` |
| `tkinter` nie znaleziony | `brew install python-tk@3.11` |
| Python za stary | `brew install python@3.11` |
| Hotkey nie działa globalnie | Dodaj do Accessibility (powyżej) |
| Hotkey nie działa globalnie | Dodaj do Accessibility (patrz sekcja poniżej) |
| `pynput` błąd | `pip install pynput` (instalowany automatycznie) |
| Błąd pobierania modelu | Sprawdź połączenie internetowe |

---
Expand All @@ -89,3 +91,14 @@ Skrypt automatycznie wykrywa architekturę. Na Apple Silicon:
- 4 GB RAM (8 GB zalecane)
- Mikrofon
- Połączenie internetowe (pierwsze pobranie modelu ~500 MB)

---

## 🌐 Funkcja tłumaczenia (nowość)

VoxFlow posiada wbudowane tłumaczenie głosowe **100% offline**:
Mów po polsku, niemiecku, francusku → tekst pojawia się po **angielsku**.

Aktywacja: **⚙ Ustawienia → 🌐 Tłumacz głos → angielski** (toggle)

> Działa bez internetu — Whisper tłumaczy lokalnie.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,9 @@ Uruchom `START_VOXFLOW.bat` z folderu portable.

| 🇵🇱 | 🇬🇧 |
|-----|-----|
| 🎤 Dyktowanie przytrzymując klawisz | Hold-to-record hotkey |
| 🌍 Polski + Angielski (auto-detekcja) | Polish + English (auto-detect) |
| � Dyktowanie przytrzymując klawisz | Hold-to-record hotkey |
| 🌍 Polski + Angielski + Niemiecki + więcej (auto-detekcja) | Polish + English + German + more (auto-detect) |
| 🌐 Tłumaczenie głos → Angielski (100% offline) | Voice → English translation (100% offline) |
| ⚡ 100% lokalne — zero chmury | 100% local — no cloud |
| 🧠 OpenAI Whisper (faster-whisper) | OpenAI Whisper (faster-whisper) |
| ✍️ Auto-wpisywanie w aktywne okno | Auto-type into active window |
Expand Down Expand Up @@ -114,8 +115,9 @@ chmod +x install_mac.sh
./install_mac.sh
```

> Skrypt automatycznie instaluje `portaudio`, `pynput` (globalny hotkey) i sprawdza Tkinter.
> Globalny hotkey wymaga uprawnień Accessibility w System Settings.
> Szczegóły: [INSTALL_MAC.md](INSTALL_MAC.md)
> Szczegóły i rozwiązywanie problemów: [INSTALL\_MAC.md](INSTALL_MAC.md)

---

Expand Down
5 changes: 5 additions & 0 deletions START_VOXFLOW.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@echo off
cd /d "%~dp0"
call venv\Scripts\activate.bat
start "" pythonw -m voxflow.main
if errorlevel 1 start "" python -m voxflow.main
Binary file added VOXFLOW.lnk
Binary file not shown.
17 changes: 16 additions & 1 deletion install.bat
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,27 @@ echo if errorlevel 1 start "" python -m voxflow.main

echo [OK] Plik START_VOXFLOW.bat stworzony!

echo.
echo ------------------------------------------------------------
echo KROK 5: Tworzenie skrotu na pulpicie...
echo ------------------------------------------------------------
echo.

venv\Scripts\python.exe -c "import sys; sys.path.insert(0,'%~dp0'); from voxflow.create_shortcut import create_desktop_shortcut_for_bat; create_desktop_shortcut_for_bat('%~dp0'.rstrip(chr(92)))"
if %errorlevel% neq 0 (
echo [UWAGA] Skrotu nie udalo sie utworzyc automatycznie.
echo Mozesz recznie przeniesc START_VOXFLOW.bat na pulpit.
) else (
echo [OK] Skrot VoxFlow pojawil sie na pulpicie!
)

echo.
echo ============================================================
echo [OK] VoxFlow zainstalowany pomyslnie!
echo.
echo Uruchom aplikacje:
echo --^> Kliknij dwukrotnie START_VOXFLOW.bat
echo --^> Kliknij skrot VoxFlow na Pulpicie
echo --^> lub dwukrotnie kliknij START_VOXFLOW.bat
echo ============================================================
echo.

Expand Down
26 changes: 25 additions & 1 deletion install_mac.sh
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,19 @@ echo " KROK 2: Instalacja bibliotek audio (portaudio)..."
echo "══════════════════════════════════════════════════════"
echo ""

# Detect Homebrew prefix for portaudio lib path
BREW_PREFIX=$(brew --prefix 2>/dev/null || echo "/usr/local")

if brew list portaudio &>/dev/null; then
echo -e "${GREEN} ✅ portaudio już zainstalowany${NC}"
else
brew install portaudio
echo -e "${GREEN} ✅ portaudio zainstalowany${NC}"
fi

# Export portaudio path so sounddevice can find the dylib
export DYLD_LIBRARY_PATH="${BREW_PREFIX}/lib:${DYLD_LIBRARY_PATH:-}"

# ─── Check Python 3.9+ ─────────────────────────────────────────
echo ""
echo "══════════════════════════════════════════════════════"
Expand Down Expand Up @@ -129,16 +135,34 @@ echo ""
pip install --upgrade pip --quiet
pip install -r requirements.txt --quiet

# Install pynput as macOS hotkey fallback (keyboard lib needs root on macOS)
pip install pynput --quiet 2>/dev/null || true

echo -e "${GREEN} ✅ Pakiety zainstalowane${NC}"

# Ensure Tkinter is available — install python-tk via Homebrew if missing
python -c "import tkinter" 2>/dev/null || {
echo -e "${YELLOW} ℹ️ Tkinter nie znaleziony. Instaluję python-tk@3.11...${NC}"
brew install python-tk@3.11 2>/dev/null || brew install python-tk 2>/dev/null || true
echo -e " ⚠️ Jeśli Tkinter nadal nie działa, uruchom: brew install python-tk@3.11"
}

# ─── Verify ─────────────────────────────────────────────────────
echo ""
echo "══════════════════════════════════════════════════════"
echo " KROK 6: Weryfikacja instalacji..."
echo "══════════════════════════════════════════════════════"
echo ""

python -m voxflow.main --test
if python -m voxflow.main --test; then
echo -e "${GREEN} ✅ Weryfikacja zakończona pomyślnie${NC}"
else
echo -e "${YELLOW} ⚠️ Weryfikacja z ostrzeżeniami — sprawdź błędy powyżej.${NC}"
echo " Typowe problemy:"
echo " • tkinter: brew install python-tk@3.11"
echo " • portaudio: brew install portaudio"
echo " • HotKey: dodaj Terminal do Accessibility w Ustawieniach"
fi

# ─── Create launcher ─────────────────────────────────────────────
echo ""
Expand Down
Loading