iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
A tiny two-way translator for your desktop: type, paste, speak or snip text in any app. Tauri 2, local Whisper, ~2 MB.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A tiny two-way translator for your desktop.
Type, paste, speak or snip text in any app and read it, or hear it, in another language.README 전문 보기 ↗| Windows | Mac | Action |
|---|---|---|
| Ctrl+Shift+Space | ⌃⌥V | show / hide Vox2, ready to type |
| Ctrl+Alt+T | tap Right ⌘ | translate the selected text in any app (a quick tap on its own, so Right ⌘ + a key still works as usual) |
| Ctrl+Alt+S | ⌃⌥S | snip an area of the screen and translate it |
| Right Ctrl | Right ⌥ Option | dictate: tap to start (stops when you go quiet, or tap again), or hold to talk |
| Esc | Esc | stop reading aloud or dictating, from any app (does nothing otherwise) |
| Ctrl+L | ⌘L | listen to the translation, again to stop (while Vox2 or the bubble is in front) |
| Ctrl+Shift+C | ⇧⌘C | copy the translation (in the bubble: ⌘C / Ctrl+C) |
| Ctrl+Shift+S | ⇧⌘S | swap the two languages (while Vox2 is in front) |
| Tab | Tab | go round the languages and text boxes; on a language, just type its name ("spa") |
| Ctrl+P | ⌘P | pin on top (while Vox2 is in front) |
| Ctrl+Shift+F | ⇧⌘F | fit the window to its text; press again for a wider reading width, again for a compact window (handy for long text), again to fit (while Vox2 is in front) |
| Ctrl+H | ⌘Y | open / close history (while Vox2 is in front) |
| Ctrl+, | ⌘, | open / close settings (while Vox2 is in front) |
All configurable in settings → shortcuts. Hover a button in the bottom bar to see its shortcut.
For talking with someone who speaks another language, with one computer between you.
How it works today
Tips: use the speakers, not headphones, and put the computer between you. For a natural pace, set settings → dictation → "after a tap, stop when quiet for" to 2 s. Turning conversation mode on also turns on dictation, which it needs.
Limitations (why it's in beta)
Where it's heading: hands-free turns. After Vox2 reads a translation aloud, it starts listening on the other side by itself, walkie-talkie style, so a conversation flows without touching the computer after the first tap. Tracked in #11.
Pick one in settings → dictation → voice model. The Whisper models are OpenAI's open speech-recognition models, run entirely on your computer: free, private, and they work offline once downloaded. All of them understand 99 languages. Bigger models are more accurate, especially with accents, background noise and mixed languages, and take more memory and download time.
| Model | Size | Good for |
|---|---|---|
| Whisper Large v3 Turbo · most accurate | 1.5 GB (about 760 MB on graphics cards without half-precision support) | The best accuracy Vox2 offers on your own computer. A faster version of Whisper's largest model (released 2024): near-flagship accuracy at a fraction of the work. Wants a computer with a capable graphics card (any Apple Silicon Mac, or a recent Windows PC); without one it's slow. On an M1 Pro it transcribed a 6-second sentence in about 3.5 s, about as fast as Small. |
| Whisper Small · default | 590 MB | A good balance of speed and accuracy on almost any computer. |
| Whisper Base · lighter | 210 MB | Quicker to download and lighter on memory; fine for clear speech in a quiet room. |
| Whisper Tiny · lightest | 120 MB | For older or low-memory computers. Noticeably rougher; mostly useful when the others are too slow. |
| OpenAI · online | none | Sends your audio to OpenAI after each pause (models gpt-4o-mini-transcribe by default, gpt-4o-transcribe, or whisper-1). Uses your own OpenAI key (the same one as the ChatGPT translation engine) and is billed to it. Needs internet; not private in the way the local models are. |
Each local model downloads once, the first time you dictate with it, and settings marks it "downloaded" after that. "Keep the voice model ready" decides whether it stays loaded in memory between dictations.
Why not Parakeet? Some dictation apps recommend NVIDIA's Parakeet v3, which is very fast. It only covers English and 24 European languages (no Vietnamese, Chinese, Japanese, Korean, Arabic…), and isn't available in a form that runs inside Vox2's web view, so it's not offered.
Vox2-setup.exe from the latest release and run it. It installs per user, no admin needed.Windows 10/11, 64-bit.
Vox2-mac.dmg, open it and drag Vox2 into Applications.Apple Silicon Macs (M1 and newer). Tested on macOS 26.
Permissions. macOS asks for each of these separately; the permissions screen shows them all in one place.
| Permission | Used for |
|---|---|
| Input Monitoring | hearing your shortcuts while you're in other apps |
| Accessibility | typing what you dictate into other apps, copying the selected text to translate it, keeping Vox2's shortcuts from also reaching the app in front |
| Screen Recording | snip & translate (only the area you box is read, on your Mac) |
| Microphone | dictation (only shown when dictation is on) |
Why permissions survive updates. Mac builds are signed with Vox2's own certificate (free, self-made; not Apple-issued). macOS remembers permissions per signature, so every update counts as the same app. Unsigned builds would lose their permissions on every update.
Shortcuts look Mac-native. Settings shows them the way the menu bar does (⌃⌥T). The shortcuts that work from any app are ⌃⌥ + a letter (V show/hide, S snip), one left-hand press that macOS and most apps leave free, and translating a selection is a quick tap of Right ⌘ on its own. Vox2 keeps those keys from also reaching the app in front (this needs Accessibility, which Vox2 already asks for). If another app uses the same combo (e.g. a window manager like Rectangle), change either one in settings → shortcuts. The ones that only work while Vox2 is in front use ⌘ (⌘, settings, ⌘Y history, ⌘P pin, ⇧⌘F fit).
If a shortcut does nothing. Check settings → permissions. If a row stays "needed" even though Vox2 looks switched on in System Settings, an old entry is in the way: select Vox2 there, remove it with −, add it again with +, then restart Vox2. To clear every Vox2 entry at once, run this in Terminal and allow them again:
tccutil reset All com.chris.translator
Back-translation on Mac. Google's back-translation service often refuses requests from Vox2 on Mac ("too many requests"), so on Mac the ↩ line and its score come from the same Google service as the main translation. Pronunciation (pinyin, romaji…) still comes from the back-translation service; if Google refuses at that moment, only that line is left out.
Not yet on Mac. Intel Macs, and Apple notarization (which would remove the "Open Anyway" step).
The goal: after every translation, you know whether your meaning came through, and when Vox2 can't tell, it says so. The Meaning Check page has the north star, a diagram of where we are and what's next, and every test.
With back-translation on (settings → translation), Vox2 translates the result back into your language and shows it under the translation as a faint ↩ line, tagged with a score such as 92% match. Hover the tag for a short key.
What it measures. How much of your meaning survived the round trip: your text → the translation → back into your language. Good translations often come back reworded ("Good morning" → "Good day"). Counting shared words would mark those as failures, so the score compares meaning, not exact words, using a sentence-embedding model.
| Score | Tier | Meaning | Color |
|---|---|---|---|
| 85–100 | high | meaning kept | theme accent |
| 65–84 | moderate | check the details | theme text |
| below 65 | low | likely off: something dropped, added, reversed or mistranslated | theme warning |
can't check (no score) means part of your text came through untranslated (gibberish, a garbled snip, text already in the other language): the ↩ line just repeats it, so a score would mean nothing. The untranslated words are underlined.
With colorblind-friendly colors on (settings → appearance), the tiers use the Okabe–Ito colorblind-safe palette instead, plus a symbol, so the tier never depends on color alone: blue ✓ (high), amber ! (moderate), vermillion ✕ (low), in a darker shade on light themes.
Targeted checks. On top of the score, Vox2 compares your text with the ↩ line for meaning flips: a "not" that appeared or disappeared, he/she swapped, an opposite word, a changed day or month, part missing, a changed number, a changed unit (days → weeks, mg → g, °F → °C), or an "unless" that became "if". Any of these caps the score at 60, the word behind it is underlined in the ↩ line, and the hover card says what changed and which of your words didn't come back. (English for now.)
How well it works. Every change is measured on translations into 11 languages with planted meaning errors, and the results (current numbers, what's strong, what's weak, and the full history) are on the Meaning Check page. In short: it's strongest on dropped parts, changed numbers and a "not" added or removed, weakest on swapped pronouns and opposite words, and says "can't check" instead of guessing when text wasn't translated.
More: how the score is computed, exactly, all test reports, and how to re-run the test.
| Part | Tech |
|---|---|
| Shell | Tauri 2: a ~5 MB Rust binary hosting the UI in the system web view (WebView2 on Windows, WebKit on Mac), no bundled browser |
| UI | plain HTML/CSS/JS in resources/, no framework or build step |
| Global shortcuts, typing into other apps, selection grab | Rust: keyboard hook (rdev on Windows; on Mac a listen-only Core Graphics event tap in hotkey.rs), enigo simulated input, arboard clipboard |
| Mac permissions | permissions.rs: checks and prompts for Input Monitoring, Accessibility, Screen Recording and Microphone |
| App language | Every word through tr() (resources/i18n.js), looked up by its English wording in resources/i18n/<code>.json. Machine-translated, checked by translating back and scoring with the meaning model, hand-fixed where flagged (details) |
| Speech to text | Whisper (tiny, base, small or large-v3-turbo; see Dictation models) running locally via transformers.js + ONNX Runtime, WebGPU when available. Kept loaded after use for 2, 10 or 30 min depending on the computer's memory, and released early if memory runs low |
| Back-translation score | paraphrase-multilingual-MiniLM-L12-v2 sentence embeddings via transformers.js, local; released from memory when idle |
| Screen text | xcap capture, read locally: Apple's Vision text recognizer on Mac (ocr.rs), Tesseract.js on Windows and as the Mac fallback |
| Voices | Microsoft neural voices (Edge Read Aloud protocol, ), OpenAI, or system voices |
The principle: a light core, with bigger features as optional add-ons that load only when you use them and unload after (the way dictation and the meaning check already work). Ordered by value for the effort, highest first: what makes Vox2 more trustworthy and useful day to day comes before bigger projects and paid certificates. Each item has an issue for discussion, all under the roadmap label. Ideas and requests are welcome in Issues. Tags: value · effort · platforms.
Done: Vox2 in your language (0.4.25): the whole app in 133 languages, see App languages. macOS version (beta), see macOS notes. Meaning check says "can't check" instead of 100% when text came through untranslated (#38).
cargo install tauri-cli --version "^2" --locked
cargo tauri build # installer in src-tauri/target/release/bundle/nsis/
Needs Rust and, on Windows, the Visual Studio C++ build tools (on macOS, Xcode command-line tools). Release builds that publish updates also need the updater signing key in TAURI_SIGNING_PRIVATE_KEY.
Mac builds come from GitHub Actions (.github/workflows/build.yml): run the build workflow by hand for a test .dmg. Releases (Windows + Mac together) come from the release workflow (Actions → release → Run workflow, type the new version), which also bumps the version and dates the changelog, so they can be made from any computer; publishing a release made on a PC also makes build.yml attach Vox2-mac.dmg and the Mac update to it. Signing uses repo secrets: APPLE_CERTIFICATE, APPLE_CERTIFICATE_PASSWORD and APPLE_SIGNING_IDENTITY (Vox2's own certificate), plus TAURI_SIGNING_PRIVATE_KEY for updates.
Layout: resources/ is the UI (app.js wires everything; engines.js, dictation.js, tts.js, ocr.js, langpicker.js are the pieces). src-tauri/src/ is the native side (main.rs, hotkey.rs, overlay.rs, permissions.rs, tts.rs).
GPL-3.0. Color themes are from Monkeytype (GPL-3.0). Turtle and rabbit icons are from Lucide (ISC). Fonts: Roboto Mono and Lexend Deca (SIL Open Font License).
tts.rs| Translation | Google Translate web endpoint, or the Anthropic / OpenAI / Gemini APIs, called directly |
| Updates | tauri-plugin-updater, minisign-signed, served from GitHub releases. Releases are built for Windows and Mac by GitHub Actions (the release workflow) and published together |