BiBi Keyboard
4.5.0 · GitHub
More about this app
AI-powered voice input method keyboard; Shizuku or root keeps its floating-ball and volume-key background service alive.
BiBi Keyboard
AI-powered Smart Voice Input Method | Make Voice Input More Natural and Efficient
🌐 Official Website • 📖 Documentation
English | 简体中文
📱 UI Showcase
| Easy Setup Step-by-step guidance for IME and permission setup |
Voice-first Typing Open the keyboard and hold the microphone to speak |
Smart Enhancements Manage recognition, AI post-processing, and history |
✨ Features
🎤 Voice Recognition
|
🟣 Floating Ball Input ⭐
|
📝 Smart Input
|
🎨 User Experience
|
🌟 Pro Version Released
💎 BiBi Keyboard Pro is now officially available on the Play Store for a one-time purchase of just $5.49!
The Pro version offers more advanced features and a better experience (hotwords, Simplified/Traditional conversion, continuous dictation, WebDAV auto-backup, and more). You can learn more in About → Learn about Pro, or in the Pro Features documentation. We welcome your feedback to help us polish a better product!
If you are interested in BiBi Keyboard, join our Telegram Group for more information.
🚀 Quick Start
📋 System Requirements
- Android 8.0 (API 26) or higher
- Microphone permission (for voice recognition)
- Overlay permission (optional, for floating ball feature)
- Accessibility permission (optional, for automatic text insertion)
- LSPosed / LSPatch (optional, for integration with any third-party IMEs)
📥 Installation Steps
Download & Install
- Download the latest APK from Releases page
- Install on your Android device
Enable Input Method
Settings → System → Language & Input → Virtual Keyboard → Manage Keyboards → Enable "BiBi Keyboard"Configure ASR Service
- Open BiBi Keyboard settings
- Select ASR vendor (recommended: Volcengine)
- Enter your API key
Start Using
- Switch to BiBi Keyboard in any input field
- Long press the microphone button to start voice input
💡 Tip: First-time users are recommended to configure Volcengine for 20 hours of free quota!
🎨 Tech Stack
Kotlin 2.3.21
Android SDK (Compile SDK 37, Target SDK 35, Min SDK 26)
Jetpack Compose + Material Design 3 / Miuix
Coroutines (async processing)
OkHttp 5.3.2 (network requests)
SharedPreferences (data storage)
sherpa-onnx (local ASR models)
📄 License
This project is licensed under the Apache 2.0 License, see the LICENSE file for details.
Apache 2.0 License - Free to use, modify, distribute, must retain copyright notice
Star History
☕ Support & Appreciation
If this project helps you, please give it a Star ⭐️ and feel free to buy me a coffee ☕️
Scan with WeChat to appreciate
🙏 Acknowledgments
Thanks to the following open-source projects for their technical support:
- sherpa-onnx - Provides technical support for local ASR models, making offline voice recognition possible
- TEN-VAD - Provides the current VAD model support
- SyncClipboard - Provides clipboard synchronization backend service (not running locally, requires server)
- Phosphor - Provides almost all icons used in the software
- miuix - Provides Miuix-style Compose UI components, icons, and preference components
- WaveLineView - Provides beautiful wave animation implementation for audio visualization, making recording experience more fluid and visually appealing
- Thanks to the author NURKE(南㲺) of the "Completion Project" icon pack for designing the new application icon for this project
Made with ❤️ by BryceWG
How Shizuku is used
Can keep its background keep-alive service running by starting it with the `am start-foreground-service` shell command through Shizuku.
This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.
How this app uses Shizuku
Shizuku is used only to keep the app's background keep-alive service running so floating and background voice features stay available.
- Restart keep-alive service: after boot, on a periodic job, or from settings, the app relaunches its foreground keep-alive service with the
am start-foreground-serviceshell command through Shizuku, which succeeds where a normal background start would be blocked.
Android APIs or commands used
am start-foreground-servicesh -c
Notable details
If Shizuku is not granted or available, the app falls back to a normal foreground service start without privileged execution.
Changelog
What's new for version 4.5.0
📝 更新日志 / Changelog (v4.5.0)
中文
新增功能
- AI 自动选择润色预设:润色前可根据识别内容自动匹配最合适的 Prompt 预设;可为预设填写 Skill 描述,支持独立分类模型,并用历史记录预览效果;内容已足够好时也可自动跳过润色
- 录音时屏幕常亮:键盘或悬浮球录音时可保持屏幕常亮,避免中途熄屏;也可通过键盘扩展按键开关
- DashScope Qwen3.8-Omni-Flash:DashScope 新增 Qwen3.8-Omni-Flash 非流式模型
- StepAudio 新模型:StepAudio 新增 stepaudio-3-asr-max,并支持自定义识别模型
- [Pro] 助手与热词分析独立模型:AI 助手和热词纠正分析可分别指定模型,不必跟随默认润色模型
改进优化
- 在线非流式分段识别:在线文件识别也会按静音分段渐进识别,长录音更快出字;失败片段会自动重试
- Prompt 全屏编辑:润色 Prompt 支持全屏编辑
- AI 更多参数:温度等高级参数收入独立面板,设置页更清爽
- [Pro] 输入框上下文:开启后,自动选择润色预设也会参考光标前后文本
问题修复
- 折叠屏与旋转:修复旋转或折叠后悬浮球、悬浮键盘位置与可用区域不准的问题
- 录音音源:缓存已验证的录音源,减少部分机型录音失败或反复探测音源的问题
- 备份导入:提高识别历史备份导入兼容性,避免新旧版本字段不兼容导致导入失败
English
New Features
- AI Auto Prompt Selection: Before polishing, automatically pick the best Prompt preset for the transcript. Presets can include a Skill description; you can choose a separate classifier model and preview with history. High-quality transcripts can skip polishing
- Keep Screen On While Recording: Keeps the screen on during keyboard or floating-ball recording so it will not sleep mid-session; also available as a keyboard extension toggle
- DashScope Qwen3.8-Omni-Flash: DashScope adds the Qwen3.8-Omni-Flash non-streaming model
- StepAudio Models: StepAudio adds stepaudio-3-asr-max and custom recognition models
- [Pro] Separate Assistant and Hotword Models: AI assistant and hotword-correction analysis can each use their own model instead of the default polish model
Improvements
- Online Non-Streaming Chunking: Online file recognition now chunks on silence for faster first results on long recordings; failed segments are retried automatically
- Full-Screen Prompt Editor: Polish prompts can be edited full screen
- AI Extra Parameters: Temperature and other advanced parameters move into a dedicated sheet
- [Pro] Input Field Context: When enabled, automatic prompt selection also uses text around the cursor
Bug Fixes
- Fold and Rotation: Fix floating ball and floating keyboard position and usable area after rotation or folding
- Recording Source: Cache the validated capture source to reduce recording failures or repeated source probing on some devices
- Backup Import: More compatible recognition-history backup import when newer enum fields are missing
Permissions
22 permissions requested
Sources
2 sources
Sources
2 sources