[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75975":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":22,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":14,"starSnapshotCount":14,"syncStatus":17,"lastSyncTime":27,"discoverSource":28},75975,"AirTranslate","himomohi\u002FAirTranslate","himomohi","AirTranslate macOS app",null,"Swift",325,30,200,0,7,121,2,4.47,"Apache License 2.0",false,"master",true,[],"2026-06-12 02:03:38","![AirTranslate hero](docs\u002Fassets\u002Fairtranslate-readme-hero.png)\n\n# AirTranslate\n\nLive system-audio transcription and translation for macOS.\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhimomohi\u002FAirTranslate\u002Freleases\u002Flatest\u002Fdownload\u002FAirTranslate.dmg\">\u003Cimg alt=\"Download AirTranslate.dmg\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDownload-AirTranslate.dmg-2EA44F?style=for-the-badge&logo=apple&logoColor=white\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhimomohi\u002FAirTranslate\u002Freleases\u002Flatest\">\u003Cimg alt=\"Latest release\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fhimomohi\u002FAirTranslate?style=for-the-badge&label=Latest\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhimomohi.github.io\u002FAirTranslate\u002F\">\u003Cimg alt=\"Official guide site\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGuide-Site-0A84FF?style=for-the-badge\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fhimomohi.github.io\u002FAirTranslate\u002F\">Guide Site\u003C\u002Fa> ·\n  \u003Ca href=\"#download\">Download\u003C\u002Fa> ·\n  \u003Ca href=\"#requirements\">Requirements\u003C\u002Fa> ·\n  \u003Ca href=\"#privacy-and-api-keys\">Privacy\u003C\u002Fa> ·\n  English ·\n  \u003Ca href=\"README.ko.md\">한국어\u003C\u002Fa> ·\n  \u003Ca href=\"README.ja.md\">日本語\u003C\u002Fa> ·\n  \u003Ca href=\"README.zh-CN.md\">中文\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"macOS 26+\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FmacOS-26%2B-0A84FF?style=flat-square&logo=apple\">\n  \u003Cimg alt=\"Swift 6.2+\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSwift-6.2%2B-F05138?style=flat-square&logo=swift&logoColor=white\">\n  \u003Ca href=\"LICENSE\">\u003Cimg alt=\"License: Apache 2.0\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue?style=flat-square\">\u003C\u002Fa>\n\u003C\u002Fp>\n\nAirTranslate captures audio playing on your Mac, turns it into a live transcript, translates it in real time, and can show the result as a floating caption overlay. It is designed for meetings, lectures, videos, interviews, and streams where routing audio through a microphone is awkward or lossy.\n\nFor a user-facing overview, setup guide, and download path, visit the [AirTranslate Guide Site](https:\u002F\u002Fhimomohi.github.io\u002FAirTranslate\u002F).\n\nThe default workflow uses Apple frameworks. GPT-powered realtime models are optional and can be enabled from the app when you provide your own OpenAI API key.\n\n## Why AirTranslate\n\n- **System-audio first:** capture Mac playback audio directly with ScreenCaptureKit.\n- **Readable live workspace:** source and translated text stay side by side.\n- **Floating captions:** keep subtitles above other apps while you watch or listen.\n- **Apple by default:** Apple Speech and Apple Translation remain the baseline path.\n- **Optional GPT mode:** OpenAI Realtime transcription and translation can be enabled only when needed.\n- **Keychain storage:** OpenAI API keys are entered by the user and stored in macOS Keychain.\n- **Plain text history:** saved transcripts remain normal `.txt` files in Application Support.\n\n![AirTranslate demo](docs\u002Fassets\u002Fairtranslate-readme-demo.gif)\n\n> \"Turn any Mac audio into live captions and translation, right where you are watching.\"\n\n## Core Features\n\n- Live Mac system-audio capture\n- Apple Speech transcription\n- Apple Translation output\n- Built-in, Bluetooth, and AirPods mic input support\n- GPT mode with OpenAI Realtime transcription and translation\n- Microphone input stability fixes for duplicate segments and noisy transitions\n- Apple basic-mode source-language auto-detect is temporarily disabled while language-switch handling is improved.\n- Realtime translation-only model path\n- One-click source\u002Ftarget language swap\n- Floating caption window\n- Transcript polish based on macOS spelling suggestions\n- Optional translated speech output\n- Saved transcript library with edit, delete, and folder access\n- English, Korean, Japanese, and Simplified Chinese interface selection based on the Mac language\n\n## Processing Modes\n\nAirTranslate separates the quick choice from the detailed setup.\n\n| Mode | Best For | Details |\n| --- | --- | --- |\n| Apple Mode | Local-first transcription and translation | Uses Apple Speech for transcription and Apple Translation for the selected language pair. Source-language auto-detect is temporarily disabled while language-switch handling is improved. |\n| GPT Mode | OpenAI Realtime transcription or translation | Enables GPT realtime models. If no API key is saved, AirTranslate opens the settings modal and focuses the API key field. |\n| Transcribe Only | Source captions without translation | Records source-language captions without running translation. |\n| Realtime Translation Only | Direct translated stream | Uses the realtime translation model path when you want the model to produce the translated stream directly. |\n\nGPT model details, API key entry, transcript polish, and voice output are managed from the gear-shaped settings modal. The main sidebar only exposes the most important choices.\n\n## Privacy And API Keys\n\nAirTranslate does not ship with a backend account system.\n\n- Apple Mode uses macOS frameworks and locally managed Apple language assets.\n- OpenAI calls happen only when GPT mode or OpenAI translation models are enabled.\n- OpenAI API keys are never hardcoded, committed, or included in release packages.\n- Keys are saved in macOS Keychain with `kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`.\n- Saved transcripts are plain text files on your Mac.\n\nNeed an API key? Open the [OpenAI API key page](https:\u002F\u002Fplatform.openai.com\u002Fapi-keys), create a key, then paste it into AirTranslate's settings modal.\n\n## Apple Translation Language Packs\n\nApple Mode uses macOS-managed translation languages. Before using Apple Mode with a new language pair, download the needed Apple translation language packs:\n\n1. Open **System Settings**.\n2. Go to **General > Language & Region**.\n3. Click **Translation Languages**.\n4. Click **Download** for each source and target language you want to use.\n5. Optional: turn on **On-Device Mode** if you want macOS to process supported translations on your Mac whenever possible.\n\nIf a selected language pair is unavailable or not downloaded, Apple Mode translation may not start or may show an unavailable state until macOS has the required language assets.\n\n## Permissions\n\nAirTranslate asks for the permissions required by its capture and transcription flow.\n\n- Screen Recording\n- System Audio Recording\n- Speech Recognition\n\nScreen Recording is required because ScreenCaptureKit provides the system-audio capture path. AirTranslate does not save screen frames as recordings.\n\nAfter changing macOS privacy permissions, quit and relaunch the app so the signed app bundle receives the new authorization state.\n\n## Download\n\nDownload the latest open-source build from [GitHub Releases](https:\u002F\u002Fgithub.com\u002Fhimomohi\u002FAirTranslate\u002Freleases\u002Flatest). The DMG is the easiest install path, and the ZIP remains available as the original lightweight option.\n\nAirTranslate remains fully open-source under the Apache-2.0 License. The DMG is provided only as a convenient macOS installer, while all source code, build scripts, release materials, LICENSE, and NOTICE files remain available in this repository.\n\n- [Download AirTranslate.dmg](https:\u002F\u002Fgithub.com\u002Fhimomohi\u002FAirTranslate\u002Freleases\u002Flatest\u002Fdownload\u002FAirTranslate.dmg)\n- [Download AirTranslate-1.3.1.zip](https:\u002F\u002Fgithub.com\u002Fhimomohi\u002FAirTranslate\u002Freleases\u002Flatest\u002Fdownload\u002FAirTranslate-1.3.1.zip)\n- [Download AirTranslate.dmg.sha256](https:\u002F\u002Fgithub.com\u002Fhimomohi\u002FAirTranslate\u002Freleases\u002Flatest\u002Fdownload\u002FAirTranslate.dmg.sha256)\n- [View version history](Release\u002FVERSION-HISTORY.md)\n\n![AirTranslate install guide](docs\u002Fassets\u002Fairtranslate-install-guide.svg)\n\nThe open-source DMG and ZIP are ad-hoc signed builds for pre-notarization distribution. On the first launch, macOS may show an \"unidentified developer\" warning. To open the app:\n\n1. Open the DMG and drag `AirTranslate.app` to Applications.\n2. In Applications, Control-click or right-click `AirTranslate.app`.\n3. Choose **Open**, then choose **Open** again in the macOS warning dialog.\n\nYou can verify the DMG checksum after downloading:\n\n```bash\nshasum -a 256 AirTranslate.dmg\ncat AirTranslate.dmg.sha256\n```\n\nDeveloper ID signing and notarization are planned for a later distribution step.\n\n## Requirements\n\n- macOS 26.0 or later\n- Swift 6.2 or later\n- A Mac that supports system-audio capture\n- Apple Speech and Apple Translation framework availability\n- Optional: an OpenAI API key for GPT mode\n\n## Build From Source\n\nRun the app bundle:\n\n```bash\n.\u002Fscript\u002Fbuild_and_run.sh\n```\n\nBuild and verify launch:\n\n```bash\n.\u002Fscript\u002Fbuild_and_run.sh --verify\n```\n\nView logs:\n\n```bash\n.\u002Fscript\u002Fbuild_and_run.sh --logs\n```\n\nReset development permissions:\n\n```bash\n.\u002Fscript\u002Fbuild_and_run.sh --reset-permissions\n```\n\nSwiftPM checks:\n\n```bash\nswift build\nswift test\n```\n\n## Basic Usage\n\n1. Choose the source and target languages.\n2. Use the center swap button if you want to reverse the direction.\n3. Choose Apple Mode or GPT Mode.\n4. For GPT Mode, add your OpenAI API key in the settings modal if prompted.\n5. Press Start.\n6. Play meeting, lecture, video, interview, or stream audio on your Mac.\n7. Read the transcript and translation in the main workspace or floating caption window.\n8. Press Stop to save the current transcript.\n\n## Saved Transcripts\n\nSaved transcripts are stored as plain text files:\n\n```text\n~\u002FLibrary\u002FApplication Support\u002FAirTranslate\u002FTranscripts\u002F*.txt\n```\n\nWhen source and translation are saved together, AirTranslate writes separate `_original.txt` and `_translation.txt` files while presenting them as one grouped item in the library UI.\n\n## Project Map\n\n```text\nPackage.swift\nResources\u002F\n  AppIcon.png\n  AppIcon.icns\nSources\u002FAirTranslate\u002F\n  App\u002F\n  Models\u002F\n  Services\u002F\n  Support\u002F\n  Views\u002F\nSources\u002FAirTranslateCore\u002F\nTests\u002F\nscript\u002F\n  build_and_run.sh\ndocs\u002Fassets\u002F\n  airtranslate-readme-hero.png\n```\n\n## Key Implementation Areas\n\n- `SystemAudioCapture`: captures Mac system audio through ScreenCaptureKit.\n- `LiveSpeechTranscriber`: streams speech recognition through Apple Speech.\n- `AppleTranslationService`: isolates Apple Translation work.\n- `OpenAIRealtimeTranscriber`: handles optional realtime transcription.\n- `OpenAITranslationService`: handles optional realtime translation requests.\n- `OpenAIAPIKeyStore`: saves the API key in macOS Keychain.\n- `TranslationSessionStore`: coordinates capture, transcript state, translation, saving, and playback.\n- `SidebarView`: language, mode, session, and settings entry points.\n- `CaptionBoardView`: live transcript, translation, controls, and audio meter.\n- `TranscriptLibraryView`: saved transcript management.\n- `FloatingCaptionWindowController`: floating subtitle window lifecycle.\n\n## License\n\nAirTranslate is released under the [Apache License 2.0](LICENSE). Copyright attribution is provided in [NOTICE](NOTICE).\n\nAirTranslate is an independent open-source project and is not affiliated with Apple or OpenAI.\n","AirTranslate 是一款 macOS 应用程序，用于实时捕获系统音频并进行转录和翻译。它利用 ScreenCaptureKit 直接捕获 Mac 上播放的音频，并通过 Apple 的语音识别和翻译框架提供实时转录和翻译服务。用户可以选择启用 GPT 模式以获得更高级的转录和翻译功能，但需要自行提供 OpenAI API 密钥。AirTranslate 适用于会议、讲座、视频观看、采访以及直播等场景，特别是在不方便或不希望通过麦克风路由音频的情况下。该应用支持浮动字幕显示，确保在使用其他应用程序时也能方便地查看翻译结果。此外，用户的 OpenAI API 密钥安全地存储在 macOS Keychain 中，保证了数据的安全性。","2026-06-11 03:54:05","CREATED_QUERY"]